Как добавить прозрачный водяной знак в центре видео с помощью ffmpeg?

В настоящее время я использую эти команды:

Top left corner
ffmpeg –i inputvideo.avi -vf "movie=watermarklogo.png [watermark]; [in][watermark] overlay=10:10 [out]" outputvideo.flv

Top right corner
ffmpeg –i inputvideo.avi -vf "movie=watermarklogo.png [watermark]; [in][watermark] overlay=main_w-overlay_w-10:10 [out]" outputvideo.flv

Bottom left corner
ffmpeg –i inputvideo.avi -vf "movie=watermarklogo.png [watermark]; [in][watermark] overlay=10:main_h-overlay_h-10 [out]" outputvideo.flv

Bottom right corner
ffmpeg –i inputvideo.avi -vf "movie=watermarklogo.png [watermark]; [in][watermark] overlay=(main_w-overlay_w-10)/2:(main_h-overlay_h-10)/2 [out]" outputvideo.flv

Как разместить водяной знак в центре видео?

1 ответ

Решение

Примеры наложения / водяных знаков на видео:

Сосредоточенный

ffmpeg -i input.mp4 -i logo.png -filter_complex \
"overlay=(main_w-overlay_w)/2:(main_h-overlay_h)/2" \
-codec:a copy output.mp4

или с укороченными вариантами наложения:

overlay=(W-w)/2:(H-h)/2

Верхний левый

Это простой способ, потому что по умолчанию, если вы не предоставляете опций для наложения, размещается изображение в верхнем левом углу.

Этот пример добавляет 5 пикселей заполнения, чтобы изображение не касалось краев:

overlay=5:5

В правом верхнем углу

С отступом 5 пикселей:

overlay=main_w-overlay_w-5:5

или с укороченными вариантами:

overlay=W-w-5:5

Нижний правый

С отступом 5 пикселей:

overlay=main_w-overlay_w-5:main_h-overlay_h-5

или с укороченными вариантами:

overlay=W-w-5:H-h-5

Нижний левый

С отступом 5 пикселей:

overlay=5:main_h-overlay_h

или с укороченными вариантами:

overlay=5:H-h-5

Заметки

  • В этом примере аудио просто копируется потоком (смикшируется) с -codec:a copy вместо того, чтобы перекодировать. Возможно, вам придется перекодировать в зависимости от формата выходного контейнера.

  • Смотрите документацию на overlayвидео фильтр для получения дополнительной информации и примеров.

  • См. Руководство по кодированию видео FFmpeg H.264 для получения дополнительной информации о получении качественного вывода.

  • Если наложенное изображение имеет цветовое пространство RGB (например, большинство изображений PNG), вы можете увидеть визуальное улучшение, если добавите format=rbg к вашему наложению. Обратите внимание, что если вы сделаете это, и если вы выводите H.264, вам придется добавить format=yuv420p (это еще один фильтр - он отличается от параметра с аналогичным именем в оверлейном фильтре). Так что это может выглядеть так:

    overlay=5:H-h-5:format=rgb,format=yuv420p
    
Другие вопросы по тегам