当使用ffmpeg处理视频文件时,报以上错误,按提示内容来看,意思是宽度必须是偶数。
原来的参数:-vf scale=-1:480
修改后的参数:-vf scale=-1:480,pad=ceil(iw/2)*2:ceil(ih/2)*2
这样就不报错了。
具体原因如下:
当你在使用-vf scale
滤镜时,指定为-1:480
意味着让FFmpeg自动计算宽度,保持原始宽高比的同时将高度设定为480像素。这种情况下,如果原始视频的比例与目标比例不匹配,且没有足够的“灵活性”来适应这个变化(比如高度固定而宽度未指定),就可能导致错误,尤其是当输出容器有严格的尺寸要求时。
加入pad
参数后不报错的原因是,pad
滤镜不仅能够调整视频尺寸,还能通过添加填充来确保最终输出满足指定的尺寸要求,即使原始内容经过缩放后不能完美适配。当你在scale
之后使用pad
,你实际上是先按比例缩放视频(可能只指定高度或宽度),然后通过pad
来扩展视频画面到一个确切的尺寸,这包括在必要时添加背景色来填补因尺寸调整造成的空缺部分。
Was this helpful?
0 / 0