我有一个 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_complex
和map
进行叠加和缩放等。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
希望对你有帮助!