FFMPEG:在视频上添加固定大小的图像,而不管视频的宽度和高度(分辨率)

这是我的代码,它将图像添加到通过PHP运行的视频中:

exec('ffmpeg -i input.mp4 -i logo.png -filter_complex 
"[0:v][1:v] overlay=10:10"  -pix_fmt yuv420p -c:a copy output.mp4');

它运作良好,但问题在于,图像缩小或缩小,取决于视频分辨率。例如,在以下图片中,徽标宽度是,50px但视频分辨率不同:

 

和这个

 

如何防止图像缩小/放大?

 

ffmpeg -i input.mp4 -i logo.png -filter_complex 
"[1:v][0:v]scale2ref=(W/H)*ih/8:ih/8[wm][base];[base][wm]overlay=10:10"
-pix_fmt yuv420p -c:a copy output.mp4

ffmpeg -i input.mp4 -i logo.png -filter_complex 
"[1:v][0:v]scale2ref=(W/H)*ih/8:ih/8[wm][base];[wm]setsar=1[wmsar];
[base][wmsar]overlay=10:10"
-pix_fmt yuv420p -c:a copy output.mp4

这工作得很好,但它不会保持徽标的长宽比。我在两个不同分辨率的视频上试过这个代码,这就是结果

 

和这个

 

有没有可能改进这个解决方案?

写回答关注邀请回答

提问于 2018-04-28

1 个回答

 

用户回答回答于 2018-04-28

ffmpeg -i input.mp4 -i logo.png -filter_complex 
"[1:v][0:v]scale2ref=(W/H)*ih/8/sar:ih/8[wm][base];[base][wm]overlay=10:10"
-pix_fmt yuv420p -c:a copy output.mp4

这将调整标志的高度到视频高度的1/8。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值