Optimizing upload quality to YouTube

Got a question from an acquaintance on the best strategy for uploading files to YouTube, and I thought it might have broader interest, so here’s the Q & A.

Question: I was wondering, since YouTube doesn’t appear to be using B-Frames in its encoding, is there any reason to send files to YouTube that have been encoded with B-Frames?  Ie will there be any improvement in quality if I feed YouTube a 1080p mkv file that has been encoded with Weighted B-Frames, Pyramidal B-Frames etc?  I’m using HandBrake 0.9.4 to encode my files and the last 1080p video I sent to YouTube played back just fine in HD on my quadcore PC, but not well at all on my girlfriend’s new Macbook.  I was wondering if some of the high profile features I enabled during encoding were to blame.

Answer: YouTube is going to re-encode any file you send up. So:

 – clearly nothing you did during encode slowed playback on your girlfriend’s MacBook. In general, the low end Macs just don’t play HD video that well.

 – The best strategy for uploading video to YouTube is to upload the highest possible quality video. I typically max out at 720p because that’s what I shoot/edit and because few folks can view 1080i. Usually, I encode at 10-15mbps with minimum B-frames. I think at that data rate, parameters like pyramid probably don’t matter. CABAC is lossless though, so it’s always good.

Follow up question: So I may as well set handbrake to max out the 2GB file size limit and enable all the high profile features I can when encoding for YouTube 1080p, right?  That will give handbrake the freedom to create the highest possible quality video.  Of course it will take longer to upload a 2GB video than a video encoded with more conservative settings, but as long as YouTube is able to read it, I should end up with a higher quality YouTube encode with little to no variance in file size compared to a smaller, more aggressively encoded source… right?

Follow up answer: Yup, if you want the best possible quality and don’t mind the upload time, this is the best strategy. I’m a bit less patient and feel that anything over 15 mbps will deliver diminishing returns in terms of quality, so I typically encode at that rate for 720p, perhaps up to 25 mbps for 1080p.  

Response: Great, thanks for taking the time to share your thoughts on this, Jan.  Much appreciated.  Now I can stop fussing around with encode settings — I’ll just encode at the highest quality any given platform will accommodate, unless I’m pressed for time in which case I’ll encode around 15 mbps for 720p and 25 mbps for 1080p.

About Jan Ozer

I help companies train new technical hires in streaming media-related positions; I also help companies optimize their codec selections and encoding stacks, and evaluate new encoders and codecs.

Check Also

Streaming Media 101: Training for App & Player Development/Testing Professionals