Ответ 1
Добавить текст в сплошной цвет фона
Используйте color
фильтр источника видео и drawtext
видеофильтр.
ffmpeg -f lavfi -i color=c=blue:s=320x240:d=0.5 -vf \
"drawtext=fontfile=/path/to/font.ttf:fontsize=30: \
fontcolor=white:x=(w-text_w)/2:y=(h-text_h)/2:text='Stack Overflow'" \
output.mp4
-
d=0.5
сделает выходной сигнал на 0,5 секунды. - См. список поддерживаемых имен цветов и как использовать шестнадцатеричный код для установки цвета.
С прозрачным полем за текстом
Другой пример с белым полем за текстом с непрозрачностью 25% с 5-пиксельным отступом:
ffmpeg -f lavfi -i color=c=red:s=320x240:d=0.5 -vf \
"drawtext=fontfile=/path/to/font.ttf:fontsize=30: \
box=1:boxborderw=5:[email protected]: \
fontcolor=white:x=(w-text_w)/2:y=(h-text_h)/2:text='Stack Overflow'" \
output.mp4
Несколько строк
Легче центрировать две строки с несколькими примерами drawtext (левое изображение). Правильное изображение из внешних файлов и примеров разрыва строки.
Вы можете объединить два фильтра drawtext
или ссылаться на внешний текстовый файл с параметром textfile
или добавить разрыв строки в команде.
Несколько экземпляров drawtext
ffmpeg -f lavfi -i color=c=green:s=320x240:d=0.5 -vf \
"drawtext=fontfile=/path/to/font.ttf:fontsize=30:fontcolor=white:x=(w-text_w)/2:y=(h-text_h-text_h)/2:text='Stack', \
drawtext=fontfile=/path/to/font.ttf:fontsize=30:fontcolor=white:x=(w-text_w)/2:y=(h+text_h)/2:text='Overflow'" \
output.mp4
Внешний текстовый файл
Содержимое текстового файла text.txt
выглядит следующим образом:
Stack
Overflow
Команда ffmpeg
:
ffmpeg -f lavfi -i color=c=green:s=320x240:d=0.5 -vf \
"drawtext=fontfile=/path/to/font.ttf:fontsize=30: \
fontcolor=white:x=(w-text_w)/2:y=(h-text_h)/2:textfile=text.txt" \
output.mp4
Команда разрыва строки
ffmpeg -f lavfi -i color=c=green:s=320x240:d=0.5 -vf \
"drawtext=fontfile=/path/to/font.ttf:fontsize=30: \
fontcolor=white:x=(w-text_w)/2:y=(h-text_h)/2:text='Stack
Overflow'" \
output.mp4
Выходное изображение вместо видео
Если вы хотите, чтобы результат изображения заменил output.mp4
на -frames:v 1 output.png
.
Альтернативный метод
Использование subtitles
filter - это еще один способ сделать это.