M a*_*a D 19 php video ffmpeg resolution
这是我的代码,通过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');
Run Code Online (Sandbox Code Playgroud)
它运作良好,但问题是,图像按比例缩小或向上,取决于视频分辨率.例如,在以下图像中,徽标宽度是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
Run Code Online (Sandbox Code Playgroud)
和
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
Run Code Online (Sandbox Code Playgroud)
这非常有效,但它不保持徽标宽高比.我在两个分辨率不同的视频上尝试了这个代码,这就是结果
还有这个
有可能改进这个解决方案吗?
Gya*_*yan 11
您可以使用scale2ref过滤器.
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
Run Code Online (Sandbox Code Playgroud)
这会将徽标的高度调整为视频高度的1/8.
您必须替换W/H图像的值,例如,如果PNG是320x270,那么它应该是scale2ref=(320/270)*ih/8:ih/8
|   归档时间:  |  
           
  |  
        
|   查看次数:  |  
           1907 次  |  
        
|   最近记录:  |