You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

FFMPEG转MOV为MP4时自动升分辨率,如何保留原视频尺寸?

问题根因

转码时分辨率自动放大是因为FFmpeg检测到源MOV视频使用非正方形采样像素(SAR),默认会按照显示宽高比(DAR)将输出MP4转换为正方形像素对应的分辨率,导致分辨率被动放大。

修正后可直接使用的代码
find . -iname "*.mov" -print0 | while IFS= read -r -d '' file; do
    ffmpeg -i "$file" -c:v libx264 -crf 23 -vf "scale=iw:ih,setsar=1" -c:a aac "${file%.*}.mp4" -y
    rm "$file"
done
核心调整说明
  • 优化了文件遍历逻辑,-iname参数不区分大小写匹配MOV后缀,同时兼容带空格、特殊字符的文件名,避免原遍历逻辑的潜在报错
  • 新增的-vf "scale=iw:ih,setsar=1"参数是分辨率不被修改的核心:
    • scale=iw:ih强制输出视频宽高和输入视频完全一致
    • setsar=1强制输出视频使用正方形像素,阻断FFmpeg自动拉伸分辨率的逻辑
  • 如果你处理的视频存在宽高为奇数的情况,只需要把scale参数修改为scale=trunc(iw/2)*2:trunc(ih/2)*2即可,仅对奇数像素做取整处理,不会改变原有视频的分辨率比例。

内容的提问来源于stack exchange,提问作者Peter Mark Friedladner

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.03 20:06:04