There was a short thread recently on encoding options for x264 (and 2-pass encoding in particular), to which I wrote a reply that was subsequently swallowed by a power failure before I could send it. Since then I took the time to actually try 1-pass, 2-pass, and constant rate factor (CRF, x264's "2-pass in a single pass") modes, and here's what I found as of x264 build 84:
- 2-pass does significantly better than 1-pass on smoothing out the image quality. This may actually be a double-edged sword, because if you lose too much detail in still scenes (as can happen if the bitrate is too low), that loss of quality can carry over into motion scenes, and you may not get the benefit you'd expect. That said, I didn't try encoding at a low bitrate so I can't say for sure one way or the other. (Phil, regarding what you said you heard about 2-pass support being nonfunctional: I can only assume that was referring to a very old x264 build, because the PSNR curves were substantially different between 1-pass and 2-pass. If nothing else, I know the 2-pass log file has actual data because I had to add a workaround in encode_x264 for an x264 bug that writes invalid frame numbers at the end of the log.) - Constant rate factor mode (enabled by crf=N in x264.cfg) does a fairly good job of matching the 2-pass PSNR curve for the same bitrate, but it fluctuates a bit more (slightly higher PSNR in still scenes, lower PSNR in high-motion scenes). This may indicate that CRF mode tries harder than regular 2-pass to retain detail in still scenes. So my recommendation regarding multi-pass encoding for x264 would be: * Use 2-pass mode when (1) you need to hit a specific bitrate target (for example, if you're trying to fill a DVD to capacity) and (2) you're encoding at a high enough bitrate that you can sacrifice some bits from still scenes without suffering much damage to visual quality. My totally unscientific guess at "a high enough bitrate" is about 1/15 (0.067) bit/pixel, or ~700kbps for 720x...@30fps video. * If you need to hit a bitrate target but you're using a low bitrate, you should probably try both 1-pass and 2-pass and see which one looks better (check both still and high-motion scenes, as well as transitions between the two). Another possibility is to try several different CRF values and find the lowest value (highest quality) that stays under the target bitrate. * Otherwise, use CRF mode. The value N in the "crf=N" parameter seems to correspond roughly to the average quantization level (QP); in my tests, I generally got a QP of crf-1.5 in I-frames and crf+1.5 in P-frames, with B-frames somewhat higher. There are probably better references elsewhere on the web, but my rough (and again totally unscientific) feeling is: - crf=20: high quality (if you're familiar with videotapes, think "SP mode") - crf=25: good quality ("LP mode") - crf=30: fair quality, low bitrate ("EP mode") --Andrew Church achu...@achurch.org http://achurch.org/