Добавить текст водяного знака на видео 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 и укажите полный путь к файлу шрифта.

Также см

Другие вопросы по тегам