Я пытаюсь добавить свой логотип в первые 30 секунд в видео с ffmpeg. У меня есть видео d1.mp4
и логотип logo.png
.
Когда видео начинается, водяной знак должен находиться в верхнем левом или правом верхнем углу видео и исчезать через 30 секунд.
Можете ли вы показать мне, как добавить его?
ffmpeg -i d1.mp4 -i logo.png
показывает? Пожалуйста, просто введите эту команду и покажите нам, каков результат. Задавая вопросыffmpeg
, вы всегда должны включать как можно больше подробностей о том, какой у вас видео / аудио материал, что вы уже пробовали, а также вывод всей командной строки всего, что вы пробовали.Ответы:
Это предполагает, что логотип представляет собой одно неподвижное изображение с альфа-каналом, и вы хотите наложить его на видео с частотой кадров 30000/1001 (частота NTSC). Измените,
-framerate
чтобы соответствовать входному видео, если оно отличается. Если ваш логотип - видео, опустите-framerate 30000/1001 -loop 1
. Если у логотипа нет альфа-канала, добавьте его, вставив, например,format=yuva420p,
непосредственно перед этимfade
.Это будет отображать логотип в x, y позиции 10,10 в течение 30 секунд с последующим исчезновением в течение 1 секунды.
источник
framerate
иloop
требуются в этом случае, а не для простого наложения без фильтра затухания?-framerate
и-loop
для неподвижного изображения в том, что затухание будет работать. Если есть только один кадр, то он не может исчезнуть в течение 1 секунды. В идеале это должна быть та же частота кадров, что и у видео, чтобы затухание было как можно более плавным.Использование
overlay
видеофильтра для добавления логотипа к видео:Чтобы понять эту команду, вам нужно знать, что такое спецификатор потока, и вам поможет чтение Введение в фильтрацию FFmpeg .
[0:v]
ссылается на видеопоток (ы) первого входа (video.mp4
) и[1:v]
ссылается на видеопоток второго входа (logo.mp4
). Вот как вы можете сказать,overlay
какие входы использовать. Вы можете опустить[0:v][1:v]
иoverlay
все равно будет работать, но рекомендуется быть явным и не полагаться на возможно неизвестные значения по умолчанию.По умолчанию логотип будет размещен в левом верхнем углу.
Использование
-codec:a copy
будет поток копировать аудио. Это просто перекодирует аудио вместо перекодирования. Думайте об этом как об «копировании и вставке» аудио.Перемещение логотипа
Этот пример переместит логотип на 10 пикселей вправо и на 10 пикселей вниз:
Этот пример переместит логотип на 10 пикселей с правой стороны и на 10 пикселей вниз:
main_w
относится к ширине «основного» ввода (фон или[0:v]
) иoverlay_w
относится к ширине «оверлейного» ввода (логотип или[1:v]
). Итак, в примере это можно перевести наoverlay=320-90-10:10
илиoverlay=220:10
.Время наложения
Некоторые фильтры могут обрабатывать редактирование временной шкалы, что позволяет использовать арифметические выражения, чтобы определить, когда следует применять фильтр. См., Чтобы
ffmpeg -filters
увидеть, какие фильтры поддерживают редактирование временной шкалы.В этом примере логотип будет отображаться до 30 секунд:
Если вы хотите исчезнуть логотип, обратитесь к ответу mark4o .
источник
enable=not(between'(t,30,50)')
. Это покажет наложение в любое время, но не в течение 30-60 секунд.overlay
все само по себе, я сделал, потому что положение по умолчанию в верхнем левом углу было то, что я хотел. (Так что в конце мои флаги были простоfilter_complex overlay
.)