使用FFmpeg快速将序列帧合成视频
ARonisc
2023年09月22日 12:54

对于经常使用Blender的创作者来说,一般都采用导出序列帧的方式,然后去PR进行合并输出

如果懒得走PR输出,可以使用ffmpeg这个工具快速将序列帧合成视频

ffmpeg是个强大的视频音频处理工具,这次教大家怎么使用ffmpeg将序列帧合成视频

首先去下载ffmpeg

https://github.com/BtbN/FFmpeg-Builds/releases/

Windows64位系统下载win64-gpl-shared.zip版本

下载后解压压缩包,改文件夹名为ffmpeg,然后随意放在一个比较简单的目录里

然后进入控制面板,点击高级系统设置,点击环境变量

在系统变量中双击Path,然后在编辑环境变量窗口中添加你解压的ffmpeg路径,注意要带后面的\bin\,点击确定后,重启电脑!不重启不生效!

然后简单用Blender做一个300帧30FPS的序列帧动画,放在桌面的Out文件夹里

然后打开你的序列帧文件夹,对着文件夹空白处按住shift加右键,呼出带PowerShell菜单,点击“在此处打开PowerShell窗口”

先输入ffmpeg后回车看看有没有安装成功,像下面这样就是安装成功

随后输入该条指令

ffmpeg -r 30 -f image2 -i %04d.png -crf 15 output.mp4

随后按回车键,就开始处理视频了,最后会在目录底下生成Output.mp4文件

300帧1080P的序列帧大约278MB大小,使用FFmpeg合成成视频后体积是2MB

非常节省空间,推荐大家使用

接下来讲一下命令行的概念

ffmpeg -r 30 -f image2 -i %04d.png -crf 15 output.mp4

ffmpeg代表从环境变量中调用你的ffmpeg程序

-r 30代表定义该序列帧的帧率,而且需要放在-i参数之前

-f image2不需要管

-i %04d.png该命令代表如何读取序列帧的文件名

假如你的序列帧命名是frame1.png frame2.png ... frame300.png,那格式为frame%d.png

假如你序列帧命名是1.png 2.png 3.png ... 300.png,那格式为%d.png

假如你序列帧命名是001.png 002.png 003.png ... 300.png,那格式为%03d.png

由于我输出的序列帧是从0001.png开始的,因此是%04d.png

这条一定不能错,否则读取失败

-crf 15代表视频质量为15,推荐数值为18-25,数字越小越清晰,个人习惯用15,并且-crf必须在-i之后

output.mp4代表最终输出视频的名称

合成的视频没有音频,可以用小丸工具箱把音频封装在一起

大概就讲这么多,应该够大家使用了

详细的ffmpeg功能自行研究学习

教程参考:

https://zhuanlan.zhihu.com/p/435975022

https://blog.csdn.net/weixin_37939906/article/details/107281060