Вы можете использовать subtitles
или drawtext
фильтры для размещения текста на видео, но, как и с любым видеофильтром, оба метода требуют перекодирования видео .
subtitles
фильтр
Принимает файл субтитров в форматах ASS или SRT. Это можно легко сделать с помощью aegisub или даже через текстовый редактор.
Этот фильтр будет создавать хардсубы, которые являются субтитрами, которые становятся частью видео. Они не могут быть включены или выключены.
Время контролируется файлом субтитров.
Субтитры ASS должны допускать более причудливые эффекты, чем субтитры SRT или использование
drawtext
фильтра.
пример
ffmpeg -i in.mkv -map 0 -vf subtitles=subs.ass -c copy -c:v libx264 out.mkv
Этот пример переопределит поведение выбора потока по умолчанию и отобразит все потоки из ввода с помощью
-map 0
.Все потоки будут скопированы, кроме видеопотока (ов), которые будут перекодированы.
Фильтр также может ссылаться на существующий поток субтитров во входном файле, например
subtitles=video.mkv
илиsubtitles=video.mkv:si=1
.
drawtext
фильтр
Этот фильтр будет рисовать текст на видео. Обычно используется для простого слова или предложения. Время, которое он отображает, можно контролировать с помощью enable
опции .
пример
ffmpeg -i in.mkv -map 0 -vf "drawtext=enable='between(t,120,150)':fontsize=20: \ font=Sans:text='© mysite.com':x=w-tw-10:y=h-th-10" -c copy -c:v libx264 out.mkv
В этом примере текст будет размещен в правом нижнем углу с отступом в 10 пикселей.
Если ваша
ffmpeg
сборка не поддерживает fontconfig, вам придется использоватьfontfile
опцию вместоfont
и указать полный путь к файлу шрифта.