2013-07-12 4 views
26

Как добавить наложение текста на мое видео в ffmpeg?Текст на видео ffmpeg

т. Е. С учетом видео «video1.flv», как я могу добавить текст «StackOverflow» во время всего видео, расположенного посередине экрана, с белым текстом и границей?

+0

взгляд [здесь] (https://sites.google.com/a/asu.edu/wireless-video-sensor/video/how-to-setup-full-ffmpeg-tools-in-ubuntu -11-10/полезный-FFmpeg-команд). Н.Р.. 6 – bitWorking

+6

@bitWorking - Я вижу, что вашему комментарию уже 3 года, но, тем не менее, прошу вас, пожалуйста, не оскорбляйте и не тратите время на членов сообщества stackoverflow с вашими запутанными ссылками «позвольте мне google для вас». Тем более, что вы вводите рекурсию (я пришел сюда через google search). Также использование сокращений URL может скрыть потенциальные вредоносные программы или спам-ссылки, потому что вы не будете знать, где ваши указатели. – FooF

ответ

60

Используйте drawtext видеофильтр в FFmpeg:

enter image description here

ffmpeg -i input.mp4 -vf drawtext="fontfile=/path/to/font.ttf: \ 
text='Stack Overflow': fontcolor=white: fontsize=24: box=1: [email protected]: \ 
boxborderw=5: x=(w-text_w)/2: y=(h-text_h)/2" -codec:a copy output.mp4 
  • В @0.5 управляет непрозрачность текстового поля. В этом примере он установлен на 50%. Вы можете удалить @0.5, и прозрачности не будет.

  • -codec:a copy будет stream copy (повторный перевод) аудио и избежать повторного кодирования.

  • Альтернативой фильтру drawtext является использование ASS or SRT subtitles - особенно если вы хотите, чтобы текстовые или программные файлы были синхронизированы.

  • Если вы хотите обновить или изменить текст, используйте параметры фильтра textfile и reload.

  • Этот фильтр требует, чтобы ваш ffmpeg был скомпилирован с помощью --enable-libfreetype. Если у вас есть No such filter: 'drawtext', возможно, отсутствует --enable-libfreetype. Большинство статических построений ffmpeg поддерживают эту функцию, поэтому см. Страницу FFmpeg Download для ссылок.

  • См. drawtext filter documentation для получения дополнительных сведений и примеров.

+0

Спасибо. Это создает статический текст. Помимо возможностей даты и времени, существует ли способ создания наложения текста, который изменяется (например, тикер-лента внизу экрана) или ввода из текстового потока? –

+1

@NoahTernullo есть опции strftime и переменная «pts», которую вы можете использовать. Что касается того, чтобы сделать его тикером по дну, вы, вероятно, можете использовать некоторую функцию для изменения значений переменной x на основе чисел или числа кадров. – rogerdpack

+0

Невозможно найти подходящий формат вывода для 'text =' Stack '. Получив эту ошибку, пожалуйста, помогите мне .. !! –

Смежные вопросы