Вот минимальный файл MLT, который записывает некоторый текст в видеовыход:
<?xml version="1.0"?>
<mlt>
<profile width="320" height="240"/>
<multitrack>
<playlist>
<producer in="0" out="0">
<property name="mlt_service">color</property>
</producer>
</playlist>
</multitrack>
<filter in="0" out="0">
<property name="mlt_service">dynamictext</property>
<property name="argument">Hello world!</property>
<property name="fgcolour">white</property>
</filter>
</mlt>
Он создает только один кадр, но если я сохраню вышеупомянутое как "text.mlt", я могу проверить вывод, извлекая кадр с помощью ffmpeg и открывая его с помощью моего средства просмотра изображений (я использую eog, поэтому замените его на свое собственное средство просмотра, если вы запускаете этот код):
melt text.mlt -consumer avformat:text.mp4 acodec=aac vcodec=libx264 &&
ffmpeg -y -loglevel quiet -i text.mp4 -vframes 1 text.png &&
eog text.png
Вот результат:
В задокументированном списке плагинов фильтров MLT перечислены два других фильтра рендеринга текста: «текст» и «qtext» ", но если я заменю" dynamictext "на" text "или" qtext "в файле mlt выше, текст не появится. Это ошибка или ожидаемое поведение? Если это ожидаемое поведение, может кто-нибудь объяснить, что происходит?
Я на Ubuntu 18.04.4 LTS, использую melt 6.6.0, загруженную из официального репозитория пакетов Ubuntu. Вот мой uname -a
вывод:
Linux laptop 4.15.0-99-lowlatency #100-Ubuntu SMP PREEMPT Wed Apr 22 21:10:38 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux
Спасибо!