FFMPEG-можете ли вы наложить часть видео с помощью нескольких изображений?

Мне нужно добавить наложение видео, и мне было интересно, есть ли простой способ сделать это с помощью FFMPEG.

У меня есть набор изображений (баннер и портрет), которые я хотел бы наложить в нижней части моего видео на часть продолжительности видео. Например, примерно через 5 секунд я хотел бы, чтобы оверлей появился, а затем примерно за 5 секунд до конца видео я хотел бы, чтобы оверлей ушел.

возможно ли это с помощью команды FFMPEG параметры линии?

4 ответов


с наложением изображений FFMpeg с помощью командной строки, безусловно, самый мощный и элегантный способ сделать это с помощью инструмента под названием AVISynth.

вот несколько простых примеров, один из которых накладывает одно видео поверх другого (наложение изображения является подмножеством этого):
http://avisynth.org/mediawiki/Script_examples

вы можете задаться вопросом,что это за инструмент? Вот как это работает концептуально:

сначала создается простой текстовый документ со специальными командами, называемый скриптом. Эти команды делают ссылки на одно или несколько видео и фильтры, которые вы хотите запустить на них. Затем запустите видеоприложение, например FFMPeg, и передайте файл сценария в командной строке. Это когда AviSynth принимает меры. Он открывает видео, на которые вы ссылаетесь в скрипте, запускает указанные фильтры и передает выходные данные в видеоприложение. Приложение, однако, не известно, что AviSynth работает в фоновом режиме. Вместо этого приложение думает, что оно непосредственно открывает отфильтрованный файл AVI, который находится на вашем жестком диске.

то, что вы хотите, очень просто с AVISynth, но он может масштабироваться, чтобы делать видео, как этот сайт, где много фотографий, текста и эффектов размещены на видео. Все видео на этом сайте ecard создаются с помощью FFMpeg и AVISynth:http://www.hdgreetings.com

Это может показаться немного разные, но как только вы получите один простой скрипт, вы сразу поймете, что это один из лучших видео-инструментов, когда-либо созданных. И это, конечно, бесплатно.


в зависимости от того, какую платформу вы используете, вы можете просто воспроизвести видео, а затем создать как окно X с изображением над видео. Во время воспроизведения видео вы можете использовать ffmpeg для записи окна X с воспроизведением видео в фоновом режиме и вашего изображения на переднем плане.

Это полный хак, но я бросаю его там.


ffmpeg не позволяет такого рода манипуляции с изображениями. Однако, возможно, Вам повезло.

поскольку вам все равно придется распаковывать видео, вы можете использовать ffmpeg для создания необработанных изображений на диск, наложения изображений с помощью некоторой утилиты (простое приложение c# сделает трюк) и использовать ffmpeg для создания другого видео с желаемыми (или такими же, как исходные) параметрами.

делать пометки, вы, вероятно, можете использовать GIMP: http://www.gimp.org/tutorials/Basic_Batch/ поскольку это кросс-платформенный инструмент, который можно использовать в пакетном режиме (командная строка).


FFMPEG может накладывать изображения на видео в любой момент времени.

ffmpeg -i video -i image1 -i image2 -i image3
 -filter_complex
    "[0][1]overlay=x=X:y=Y:enable='between(t,23,27)'[v1];
     [v1][2]overlay=x=X:y=Y:enable='between(t,44,61)'[v2];
     [v2][3]overlay=x=X:y=Y:enable='gt(t,112)'[v3]"
-map "[v3]" -map 0:a  out.mp4

пожалуйста, проверьте этот пост для более подробной информации: FFMPEG-можно ли накладывать несколько изображений на видео с заданными интервалами?