Использование 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 .