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

FFmpeg缩放视频遇宽度无法被2整除问题求助

解决FFmpeg libx264编码时“width not divisible by 2”的问题

这个报错的核心原因是libx264编码器要求视频的宽度和高度必须是偶数,你之前的尝试只处理了高度的偶数化,但宽度还是可能因为按比例计算得到奇数,导致依然报错。下面给你两个靠谱的解决方案:

方法一:用-2自动适配偶数尺寸(最简便)

FFmpeg的scale滤镜支持用-2替代-1,它会自动将缩放后的尺寸调整为最接近的偶数,同时严格保持原视频的宽高比。结合你要限制高度不超过720的需求,命令可以改成:

ffmpeg -i input.mp4 -y -acodec aac -ac 2 -ab 160k -vcodec libx264 -vf "scale=-2:'min(720,-2)'" -f mp4 output.mp4

这里的-2作用是:

  • 宽度用-2:按比例计算后自动取最接近的偶数
  • 高度用min(720,-2):先确保高度不超过720,同时如果原高度超过720,缩放后的高度也会自动取偶数

方法二:手动计算并强制偶数(更灵活)

如果你需要更精细的控制(比如向下取整或向上取整),可以用数学函数手动计算宽高:

ffmpeg -i input.mp4 -y -acodec aac -ac 2 -ab 160k -vcodec libx264 -vf "scale='trunc(min(720,ih)*a/2)*2':'min(720,trunc(ih/2)*2)'" -f mp4 output.mp4

解释一下参数:

  • min(720,ih):先确定最大允许的高度(不超过720)
  • trunc(min(720,ih)*a/2)*2:根据宽高比a计算宽度,然后通过trunc(...)取整后乘以2,确保宽度是偶数
  • trunc(ih/2)*2:确保原始高度如果超过720,缩放后的高度是偶数

这两种方法都能解决你的问题,推荐第一种,简单高效还不容易出错。

内容的提问来源于stack exchange,提问作者yarek

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.06 21:17:53