我正试图使用FFMPEG使用.mp4编解码器从一组帧中编码一段libx264视频。
这是我正在运行的命令:
/usr/local/bin/ffmpeg -r 24 -i frame_%05d.jpg -vcodec libx264 -y -an video.mp4有时我会遇到以下错误:
[libx264 @ 0xa3b85a0] height not divisible by 2 (520x369)在搜索了一点之后,这个问题似乎与缩放算法有关,可以通过添加一个-vf参数来解决。
但是,在我的例子中,我不想做任何缩放。理想情况下,我希望保持尺寸与框架完全相同。有什么建议吗?是否存在h264强制执行的某种纵横比?
发布于 2013-12-30 21:56:05
对原始问题的答案不应该缩放视频,而应该修复height not divisible by 2错误。这可以使用此过滤器实现:
-vf "pad=ceil(iw/2)*2:ceil(ih/2)*2"全员指挥:
ffmpeg -i frame_%05d.jpg -vcodec libx264 \
-vf "pad=ceil(iw/2)*2:ceil(ih/2)*2" -r 24 \
-y -an video.mp4 基本上,.h264需要均匀的维度,所以这个过滤器将:
可以通过添加筛选器参数:color=white来更改填充的颜色。见pad文档。
发布于 2015-04-11 19:48:21
为宽度和高度
使宽度和高度可被2除以裁剪过滤器:
ffmpeg -i input.mp4 -vf "crop=trunc(iw/2)*2:trunc(ih/2)*2" output.mp4如果您想规模而不是裁剪,请将crop更改为scale。
用于宽度或高度
使用规模过滤器。这将使宽度1280。高度将自动计算以保持高宽比,和的宽度可被2整除:
ffmpeg -i input.mp4 -vf scale=1280:-2 output.mp4与上述相似,但使高度720并自动计算宽度:
ffmpeg -i input.mp4 -vf scale=-2:720 output.mp4不能将-2用于宽度和高度,但是如果您已经指定了一维,那么使用-2是一个简单的解决方案。
发布于 2014-06-17 09:49:49
如果您希望设置一些输出宽度,并具有与原始输出相同比例的输出
scale=720:-1 不要陷入这个问题,那么你可以使用
scale="720:trunc(ow/a/2)*2"(仅供研究如何使用缩放的人使用)
https://stackoverflow.com/questions/20847674
复制相似问题