解决FFMPEG错误:height not divisible by 2 / width not divisible by 2

在webm转mp4时遇到该错误,原因是要转换的(转换后的?)视频的长宽尺寸中有奇数,比如我遇到的567*240。原始命令:

ffmpeg -i 1.webm -c:v libx264 ~/1.mp4

解决方案:
在libx264后面加上参数,这会让长宽都变为偶数:

-vf "pad=ceil(iw/2)*2:ceil(ih/2)*2"

加完后的完整命令:

ffmpeg -i 1.webm -c:v libx264 -vf "pad=ceil(iw/2)*2:ceil(ih/2)*2" ~/1.mp4

来源:Stackoverflow 第一个answer
在这里插入图片描述

另外,在使用ffmpeg缩放视频尺寸时也会遇到此错误。我的意图是把视频的高缩放到240,宽按比例变动,原始命令如下:

ffmpeg -i input.mp4 -vf "scale=-1:240" ~/output1.mp4

input的原尺寸是1280*720, 目标尺寸427*240,427是奇数,出现报错:width not divisible by 2 (427x240)

根据stackoverflow(这里)的解释,似乎是因为某个视频格式要求视频的宽高尺寸必须是偶数?(不太懂视频编码,不确定)
不过解决方案我也成功地摸索出来了,就是使用过滤器链,scale完后再padding,这样生成的新视频尺寸就是偶数了。
可用的命令如下:

ffmpeg -i input.mp4 -vf "scale=-1:240,pad=ceil(iw/2)*2:ceil(ih/2)*2" ~/output1.mp4

这里用了scale和pad两个filter,中间用逗号隔开即可。这是我第一次使用ffmpeg,关于ffmpeg的用法我参考了这篇文章这篇文章

  • 8
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值