FFMPEG合并视频缩放与水印添加滤镜的单命令语法求助
错误原因
报错日志明确提示width not divisible by 2 (403x720),H.264编码规范要求输出视频的宽高必须为偶数,你原缩放规则中使用-1自动计算另一侧尺寸时,得到了奇数宽度403,不符合编码器要求。
正确合并命令
你只需要把原缩放规则里的-1替换为-2即可,-2会在保持宽高比的前提下,自动将计算出的尺寸对齐到偶数,同时也同步调整logo缩放逻辑避免极端场景下的尺寸问题:
ffmpeg -i /var/www/html/site/public_html/media/input.mp4 \ -i /var/www/html/site/public_html/media/logo.png \ -c:v libx264 -preset medium -crf 23 \ -filter_complex "[0]scale='if(gt(a,4/3),1280,-2)':'if(gt(a,4/3),-2,720)'[main];[1]scale=200:-2[wm];[main][wm]overlay=5:main_h-overlay_h-5" \ -movflags +faststart \ /var/www/html/site/public_html/media/output.mp4
通用版本(替换对应路径即可直接使用)
ffmpeg -i input.mp4 -i logo.png \ -c:v libx264 -preset medium -crf 23 \ -filter_complex "[0]scale='if(gt(a,4/3),1280,-2)':'if(gt(a,4/3),-2,720)'[main];[1]scale=200:-2[wm];[main][wm]overlay=5:main_h-overlay_h-5" \ -movflags +faststart output.mp4 2>&1
内容的提问来源于stack exchange,提问作者master00
相关产品推荐
相关产品推荐

