Pushing H.264 to the limit – Part II
My latest H.264 encoding experiment has been largely appreciated by Flash Video fans, developers and media firms’ executives. Indeed, a lot of people watched my experiment and congratulate with me for the final result. In the next posts I’ll go further in exploring the limits of the H.264, but now, I would like to discuss some point of interest about the “HD video @ 500Kbit/s” topic.
1) Generally speaking, you need more than 500Kbit/s for HD videos.
This is an experiment. Heima footage is very well suited for H.264 encoding. H.264 can retrieve a lot of informations from the previous frames with very little bistream when the video is slowly changing or “quiet”. A very fast moving footage, with back and forth or stroboscopic lights is much more difficult to encode and require an higher bitrate. How much higher ? In my experience It is possible to encode *generic* video in 720p with very good result with around 1Mbit/s and 1080p with no less than 2Mbit/s. Its is a great achievement in any case.
2) The video shows less quality in panning scenes
I’m able today to improve such behavior. That is: I’m now able to achieve a slightly higher perceptual quality for the same 500Kbit/s, or go down to less than 450Kbit/s.
This is possible using a better motion vector prediction in B-frame and passing from two to three pass encoding.
3) What tools am I useing ?
I use a mix of Ffmpeg, x264, Mencoder and Nero AAC. Here some parameters used:
5 reference frames, 5 B-frames, authomatic B-Frames, B-pyramid enabled, adaptive macroblock type, advanced Trellis on, Subq=7, advanced exagon search, deblocking filter with custom alpha e beta parameter, three pass encoding…
4) Why does the video stutter ?
There are a main reason: the web hosting I used, is limited to a 10Mbit/s bandwidth, the high amount of viewer saturated the bandwidth. A second possibility is the processing power of your pc: decoding an HD video require at least a P4@3GHz, Athlon 3500+ or better, but it depends significantly by your monitor’s resolution, too.
On my QuadCore @ 3GHz with a 22” monitor, the 10-15% of the cpu is used.