"ffmpeg.exe" -probesize 100MB -i "input.m4v" -pix_fmt yuv420p10le -an -f yuv4mpegpipe -strict -1 - | "x265.exe" --y4m --input-res "3840x2160" --fps "24" --uhd-bd --output-depth 10 --colorprim 1 --transfer 1 --colormatrix 1 --vbv-maxrate "40000" --vbv-bufsize "40000" --level-idc 5.1 --high-tier --profile main10 --sar 1 - -o "out.hevc"
If you are using y4m as demuxer in x265, there is no need to set input res, fps and output bit-depth, all these parameters are transmitted by ffmpeg within header metadata.
Correct command line in your case:
Код:
ffmpeg -i input.m4v -f yuv4mpegpipe -pix_fmt yuv420p10 -strict -1 - | x265 --uhd-bd --crf 16 --profile main10 --colorprim bt2020 --transfer bt2020-10 --colormatrix bt2020nc --vbv-bufsize 60000 --vbv-maxrate 60000 -o out.265 --y4m -
This will produce bt2020 stream without HDR metadata. To apply HDR metadata, look for corresponding parameters in documentation.
If you have video without HDR, use following params instead:
Код:
--colorprim bt709 --transfer bt709 --colormatrix bt709
Если пользуетесь y4m в качестве демуксера, то не нужно указывать входящее разрешение, количество кадров в секунду и разрядность (битовую глубину). Все вышеперечисленные параметры передаются ффмпегом кодировщику как метаданные.
Правильная команда для вашего видео:
Код:
ffmpeg -i input.m4v -f yuv4mpegpipe -pix_fmt yuv420p10 -strict -1 - | x265 --uhd-bd --crf 16 --profile main10 --colorprim bt2020 --transfer bt2020-10 --colormatrix bt2020nc --vbv-bufsize 60000 --vbv-maxrate 60000 -o out.265 --y4m -
На выходе получится видео с bt2020 и без HDR-метаданных. Для применения HDR-метаданных, смотрите соответсвующие параметры в документации кодировщика.
Если у вас видео без HDR, вместо --transfer bt2020-10 --colormatrix bt2020nc используйте следующие параметры:
Код:
--colorprim bt709 --transfer bt709 --colormatrix bt709