1

Я пытаюсь создать видео, содержащее статическое изображение и видео меньшего размера, которое будет наложено поверх него. Размеры и положение оверлейного видео динамически отправляются на серверный скрипт, который запускает FFMPEG, поэтому мне нужно масштабировать видео перед наложением. Итак, числовые значения, которые я использовал, только для проверки. Оригинальное видео имеет размеры 72:48 пикселей. Я попробовал команду так:

ffmpeg -i background.jpg -vf "movie=overlay.mp4, scale=128:96 [inner]; [in][inner] overlay=70:70 [out]" -y output.mp4

Тем не менее, он просто мгновенно производит пустое видео. Если, с другой стороны, я пытаюсь вставить -loop 1 сразу после команды ffmpeg , обработка видео, кажется, занимает бесконечное время и никогда не заканчивается.

То, чего я пытаюсь добиться, - это сначала избежать создания масштабированного видео. Возможно ли это и что я делаю не так?

1 ответ1

4

использование

ffmpeg -loop 1 -i background.jpg \
       -vf "movie=overlay.mp4,scale=128:96[inner];[in][inner]overlay=70:70:shortest=1[out]" \
       -y output.mp4

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


С включенным аудио наложения

ffmpeg -loop 1 -i background.jpg -i overlay.mp4 \
       -filter_complex "[1]scale=128:96[inner];[0][inner]overlay=70:70:shortest=1[out]" \
       -map "[out]" -map 1:a -c:a copy -y output.mp4

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .