
Я хочу создать файл предустановок FFmpeg. Если я запущу команду-пример, она покажет используемые в данный момент предустановки
$ ffmpeg -i входной_файл.mp4 выходной_файл.mp4 [libx264 @ 0000000002a9a5c0] 264 - ядро 140 r2377 1ca7bb9 - кодек H.264/MPEG-4 AVC - Copyleft 2003-2013 - http://www.videolan.org/x264.html - параметры: cabac=1 ref=3 deblock=1:0:0 analyze=0x3:0x113 me=hex subme=7 psy=1 psy_rd=1.00:0.00 mixed_ref=1 me_range=16 chroma_me=1 решетка=1 8x8dct=1 cqm=0 deadzone=21,11 fast_pskip=1 chroma_qp_offset=-2 потоки=12 lookahead_threads=2 sliced_threads=0 nr=0 decimate=1 чересстрочная развертка=0 bluray_compat=0 constrained_intra=0 bframes=3 b_pyramid=2 b_adapt=1 b_bias=0 direct=1 weightb=1 open_gop=0 weightp=2 keyint=250 keyint_min=25 scenecut=40 intra_refresh=0 rc_lookahead=40 rc=crf mbtree=1 crf=23.0 qcomp=0.60 qpmin=0 qpmax=69 qpstep=4 ip_ratio=1.40 aq=1:1.00
Теперь я беру эти значения и создаю файл предустановок, как указано в документации.
Однако если я попытаюсь использовать этот файл, возникнет ошибка.
$ ffmpeg -i входной_файл.mp4 -fpre настройки.txt выходной_файл.mp4 settings.txt: Недопустимый параметр или аргумент: 'cabac=1 ', анализируется как 'cabac' = '1'
решение1
Когда вы указываете параметры в файлах предустановок, они сопоставляются с фактическими ffmpeg
параметрами, а не с параметрами кодировщика, которые он выводит, когда вы просматриваете выходные данные отладки.
Например, fast_pskip
в x264 называется -fast-pskip
в ffmpeg
. То же самое для rc_lookahead
, которое называется rc-lookahead
. Посмотрите на ffmpeg -h full
, раздел libx264 AVOptions
для всех возможных вариантов, которые вы можете сопоставить напрямую.
Для всех остальных вы хотите использоватьопция-x264opts
и передайте список key=value:key=value
, например:
ffmpeg -i input.mp4 -c:v libx264 -x264-params rc_lookahead=30:keyint=500 output.mp4
Обратите внимание, что редко есть смысл вручную настраивать эти параметры. Используйте параметр -preset
и выберитеодин из пресетов x264если вы хотите, чтобы все было просто.
решение2
Вам следует использовать
кодер = 1
вместоcabac = 1
Видетьэтотразместить другие параметры в файле предустановок.