Almost every day I upload an HD video to one of my YouTube channels, whether it be a vlog, Q&A video, a skit or something else. I really enjoy almost everything about YouTube: the community interaction, editing, the creative outlet it provides, even the weird looks I get when vlogging in public! But the thing I can't stand is that it often takes 2.5 to 3 hours to upload my content. If I export my video from iMovie using the default 720p HD (High-Definition) settings, it takes my approximately 10 minute vlog and creates a file around 750 MB. Since I already have the fastest upload speed that's available at my location (1 Mbps), the only way to decrease my upload time is to lessen the file size.
Encoding my videos to H.264/AAC is already a pretty high compression and is also arguably the current industry standard (unless you ask Google, apparently), but fortunately there's some flexibility within that compression to get an even smaller file size by adjusting the bitrate.
Very simplistically, "bitrate" is the amount of information each frame contains. The higher the bitrate, the more information the video contains, which makes for higher video quality and thus a larger file size. The lower the bitrate, the less information each fame contains and the lower the quality producing a smaller file size. Bitrate is measured by the number of bits per second.
My Un-Scientific Quest for the Optimal Bitrate for YouTube:
Since most of my videos are uploaded to YouTube in 720p HD, I wanted to know the maximum bitrate they use to encode my video. If I give YouTube a file encoded at ~10 Mbps and it re-encoded it to 2Mbps, then I knew I could reduce the bitrate when I encode my video and upload something smaller and likely still get the same result.
For my unscientific tests, I downloaded the MP4 of many 720p HD videos from YouTube across many different users and channels. I also downloaded their FLV counterparts, which were actually 854x480 high quality videos, not true 720p HD. Since I don't know if Google plays with their encoding settings from time to time, I only checked videos that were newer than one week. I used VLC to monitor the variable bitrate peaks and Mac's "Get Info" to check the video file property's total bitrate.
Here's what I found:
Maximum Playback Bitrates on YouTube
- FLV HQ: 1.5 Mbit/s (variable bitrate with peaks of 3.0 Mbps)
- MP4 720p: 4.0 Mbit/s (variable bitrate with peaks of 5.0 Mbps)
- MP4 1080p: 8.0 Mbit/s (variable bitrate with peaks of 10.0 Mbps)
This tells me that encoding my videos at 10 Mbps for YouTube is definitely overkill. Since it's usually a good idea to encode with some overhead and give YouTube a higher quality video than it will produce.
My New YouTube Video Encoding Parameters
I started giving YouTube 720p H.264/AAC files with the video encoded at 5.0 Mbps and the audio encoded at 256 Kbps.
I'm exporting my videos with Quicktime and to save time, I've only been exporting with a single-pass encoding because I can't see a noticeable difference between single and dual-pass encoding. I'm using a Flip and a Canon HF100, fairly low-end cameras, so their image reproduction isn't high enough quality enough to show much of a difference. If I end up upgrading to a Canon 60D or 7D, the extra time dual-pass encoding takes will be worth it.
With this I am able to encode files to approximately half the size I was previously getting from iMovie's defaults. It seems that the files still result with the same quality on YouTube as my 10 Mbps videos did and now my uploads also only take half the time. Although, I still wish I could boost my upload speed to something faster than 1 Mbps.
Here's an example of a video I uploaded last month using 5 mbps encoding:
What do you think? Is there an optimal bitrate that you've found (perhaps with a more "scientific" approach)?