WordPress: What's involved in hosting videos from my own site?

I am considering making training videos which at some point may have a price attached to them. So, I am not keen on hosting these on YouTube.

What options to do have for private hosting?

Is it logical to consider using my WordPress site, where I already have WuCommerce up and running?

What is involved in video posting? Are there various WordPress plugins I cans use that would make this easy?

This is hosted on AWS. How do you calculate the cost of this kind of service for bandwidth?

What if I have 10 views per day and the video is 30 minutes long?

What might that cost for the month?

newbiewebSr. Software EngineerAsked:
Who is Participating?

[Product update] Infrastructure Analysis Tool is now available with Business Accounts.Learn More

I wear a lot of hats...

"The solutions and answers provided on Experts Exchange have been extremely helpful to me over the last few years. I wear a lot of hats - Developer, Database Administrator, Help Desk, etc., so I know a lot of things but not a lot about one thing. Experts Exchange gives me answers from people who do know a lot about one thing, in a easy to use platform." -Todd S.

Shaun VermaakTechnical SpecialistCommented:
Use an LMS, not WordPress. Even though you might get it to do some of the functions, I would use something specifically made for this
David FavorLinux/LXD/WordPress/Hosting SavantCommented:
You'll likely require several types of tech for this.

1) You'll require some sort of LMS system. You can go for a standalone version + I prefer using WordPress plugins.

There are many WP LMS plugins. Search through YouTube overviews + demos, till you find one that fits your requirements.

2) All my private hosting clients have moved their videos to serve directly off their own sites.

I usually setup separate subhost, like https://media.foo.com for all audio + video files. Otherwise, every site backup you make will be huge, as you'll end up with every backup having all media files.

This also requires longer execution time for making backups, so if you're using a normal WordPress backup plugin, backing up media files each time a backup runs... well... you risk exceeding max execution time + your backup failing.

Using https://media.foo.com resolves this.

3) Keep your videos small + audio quality stellar.

If your primary income derives from working with media, consider a Mac + ScreenFlow. I've tried many screen recorders + ScreenFlow consistently produces better audio quality + is correctly threaded... meaning when you render a video, all CPU threads (or cores if unthreaded) are used optimally, so render time is very fast.

In ScreenFlow-7.0+, you can only record the screen area being used + you can adjust the capture frame rate.

So for training videos, drop the record frame rate to 1-5 FPS + you'll end up with small files.

Then render at exactly same FPS + you'll end up with best quality + very small files.

4) For highest quality videos record native + export native.

Meaning set your browser screen to exact output file size, so if your output files will be 1080p, then set your browser to be 1920×1080, so when you do your final export, zero pixillation will occur.

This ensures any text in video ends up as sharp as when you recorded it.

5) Then use optimal video serving for small files - <100M

I provision machines from OVH with high speed interfaces + unlimited bandwidth, so videos serve as follows.

<100M, just push the entire video down the pipe, so download... so <100 for how I transcode training videos is roughly 30 minutes of 1080p HD quality video. Since best metrics for training videos are <5mins to keep consumer engaged till end of video...

Most of my clients just reference videos in a <video> tag + they're done.

6) Optimal streaming for large files - >100M

If you're videos are higher weight than 100M, I'd suggest first try re-rendering with different export settings to reduce your video size.

If videos are still big, choose some PHP pseudo streaming approach which seems best to you.

Google site:github.com php video pseudo streaming range for many libraries + code examples of how to accomplish this.

Experts Exchange Solution brought to you by

Your issues matter to us.

Facing a tech roadblock? Get the help and guidance you need from experienced professionals who care. Ask your question anytime, anywhere, with no hassle.

Start your 7-day free trial
Shalom CarmelCTOCommented:
Given that you already are on AWS:

You have an easy option to do the right thing and decouple your content delivery from your logic. S3 is an excellent place to store your video files and to deliver from.  

AWS don't care for your bitrate, just for the total traffic pushed out. So if your 30 min video is 1 GB in size, and it is served a total of 300 times a month, that's what you pay for.  300GB of traffic + whatever amount you need for storage.
Here is a link to the AWS cost calculator - find the S3 tab on the left.

If you are going to use wucommerce, and to inspire trust in your paying customers, you should protect your traffic with ssl. To do that while using S3 you must use a CDN. Cloudfront is the easiest and obvious choice, until your traffic runs into terrabytes and then you should switch.

Using Cloudfront will not add to your costs.

Cloudfront and for that matter S3 also support signed urls, which is a way for you to ensure  that your content cannot be easily shared. WP has an addon called I believe s3-secure to help you with that.
newbiewebSr. Software EngineerAuthor Commented:
It's more than this solution.Get answers and train to solve all your tech problems - anytime, anywhere.Try it for free Edge Out The Competitionfor your dream job with proven skills and certifications.Get started today Stand Outas the employee with proven skills.Start learning today for free Move Your Career Forwardwith certification training in the latest technologies.Start your trial today
Multimedia Programming

From novice to tech pro — start learning today.