Web Development

WordPress Video Streaming - How to Host, Encode, and Stream your OWN Videos.

WordPress Logo

Despite the prevalence of video streaming on the web, a video streaming site is not the easiest kind of site to set up. Here are some tips on how to set up a quality WordPress video streaming site.

Why Hosting Your Own Video is not Trivial

There are many technical considerations that are not immediately obvious until you have experience building and managing such a site.

For instance, the format of video that comes out of your phone and most recording devices is MP4, however, the file that comes out of your phone is not optimized for web streaming. You will want to encode your video file into different formats (WebM, OGG), and different bit rates so that it streams well on a variety of devices and slower internet connections.

Manually encoding videos is a time consuming and annoying step, and especially in Endertech’s case, where we’re trying to build this for a non-technical client to take over, we want to minimize the complexity for them.

Besides encoding, there is the concern about storage. Video files are large, and now imagine needing to store and manage many versions of EACH video for the formats and bit rates mentioned above. You will need a storage solution that can grow quickly and inexpensively.

Then, the video playback and streaming itself. Your site visitors will be coming from all around the country, if not the world. You need the video download to be fast, and that means using a CDN.

And finally, there is the management of the media itself, meaning, knowing where it is and being able to find it so you can embed it into your site.

But Wait… Why Don’t I Just Use YouTube?

Well of course, if you are not trying to host your own video, then you can just upload your videos to your YouTube channel and then embed them on your WordPress site and done, easy cheesy.

However, now you’ve lost a bit of control. YouTube may serve ads and recommend other videos… plus now your property is in Google’s hands. Did you read the Terms of Use and Privacy Policies?

If you want to fully control your own content, you need to set up and manage your own WordPress video streaming site.

Step One – Video Upload & Storage

The first thing to put in order is how you’re going to get the videos from wherever they were recorded, into your WordPress site.

The WordPress Media Library is the obvious choice, and you’re not wrong. BUT, you don’t just want to upload the videos straight into your Media Library… because then you’re going to need to be sure you have massively expandable storage, if you expect your site to grow.

So the solution here is Amazon S3, their infinitely scalable storage solution, PLUS a nifty WordPress extension called “WP Offload Media Lite“.

WP Offload Media Lite integrates with the WordPress Media Library to give you the familiarity of uploading and managing media through the library, but then using S3 on the backend for the actual storage of media.

So, you don’t need a massive web server with massive storage locally. Simply create an AWS account, configure your S3 bucket, and then configure WP Offload Media Lite to upload into that bucket.

Bonus – Autogenerate Video Poster Image

Generally, you’re going to want some frame of your video to serve as the poster image and/or featured images for the video post you’re about to create.

Add “Video Embed & Thumbnail Generator” to your site, and watch as the Media Library becomes enhanced with a feature to extract any frame from your video as a poster or feature image.

Step Two – Encoding and Streaming

Now that your video is uploaded with easy management through S3 and the Media Library, we can turn our attention to the best way to encode and stream your videos on your WordPress video streaming site.

Fortunately, there is one great solution that handles both the encoding and the CDN based streaming for us. We like the solution at Swarmify.

Swarmify provides a WordPress Plugin that integrates your Media Library with their automated encoding and streaming service. Install their plugin, then create a trial account so you can link your API key.

Then, simply go to create the post that will contain your video. You will see a new block, with a yellow icon, called the “Smart Video” block.

Add that block to your post, and then in the block editor at right, select the video you uploaded via the media library.

For poster image, choose the video thumbnail you created, or any image you want.

Bam… that is literally it. Save the post and go visit it.

Upon visiting the post, Swarmify’s Smart Video plugin will take over. The MP4 you uploaded to S3 will be transported to their service which will encode it, and then distribute it to the edge nodes in their CDN. It is those edge nodes which provide the super fast WordPress video streaming for your end-users.

That’s It! Enjoy

If you’re savvy enough with WordPress and plugin installation / configuration, the information above may be enough to get you on your way with a solid WordPress video streaming site, where you can host your own videos.

If however, you’d prefer to focus on other things and have the professionals handle it, of course, just give us a call.