Thursday, March 5, 2009

Optimizing HD uploads for YouTube

YouTube has become a very popular video sharing site, and recently, it started to let users upload HD videos. While these HD videos won't match Blu-ray or Dish HD quality, they still look fantastic compared to standard YouTube videos, which, to be honest, look crappy at best.

The questions often comes up, how to best save an HD video, to upload it to YouTube?

While YouTube's "Optimizing your video uploads" help article does recommend a resolution of 1280x720 for 16x9 HD videos, and lists recommended codecs (H.264, MPEG-2 or MPEG-4 preferred), it does not recommend a specific bitrate. What's a man to do, when a 5-minute video can be as big as 700MB in HDV format, and take many hours to upload?

Experimenting with various bitrates and types of encoding helped me narrow down the optimum settings for YouTube's HD videos.

YouTube re-compresses the videos anyway, so bigger files will not always produce better quality. I.e. uploading raw HDV videos (at 19-25Mbs) will be horrendously slow over a standard DSL connection, and the quality will not be visibly higher vs. videos encoded at 3Mbs H.264.

Certainly, a 25Mbs video will look better than a 3Mbs one, before it's uploaded to YouTube. Once it's uploaded, however, YouTube will "process" it, making it as small as possible while trying to maintain its quality, and once processed, a 25Mbs video is unlikely to look any better than a 3Mbs one.

I did a number of test encodes and uploads, starting at 500Kbs and ending at 7Mbs. After a 3Mbs "sweet spot", all tests looked very similar on YourTube, in HD mode. There were still barely noticeable differences between a 3Mbs and a 4Mbs test videos, but they were insignificant to my eye, and I did look really hard in full screen mode, on a 30" professional LCD monitor. After 4Mbs, these differences disappeared altogether. In other words, a 7Mbs video looked exactly the same as a 4Mbs one.

The encoding was done with a Adobe Media Encoder (part of Adobe Premiere Pro CS3), using Mpeg4 H.264 codec, single pass VBR (Variable Bit Recording).

To summarize, 3Mbs Mpeg4 (H.264) VBR (Variable Bit Recording) seems to be the optimum setting for most videos, to encode for YouTube HD. Any higher, and it's unlikely that YouTube HD viewers will feel it. At 2Mbs, it's not bad but you will see more compression artifacts than at 3Mbs, and 1.5Mbs will make YouTube think it's HD, but the quality will not be that great.

The resultant files are not exactly small, about 22MB per minute of video, but still far smaller than raw HDV, which is 142 to 187MB per minute. At 3Mbs, a 5-minute video will be about 110MB in size, and take about 25 minutes to upload over a 3Mb/768Kb DSL connection. A similar HDV video will take close to 3 hours to upload.

DV411 Digital Signage Solutions