Добавить текст водяного знака на видео MKV, используя версию Windows ffmpeg

2235
sajjad hosseini

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

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

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

0

1 ответ на вопрос

2
LordNeckbeard

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

Также см

Похожие вопросы