x264 encoding options recommended for Blu-ray compatible video

This information is taken from x264bluray.com.

1080i25

x264 --bitrate XXXXX --preset veryslow --tune film --bluray-compat --vbv-maxrate 40000 --vbv-bufsize 30000 --level 4.1 --keyint 25 --open-gop --slices 4 --tff --colorprim "bt709" --transfer "bt709" --colormatrix "bt709" --sar 1:1 --pass 1 -o out.264 input.file

x264 --bitrate XXXXX --preset veryslow --tune film --bluray-compat --vbv-maxrate 40000 --vbv-bufsize 30000 --level 4.1 --keyint 25 --open-gop --slices 4 --tff --colorprim "bt709" --transfer "bt709" --colormatrix "bt709" --sar 1:1 --pass 2 -o out.264 input.file

1080i29.97 / 1080i30

x264 --bitrate XXXXX --preset veryslow --tune film --bluray-compat --vbv-maxrate 40000 --vbv-bufsize 30000 --level 4.1 --keyint 30 --open-gop --slices 4 --tff --colorprim "bt709" --transfer "bt709" --colormatrix "bt709" --sar 1:1 --pass 1 -o out.264 input.file

x264 --bitrate XXXXX --preset veryslow --tune film --bluray-compat --vbv-maxrate 40000 --vbv-bufsize 30000 --level 4.1 --keyint 30 --open-gop --slices 4 --tff --colorprim "bt709" --transfer "bt709" --colormatrix "bt709" --sar 1:1 --pass 2 -o out.264 input.file

1080p23.976 / 1080p24

x264 --bitrate XXXXX --preset veryslow --tune film --bluray-compat --vbv-maxrate 40000 --vbv-bufsize 30000 --level 4.1 --keyint 24 --open-gop --slices 4 --colorprim "bt709" --transfer "bt709" --colormatrix "bt709" --sar 1:1 --pass 1 -o out.264 input.file

x264 --bitrate XXXXX --preset veryslow --tune film --bluray-compat --vbv-maxrate 40000 --vbv-bufsize 30000 --level 4.1 --keyint 24 --open-gop --slices 4 --colorprim "bt709" --transfer "bt709" --colormatrix "bt709" --sar 1:1 --pass 2 -o out.264 input.file

1080p25

The following streams are encoded using fake-interlaced mode. This allows the stream to be encoded progressively yet flagged as interlaced.

x264 --bitrate XXXXX --preset veryslow --tune film --bluray-compat --vbv-maxrate 40000 --vbv-bufsize 30000 --level 4.1 --keyint 25 --open-gop --slices 4 --fake-interlaced --colorprim "bt709" --transfer "bt709" --colormatrix "bt709" --sar 1:1 --pass 1 -o out.264 input.file

x264 --bitrate XXXXX --preset veryslow --tune film --bluray-compat --vbv-maxrate 40000 --vbv-bufsize 30000 --level 4.1 --keyint 25 --open-gop --slices 4 --fake-interlaced --colorprim "bt709" --transfer "bt709" --colormatrix "bt709" --sar 1:1 --pass 2 -o out.264 input.file

1080p29.97

The following streams are encoded using fake-interlaced mode. This allows the stream to be encoded progressively yet flagged as interlaced.

x264 --bitrate XXXXX --preset veryslow --tune film --bluray-compat --vbv-maxrate 40000 --vbv-bufsize 30000 --level 4.1 --keyint 30 --open-gop --slices 4 --fake-interlaced --colorprim "bt709" --transfer "bt709" --colormatrix "bt709" --sar 1:1 --pass 1 -o out.264 input.file

x264 --bitrate XXXXX --preset veryslow --tune film --bluray-compat --vbv-maxrate 40000 --vbv-bufsize 30000 --level 4.1 --keyint 30 --open-gop --slices 4 --fake-interlaced --colorprim "bt709" --transfer "bt709" --colormatrix "bt709" --sar 1:1 --pass 2 -o out.264 input.file

480i29.97 Primary Stream (assumes bottom field first)

Replace --sar 40:33 with --sar 10:11 if you require a 4:3 Display Aspect Ratio.

x264 --bitrate XXXXX --preset veryslow --tune film --bluray-compat --vbv-maxrate 40000 --vbv-bufsize 30000 --level 4.1 --keyint 30 --open-gop --slices 4 --bff --colorprim "smpte170m" --transfer "smpte170m" --colormatrix "smpte170m" --sar 40:33 --pass 1 -o out.264 input.file

x264 --bitrate XXXXX --preset veryslow --tune film --bluray-compat --vbv-maxrate 40000 --vbv-bufsize 30000 --level 4.1 --keyint 30 --open-gop --slices 4 --bff --colorprim "smpte170m" --transfer "smpte170m" --colormatrix "smpte170m" --sar 40:33 --pass 2 -o out.264 input.file

480i29.97 Secondary Stream

Replace --sar 40:33 with --sar 10:11 if you require a 4:3 Display Aspect Ratio.

x264 --bitrate XXXXX --preset veryslow --tune film --bluray-compat --vbv-maxrate 8000 --vbv-bufsize 8000 --level 3.2 --keyint 30 --open-gop --bff--colorprim "smpte170m" --transfer "smpte170m" --colormatrix "smpte170m" --sar 40:33 --pass 1 -o out.264 input.file

x264 --bitrate XXXXX --preset veryslow --tune film --bluray-compat --vbv-maxrate 8000 --vbv-bufsize 8000 --level 3.2 --keyint 30 --open-gop --bff --colorprim "smpte170m" --transfer "smpte170m" --colormatrix "smpte170m" --sar 40:33 --pass 2 -o out.264 input.file

480p23.976 Primary Stream (soft 3:2 pulldown applied and fake interlaced)

Replace --sar 40:33 with --sar 10:11 if you require a 4:3 Display Aspect Ratio.

x264 --bitrate XXXXX --preset veryslow --tune film --bluray-compat --vbv-maxrate 40000 --vbv-bufsize 30000 --level 4.1 --keyint 24 --open-gop --slices 4 --pulldown 32 --fake-interlaced --colorprim "smpte170m" --transfer "smpte170m" --colormatrix "smpte170m" --sar 40:33 --pass 1 -o out.264 input.file

x264 --bitrate XXXXX --preset veryslow --tune film --bluray-compat --vbv-maxrate 40000 --vbv-bufsize 30000 --level 4.1 --keyint 24 --open-gop --slices 4 --pulldown 32 --fake-interlaced --colorprim "smpte170m" --transfer "smpte170m" --colormatrix "smpte170m" --sar 40:33 --pass 2 -o out.264 input.file

480p23.976/480p24 Secondary Stream

Secondary Streams are less restrictive than primary streams in 480p mode. Replace --sar 40:33 with --sar 10:11 if you require a 4:3 Display Aspect Ratio.

x264 --bitrate XXXXX --preset veryslow --tune film --bluray-compat --vbv-maxrate 8000 --vbv-bufsize 8000 --level 3.2 --keyint 24 --open-gop --colorprim "smpte170m" --transfer "smpte170m" --colormatrix "smpte170m" --sar 40:33 --pass 1 -o out.264 input.file

x264 --bitrate XXXXX --preset veryslow --tune film --bluray-compat --vbv-maxrate 8000 --vbv-bufsize 8000 --level 3.2 --keyint 24 --open-gop --colorprim "smpte170m" --transfer "smpte170m" --colormatrix "smpte170m" --sar 40:33 --pass 2 -o out.264 input.file

480p29.970 Secondary Stream

Secondary Streams are less restrictive than primary streams in 480p mode. Replace --sar 40:33 with --sar 10:11 if you require a 4:3 Display Aspect Ratio.

x264 --bitrate XXXXX --preset veryslow --tune film --bluray-compat --vbv-maxrate 8000 --vbv-bufsize 8000 --level 3.2 --keyint 30 --open-gop --colorprim "smpte170m" --transfer "smpte170m" --colormatrix "smpte170m" --sar 40:33 --pass 1 -o out.264 input.file

x264 --bitrate XXXXX --preset veryslow --tune film --bluray-compat --vbv-maxrate 8000 --vbv-bufsize 8000 --level 3.2 --keyint 30 --open-gop --colorprim "smpte170m" --transfer "smpte170m" --colormatrix "smpte170m" --sar 40:33 --pass 2 -o out.264 input.file

576i25 Primary Stream (assumes top field first)

