Я хочу добавить текст водяного знака в видео .mkv используя ffmpeg в Windows. Я хочу, чтобы водяной знак был похож на субтитр, который начинается со второй минуты и длится 30 секунд и гласит: «copyright to mysite.com».

Я попытался mkvmerge добавить субтитры, но они могут быть легко удалены другими, так что теперь я полагаюсь на ffmpeg чтобы сделать это для меня. Может ли кто-нибудь помочь мне с процессом?

Я хочу, чтобы водяной знак был на самом деле на видео, поэтому его нельзя удалить с помощью mkvmerge .

1 ответ1

2

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

Также см

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .