2014-07-01 3 views
0

Я пытаюсь использовать -vf drawtext функции внутри ffmpeg.ffmpeg commandline поведение случайность

Следующая команда работает успешно

ffmpeg -y -i "C:\2.avi" -preset ultrafast -crf 18 -vf drawtext=text=stackoverflow:fontfile=C:/WINDOWS/Fonts/georgia.ttf C:\o.mkv 

Однако, как только мы изменяем команду (позиции изменения fontfile = с текстом =

ffmpeg -y -i "C:\2.avi" -preset ultrafast -crf 18 -vf drawtext=fontfile=C:/WINDOWS/Fonts/georgia.ttf:text=stackoverflow C:\o.mkv 

я получаю следующие ошибки

[ Parsed_drawtext_0 @ 02d88a80]Не удалось загрузить шрифт «C»: невозможно найти соответствие f ОНТ

[AVFilterGraph @ 02c86a20]Ошибка инициализации фильтра 'DrawText' с 'fontf ARGS Иль = C: /WINDOWS/Fonts/georgia.ttf: текст = StackOverflow:' Ошибка при открытии фильтров!

Я не понимаю, почему изменение тех же параметров вокруг может повлиять на общий результат, это вызывает у меня настоящие проблемы, потому что каждый раз, когда я добавляю к этому запросу, я должен задаться вопросом, просто ли это позиционирование параметров или Я на самом деле делаю что-то неправильно.

ответ

0

Проблема заключается в том, что путь использует двоеточие (:), которое также является разделителем для аргументов. Я ожидал, что обе команды линии вышла из строя, на самом деле ...

docs состояния вам нужно бежать колон в целом, а также дать конкретный пример для drawtext

Обратите внимания, что колонам нужны чтобы сбежать.

drawtext='fontfile=Linux Libertine O-40\:style=Semibold:text=FFmpeg' 

Таким образом, следующие работы (Windows, немного частности, о том, как не escpae материал в оболочке, например, ни одна кавычка маскирование, так что вам нужно, чтобы избежать \ а)

drawtext=fontfile=C\\:/WINDOWS/Fonts/georgia.ttf:text=stackoverflow 
+0

Будет ли это проверено в ближайшее время, кажется логически правильным. Спасибо что подметил это. В целом, хотя вы бы предположили, что если это так, он потерпит неудачу в зависимости от того, какой заказ указан, но он не ... – cecilli0n