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