Replace --sar 16:11 with --sar 12:11 if you require a 4:3 Display Aspect Ratio.

x264 --bitrate XXXXX --preset veryslow --tune film --bluray-compat --vbv-maxrate 40000 --vbv-bufsize 30000 --level 4.1 --keyint 25 --open-gop --slices 4 --tff --colorprim "bt470bg" --transfer "bt470bg" --colormatrix "bt470bg" --sar 16:11 --pass 1 -o out.264 input.file

x264 --bitrate XXXXX --preset veryslow --tune film --bluray-compat --vbv-maxrate 40000 --vbv-bufsize 30000 --level 4.1 --keyint 25 --open-gop --slices 4 --tff --colorprim "bt470bg" --transfer "bt470bg" --colormatrix "bt470bg" --sar 16:11 --pass 2 -o out.264 input.file

576i25 Secondary Stream

Replace --sar 16:11 with --sar 12:11 if you require a 4:3 Display Aspect Ratio

x264 --bitrate XXXXX --preset veryslow --tune film --bluray-compat --vbv-maxrate 8000 --vbv-bufsize 8000 --level 3.2 --keyint 25 --open-gop --ref 5 --tff --colorprim "bt470bg" --transfer "bt470bg" --colormatrix "bt470bg" --sar 16:11 --pass 1 -o out.264 input.file

x264 --bitrate XXXXX --preset veryslow --tune film --bluray-compat --vbv-maxrate 8000 --vbv-bufsize 8000 --level 3.2 --keyint 25 --open-gop --ref 5 --tff --colorprim "bt470bg" --transfer "bt470bg" --colormatrix "bt470bg" --sar 16:11 --pass 2 -o out.264 input.file

576p25 Primary Stream

The following stream requires fake interlaced mode which allows encoding progressively but flags the content as interlaced. Replace --sar 16:11 with --sar 12:11 if you require a 4:3 Display Aspect Ratio.

x264 --bitrate XXXXX --preset veryslow --tune film --bluray-compat --vbv-maxrate 40000 --vbv-bufsize 30000 --level 4.1 --keyint 25 --open-gop --slices 4 --fake-interlaced --pic-struct --colorprim "bt470bg" --transfer "bt470bg" --colormatrix "bt470bg" --sar 16:11 --pass 1 -o out.264 input.file

x264 --bitrate XXXXX --preset veryslow --tune film --bluray-compat --vbv-maxrate 40000 --vbv-bufsize 30000 --level 4.1 --keyint 25 --open-gop --slices 4 --fake-interlaced --pic-struct --colorprim "bt470bg" --transfer "bt470bg" --colormatrix "bt470bg" --sar 16:11 --pass 2 -o out.264 input.file

576p25 Secondary Stream

Replace --sar 16:11 with --sar 12:11 if you require a 4:3 Display Aspect Ratio.

x264 --bitrate XXXXX --preset veryslow --tune film --bluray-compat --vbv-maxrate 8000 --vbv-bufsize 8000 --level 3.2 --keyint 25 --open-gop --ref 5 --colorprim "bt470bg" --transfer "bt470bg" --colormatrix "bt470bg" --sar 16:11 --pass 1 -o out.264 input.file

x264 --bitrate XXXXX --preset veryslow --tune film --bluray-compat --vbv-maxrate 8000 --vbv-bufsize 8000 --level 3.2 --keyint 25 --open-gop --ref 5 --colorprim "bt470bg" --transfer "bt470bg" --colormatrix "bt470bg" --sar 16:11 --pass 2 -o out.264 input.file

720p23.976 / 720p24

x264 --bitrate XXXXX --preset veryslow --tune film --bluray-compat --vbv-maxrate 40000 --vbv-bufsize 30000 --level 4.1 --keyint 24 --open-gop --slices 4 --colorprim "bt709" --transfer "bt709" --colormatrix "bt709" --sar 1:1 --pass 1 -o out.264 input.file

x264 --bitrate XXXXX --preset veryslow --tune film --bluray-compat --vbv-maxrate 40000 --vbv-bufsize 30000 --level 4.1 --keyint 24 --open-gop --slices 4 --colorprim "bt709" --transfer "bt709" --colormatrix "bt709" --sar 1:1 --pass 2 -o out.264 input.file

720p25

The following streams use frame doubling to comply with the Blu-Ray specification.

x264 --bitrate XXXXX --preset veryslow --tune film --bluray-compat --vbv-maxrate 40000 --vbv-bufsize 30000 --level 4.1 --keyint 25 --open-gop --slices 4 --pulldown double --colorprim "bt709" --transfer "bt709" --colormatrix "bt709" --sar 1:1 --pass 1 -o out.264 input.file

x264 --bitrate XXXXX --preset veryslow --tune film --bluray-compat --vbv-maxrate 40000 --vbv-bufsize 30000 --level 4.1 --keyint 25 --open-gop --slices 4 --pulldown double --colorprim "bt709" --transfer "bt709" --colormatrix "bt709" --sar 1:1 --pass 2 -o out.264 input.file

720p29.97

The following streams use frame doubling to comply with the Blu-Ray specification.

x264 --bitrate XXXXX --preset veryslow --tune film --bluray-compat --vbv-maxrate 40000 --vbv-bufsize 30000 --level 4.1 --keyint 30 --open-gop --slices 4 --pulldown double --colorprim "bt709" --transfer "bt709" --colormatrix "bt709" --sar 1:1 --pass 1 -o out.264 input.file

x264 --bitrate XXXXX --preset veryslow --tune film --bluray-compat --vbv-maxrate 40000 --vbv-bufsize 30000 --level 4.1 --keyint 30 --open-gop --slices 4 --pulldown double --colorprim "bt709" --transfer "bt709" --colormatrix "bt709" --sar 1:1 --pass 2 -o out.264 input.file

720p50

x264 --bitrate XXXXX --preset veryslow --tune film --bluray-compat --vbv-maxrate 40000 --vbv-bufsize 30000 --level 4.1 --keyint 50 --open-gop --slices 4 --colorprim "bt709" --transfer "bt709" --colormatrix "bt709" --sar 1:1 --pass 1 -o out.264 input.file

x264 --bitrate XXXXX --preset veryslow --tune film --bluray-compat --vbv-maxrate 40000 --vbv-bufsize 30000 --level 4.1 --keyint 50 --open-gop --slices 4 --colorprim "bt709" --transfer "bt709" --colormatrix "bt709" --sar 1:1 --pass 2 -o out.264 input.file

720p59.94

x264 --bitrate XXXXX --preset veryslow --tune film --bluray-compat --vbv-maxrate 40000 --vbv-bufsize 30000 --level 4.1 --keyint 60 --open-gop --slices 4 --colorprim "bt709" --transfer "bt709" --colormatrix "bt709" --sar 1:1 --pass 1 -o out.264 input.file

x264 --bitrate XXXXX --preset veryslow --tune film --bluray-compat --vbv-maxrate 40000 --vbv-bufsize 30000 --level 4.1 --keyint 60 --open-gop --slices 4 --colorprim "bt709" --transfer "bt709" --colormatrix "bt709" --sar 1:1 --pass 2 -o out.264 input.file

 

x265 encoding options

We recommend using x265 with ffmpeg:

Without HDR

ffmpeg -i Source.mov -r 24000/1001 -pix_fmt yuv420p -f rawvideo - | x265 --input - --input-res 3840x2160 --no-info --uhd-bd --repeat-headers --profile main444-10 --no-open-gop --no-b-pyramid --keyint 24 --min-keyint 1 --fps 24000/1001 --bitrate 40000 --vbv-maxrate 40000 --vbv-bufsize 40000 --colorprim "bt709" --transfer "bt709" --colormatrix "bt709" --output Output.265

With HDR

ffmpeg -i Source.mov -r 60000/1001 -pix_fmt yuv420p -f rawvideo - | x265 --input - --input-res 3840x2160 --no-info --uhd-bd --repeat-headers --profile main444-10 --no-open-gop --no-b-pyramid --keyint 60 --min-keyint 1 --rd 1 --fps 60000/1001 --bitrate 50000 --vbv-maxrate 80000 --vbv-bufsize 50000 --colorprim bt2020 --transfer smpte2084 --colormatrix bt2020nc --master-display "G(8500,39850)B(6550,2300)R(35400,14600)WP(15635,16450)L(10000000,1)" --max-cll "1000,180" --output Output.265