Использование overlay
видеофильтра для добавления логотипа к видео:
ffmpeg -i video.mp4 -i logo.png -filter_complex "[0:v][1:v]overlay" \
-codec:a copy out.mp4
Чтобы понять эту команду, вам нужно знать, что такое спецификатор потока, и вам поможет чтение Введение в фильтрацию FFmpeg . [0:v]
относится к видеопотоку (ам) первого входа (video.mp4
), а [1:v]
относится к видеопотоку второго входа (logo.mp4
). Вот как вы можете указать overlay
какие входы использовать. Вы можете опустить [0:v][1:v]
, и overlay
все равно будет работать, но рекомендуется быть явным и не полагаться на возможно неизвестные значения по умолчанию.
По умолчанию логотип будет размещен в левом верхнем углу.
Использование -codec:a copy
будет транслировать поток аудио. Это просто перекодирует аудио вместо перекодирования. Думайте об этом как о "скопировать и вставить" аудио.
Перемещение логотипа
Этот пример переместит логотип на 10 пикселей вправо и на 10 пикселей вниз:
ffmpeg -i video.mp4 -i logo.png -filter_complex "[0:v][1:v]overlay=10:10" \
-codec:a copy out.mp4
Этот пример переместит логотип на 10 пикселей с правой стороны и на 10 пикселей вниз:
ffmpeg -i video.mp4 -i logo.png -filter_complex \
"[0:v][1:v]overlay=main_w-overlay_w-10:10" -codec:a copy out.mp4
main_w
относится к ширине "основного" ввода (фон или [0:v]
), а overlay_w
относится к ширине "оверлейного" ввода (логотип или [1:v]
). Таким образом, в примере это можно перевести как overlay=320-90-10:10
или overlay=220:10
.
Время наложения
Некоторые фильтры могут обрабатывать редактирование временной шкалы, которое позволяет вам использовать арифметические выражения, чтобы определить, когда фильтр должен быть применен. Обратитесь к ffmpeg -filters
чтобы увидеть, какие фильтры поддерживают редактирование временной шкалы.
Этот пример покажет логотип до 30 секунд:
ffmpeg -i video.mp4 -i logo.png -filter_complex \
"[0:v][1:v]overlay=10:10:enable=between(t\,0\,30)" -codec:a copy out.mp4
Если вы хотите исчезнуть логотип, обратитесь к ответу mark4o.