ffmpeg Предоставляется как текст, так и текстовый файл. Пожалуйста, предоставьте только один - PullRequest
0 голосов
/ 25 марта 2019

У меня есть следующая команда:

ffmpeg -i vid.mp4 -vf "[in]drawtext=fontfile=C:\Windows\Fonts\arial.ttf:fontsize=40:fontcolor=yellow:x=2048/2:y=720/2:textfile='credits.txt':enable='between(t,6,12)' [out]" -c:v libx264 -t 30 -max_muxing_queue_size 1024 scrolling.mp4

И ffmpeg выдает ошибку:

[Parsed_drawtext_0 @ 000002354c44eb00] Предоставлен как текст, так и текстовый файл.Пожалуйста, предоставьте только один

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

Также -max_muxing_queue_size 1024, потому что я получаю эту ошибку без нее:

Слишком много пакетов, буферизованных для выходного потока0: 1.

1 Ответ

2 голосов
/ 25 марта 2019

Вам необходимо экранировать путь к файлу шрифта, потому что : в "C: \" является разделителем аргументов для фильтра drawtext.Поскольку других пар "arg = value" нет, он пытается использовать некоторую часть командной строки в качестве текста.

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

Это сработало для меня:

ffmpeg \
-i vid.mp4 \
-vf "[in]drawtext=fontfile='C\\:/Windows/Fonts/arial.ttf':
fontsize=40:fontcolor=yellow:
x=2048/2:y=720/2:textfile=credits.txt:
enable='between(t,6,12)'[out]" \
-c:v libx264 \
-t 30 \
-max_muxing_queue_size 1024 \
scrolling.mp4
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...