Как добавить мой логотип в течение первых 30 секунд в видео с помощью ffmpeg?

Я пытаюсь добавить свой логотип в течение первых 30 секунд в видео с помощью ffmpeg. У меня есть видео под названием d1.mp4 и логотип под названием logo.png .

Когда видео начинается, водяной знак должен находиться в верхнем левом или верхнем правом углу видео и исчезать через 30 секунд.

Не могли бы вы показать мне, как добавить его?

 ffmpeg -i in.mp4 -framerate 30000/1001 -loop 1 -i logo.png -filter_complex "[1:v] fade=out:st=30:d=1:alpha=1 [ov]; [0:v][ov] overlay=10:10 [v]" -map "[v]" -map 0:a -c:v libx264 -c:a copy -shortest out.mp4 

Это предполагает, что логотип представляет собой одно неподвижное изображение с альфа-каналом, и вы хотите наложить его поверх видео с частотой кадров 30000/1001 (скорость NTSC). Измените -framerate в соответствии с вашим входным видео, если он отличается. Если ваш логотип – это видео, то опустите -framerate 30000/1001 -loop 1 . Если логотип не имеет альфа-канала, добавьте его, вставив, например, format=yuva420p, непосредственно перед fade .

Это отобразит логотип в положении x, y 10,10 в течение 30 секунд, а затем на 1 секунду исчезнет.

Использование overlay видеофильтра для добавления логотипа в видео:

Введите описание изображения здесь

 ffmpeg -i video.mp4 -i logo.png -filter_complex "[0:v][1:v]overlay" \ -codec:a copy out.mp4 

Чтобы понять эту команду, вам нужно знать, что такое спецификатор потока, и поможет прочитать введение в FFmpeg Filtering . [0:v] относится к видеопотоку первого входа ( video.mp4 ), а [1:v] относится к видеопотоку второго входа ( logo.mp4 ). Вот как вы можете определить, какие входы использовать. Вы можете опустить [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 относится к ширине входа «overlay» (логотип или [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 .

  • Как конвертировать видео в изображения?
  • Ffmpeg: Ошибка переполнения очереди буфера появляется при добавлении звука с помощью amix для наложения фильтрованного видео
  • Как создать видео с изображениями с помощью FFmpeg?
  • Использование FFmpeg в .net?
  • Телевизионные записи WTV и DVR-MS, следует ли я де-чередовать или нет?
  • Ffmpeg Audio Stereo to Mono с использованием только левого канала
  • Программа для преобразования flac в mp3?
  • Как я могу получить ffmpeg для преобразования .mov в .gif?
  • Настройки кодировки FFmpeg x264
  • Преобразование FLV в MP4 с использованием FFMPEG и сохранение качества
  • Как нормализовать звук с помощью ffmpeg?
  • Давайте будем гением компьютера.