FFMPEG:将缩放的视频叠加在图像上

FFMPEG:将缩放的视频叠加在图像上

我正在尝试制作包含静态图像和较小视频的视频,这些视频将叠加在其上。叠加视频的尺寸和位置会动态发送到运行 FFMPEG 的服务器脚本,因此我需要在叠加视频之前缩放视频。因此,我使用的数值仅用于测试。原始视频的尺寸为 72:48px。我尝试了这样的命令:

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

使用

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

相关内容