ffmpeg输出文件大小随电影长度的线性增长快于线性增长
我正在使用ffmpeg将一些.bmp图像串成一部电影。总共有1001帧,长度为0:40。我使用的命令是ffmpeg输出文件大小随电影长度的线性增长快于线性增长,ffmpeg,Ffmpeg,我正在使用ffmpeg将一些.bmp图像串成一部电影。总共有1001帧,长度为0:40。我使用的命令是 ffmpeg -f image2 -i render.%05d.bmp -c:v libx264 -s 512:268 render.mp4 输出文件大33.2MB,大约是相同长度的全高清视频大小的两倍(大约是像素的16倍!)。除了文件大小不合理地大之外,我意识到它随着帧数的增加比线性增长快(不能确切地说它是二次的、指数的等等)。在100帧之后,它的大小约为1536KB(这已经太大了),在5
ffmpeg -f image2 -i render.%05d.bmp -c:v libx264 -s 512:268 render.mp4
输出文件大33.2MB,大约是相同长度的全高清视频大小的两倍(大约是像素的16倍!)。除了文件大小不合理地大之外,我意识到它随着帧数的增加比线性增长快(不能确切地说它是二次的、指数的等等)。在100帧之后,它的大小约为1536KB(这已经太大了),在500帧之后,它的大小已经达到15104KB,而在1001帧之后,它最终达到34085KB
我有根据的猜测是,对于每一帧,它都会再次存储关于所有前一帧的一些信息,这是毫无意义的
我做错了什么?在向我推荐libx265之前:它会将整个视频变为绿色。使用:
ffmpeg -i render.%05d.bmp -c:v libx264 -vf "scale=512:-2,format=yuv420p" -movflags +faststart output.mp4
- 如果输出文件太大,请添加中所述的
和-crf
选项-preset
- 如果输出仍然太大,则将
更改为-c:v libx264
,但编码速度会较慢。由于像素格式的原因,尝试x265时输出为绿色:如我的示例所示,使用-c:v libx265
将解决此问题。看format=yuv420p
- 如果您的目标是特定的输出文件大小,则使用两次通过
(请参见上面的任一链接)-b:v
-crf
值,或者如果需要输出小于某个大小,则执行两次编码。