Table of Contents

HandBrake and x264

I'm trying to document a number of changes in encoding which I won't go into here, but I started with the base idea of I want to be able to duplicate HandBrake (1.0.2) and x264's (20160920, same as HandBrake) encoding settings.

To get the x264 encoding settings, I use mediainfo, and process it with a script I call x264_info.

There's a difference between HandBrake's and x264's default settings. Based on the x264 defaults, here's the updates to the HandBrake ones.

Base

Do a simple x264 encode:

x264 --muxer mkv --frames 30 -o x264.mkv input.mpg

And a simple HandBrake encode:

HandBrakeCLI -e x264 -a none -s none --stop-at frame:30 -o handbrake.mkv input.mpg

HandBrake sets keyint to 240 and keyint-min to 24, while x264's is 250 and 25. HandBrake also sets the default CRF to 22 instead of 23. Therefore, tell HandBrake one to use same defaults:

HandBrakeCLI -e x264 -a none -s none --stop-at frame:30 -x keyint=250 -q 23 -o handbrake.mkv input.mpg

Level 4.0

HandBrake adds:

vbv_maxrate=25000
vbv_bufsize=31250
crf_max=0.0
nal_hrd=none
filler=0

Navigation