gpt4 book ai didi

FFMPEG - 宽度/高度不能被 2 整除(缩放以生成 MBR 输出)

转载 作者:行者123 更新时间:2023-12-04 22:48:01 25 4
gpt4 key购买 nike

我正在尝试在我的库(Mp4 格式)中生成多种视频变体,并计划从 1080p 到 240p 以及介于两者之间的流行尺寸。为此,我正在拍摄具有 AxB 分辨率的视频,然后运行代码(在 bash 上),将它们缩放到所需的以下尺寸 -
426x240
640x360
842x480
1280x720
1920x1080,当然有不同的比特率,然后再次保存为 Mp4。

现在,如果源视频的高度和宽度都可以被 2 整除,这可以正常工作,但是对于具有奇数宽度和高度的视频,以下行的代码会中断:-vf scale=w=${width}:h=${height}:force_original_aspect_ratio=decrease"
其中 'width' 和 'height' 是每次迭代所需的(并且是硬编码的):例如“426x240”和“640x360”

错误:[libx264 @ 00000187da2a1580] width not divisible by 2 (639x360)Error initializing output stream 1:0 -- Error while opening encoder for output stream #1:0 - maybe incorrect parameters such as bit_rate, rate, width or height
现在,由于我正在缩放 - FFMPEG (libx264) "height not divisible by 2",所以在这个解释的方法对我不起作用

而且,我也试过这个,但似乎所有的品质都一样大 - ffmpeg : width not divisible by 2 (when keep proportions)

  • This is how I tried to use this one: scale='bitand(oh*dar,65534)':'min(${height},ih)'


请建议如何解决此问题,请注意:
1.我有一个非常大的库,我不能对每个视频都进行手动更改
2.我需要缩放视频并保持纵横比

谢谢!

PS:[编辑]我可以看到的一种方法是预先使用第二个脚本填充所有奇怪的高度/体重视频。然而,这使我的工作时间和工作量增加了一倍。我宁愿将其保留在单个脚本中。这是我看到的可用于填充的脚本:
```ffmpeg -r 24 -i -vcodec libx264 -y -an -vf "pad=ceil(iw/2)*2:ceil(ih/2)*2"``(来自: FFMPEG (libx264) "height not divisible by 2")

最佳答案

您可以在比例后插入填充或裁剪过滤器,具体取决于您是否喜欢分别增加或减少尺寸。

例如对于垫,

scale=w=...,pad='iw+mod(iw\,2)':'ih+mod(ih\,2)'"

例如对于裁剪,
scale=w=...,crop='iw-mod(iw\,2)':'ih-mod(ih\,2)'"

关于FFMPEG - 宽度/高度不能被 2 整除(缩放以生成 MBR 输出),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61229313/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com