【发布时间】:2016-11-11 03:11:41
【问题描述】:
这是我通过 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,但视频分辨率不同:
还有这个
如何防止图像缩小/放大?
更新
感谢Mulvya,他提出了这些代码
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
效果很好,但它不会保持徽标的纵横比。 我在两个不同分辨率的视频上尝试了这段代码,结果就是这样
还有这个
是否可以改进此解决方案?
【问题讨论】:
标签: php video ffmpeg resolution