Добавить текст водяного знака на видео MKV, используя версию Windows ffmpeg
Я хочу добавить текст водяного знака в .mkv
использование видео ffmpeg
на винде. Я хочу, чтобы водяной знак был похож на субтитр, который начинается со второй минуты и длится 30 секунд и гласит: "copyright to mysite.com".
Я старался mkvmerge
добавить субтитры, но они могут быть легко удалены другими, так что теперь я полагаюсь на ffmpeg
сделать это для меня. Может ли кто-нибудь помочь мне с процессом?
Я хочу, чтобы водяной знак был на самом деле на видео, поэтому его нельзя удалить с помощью mkvmerge
,
1 ответ
Вы можете использовать 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
build не поддерживает fontconfig, тогда вам придется использоватьfontfile
вариант вместоfont
и укажите полный путь к файлу шрифта.