Ответ 1
Порядок наложения контролируется порядком входов, от документов ffmpeg
[...] принимает два входа и один выход, первый вход - это "основное" видео, на которое накладывается второй вход.
Вторая команда будет выглядеть так:
ffmpeg -y -loop 1 -qscale 1 -r 1 -b 9600 -i frame_%d.png -vf "movie=bg.png [wm];[wm][in] overlay=0:0" -s hd720 testvid.mp4
В последних версиях ffmpeg новая команда -filter_complex
делает этот процесс еще проще:
ffmpeg -loop 1 -i bg.png -i frame_%d.png -filter_complex overlay -shortest testvid.mp4
Полный рабочий пример:
Источник наших прозрачных входных изображений (извинения за танцы):
Помещено в рамки с помощью ImageMagick:
convert dancingbanana.gif -define png:color-type=6 over.png
(Настройка png:color-type=6
(RGB-Matte) имеет решающее значение, поскольку ffmpeg не обрабатывает индексированную прозрачность правильно.) Входы называются over-0.png
, over-1.png
, over-2.png
и т.д.
Наш фоновый рисунок (увеличенный до банана):
Используя ffmpeg version N-40511-g66337bf
(a git build со вчерашнего дня), мы делаем:
ffmpeg -loop 1 -i bg.png -r 5 -i over-%d.png -filter_complex overlay -shortest out.avi
-loop
включает в себя вход фонового изображения, так что у нас есть не только один кадр, решающий! -r
замедляет танцевальный банан, необязательно. -filter_complex
- это недавно добавленная функция ffmpeg, облегчающая обработку нескольких входов. -shortest
заканчивает кодирование, когда заканчивается кратчайший вход, что необходимо, поскольку петля фона означает, что этот вход никогда не закончится.
Используя немного меньше передовой сборки, ffmpeg version 0.10.2.git-d3d5e84
:
ffmpeg -loop 1 -r 5 -i back.png -vf 'movie=over-%d.png [over], [in][over] overlay' -frames:v 8 out.avi
movie
не позволяет устанавливать скорость, поэтому вместо этого мы замедляем фоновый эффект, который дает тот же эффект. Поскольку наложенный фильм не является правильным вводом, мы не можем использовать -shortest
и вместо этого явно задавать количество кадров для вывода на количество наложенных входных кадров.
Конечный результат (вывод как gif для вложения):