缩放视频然后使用 ffmpeg 应用图像帧

缩放视频然后使用 ffmpeg 应用图像帧

我有一个 1920x1080 的图像框和一个具有相同分辨率的视频。

我想将视频尺寸调整为原分辨率的 80% 并将其居中,然后将其与图像框叠加。因此最终的视频效果为 1920x1080

我怎样才能做到这一点?

答案1

你可以尝试一下。

ffmpeg -i input_video -loop 1 -i input_image -t video_duration -filter_complex "[0:v]scale=iw*80/100:ih*80/100[vo];[1:v][vo]overlay=(main_w-overlay_w)/2:(main_h-overlay_h)/2,setpts=PTS-STARTPTS[outv]" -c:v libx264 -map [outv] output_video

在这里你必须使用filter_complexmap进行叠加和缩放等。0:v指的是输入视频和它的宽度和高度缩放为原始值的 80%。1:v指的是输入图像,它是覆盖将缩放后的视频放置在图像的中心。loop将在整个视频持续时间内循环播放图像,并将-t输出视频的持续时间限制为您想要的秒数。

如果您需要在输出视频中使用原始音频,请-map 0:a在指定输出文件之前使用。

ffmpeg -i input_video -loop 1 -i input_image -t video_duration -filter_complex "[0:v]scale=iw*80/100:ih*80/100[vo];[1:v][vo]overlay=(main_w-overlay_w)/2:(main_h-overlay_h)/2,setpts=PTS-STARTPTS[outv]" -c:v libx264 -map [outv] -map 0:a -c:a copy output_video

希望对你有帮助!

相关内容