передать параметры ffmpeg через mlt xml

Я просматриваю XML-файл MLT, созданный с помощью kdenlive, и хотел бы настроить параметры командной строки, переданные ffmpeg.

Если я правильно понимаю, это часть, которую мне нужно отредактировать:

 <consumer f="mp4" g="15" channels="2" crf="15" progressive="1" target="thetargetfile.mp3" threads="0" real_time="-3" format_options="-stillimage" mlt_service="avformat" vcodec="libx264" ab="256k" movflags="+faststart" bf="2" preset="faster" acodec="aac" in="0" out="18263"/>

Теперь я хотел бы передать дополнительный флаг ffmpeg, в моем случае -stillimage для оптимизации вывода неподвижных изображений (мой файл представляет собой записанную презентацию слайд-шоу, поэтому нет никаких оправданий тому, что он имеет размер в сотни МБ).

Есть ли опция, позволяющая просто передавать произвольные флаги в ffmpeg, или как еще я могу выполнить такую ​​оптимизацию?


person carsten    schedule 17.04.2021    source источник


Ответы (1)


Похоже, это проблема XY.

Ближайшая проблема заключается в том, как передать неподвижное изображение. Основная проблема заключается в том, как уменьшить размер файла слайд-шоу.

Для stillimage это тип настройки кодировщика, поэтому формат будет tune="stillimage". См. https://www.mltframework.org/plugins/ConsumerAvformat/#tune-3

Однако такая настройка принесет скромную пользу или, возможно, вообще не принесет никакой пользы.

Двумя ключевыми параметрами, создающими файл большего размера, являются

g="15" ... crf="15"

Такое низкое значение CRF расточительно, если только разрешение не достаточно низкое (‹ 360p). Держите его на уровне около 23. При таком низком значении g генерируется много ключевых кадров, которые увеличивают размер файла. Для слайд-шоу обычно достаточно значения по умолчанию 250.

person Gyan    schedule 17.04.2021