动画制作公司经常会用到maya拍屏这个功能直接输出quickTime视频审核动画制作内容,也经常会遇到一些莫名其妙的拍屏失败的问题,这里不聊原因,聊一下其它的解决方案--用ffmpeg解决maya拍屏崩溃或者爆红问题。

大致思路就是先用maya拍出png序列图,再把序列图转为.mov格式视频。

FFmpeg的名称来自MPEG视频编码标准,前面的“FF”代表“Fast Forward”,FFmpeg是一套可以用来记录、转换数字音频、视频,并能将其转化为流的开源计算机程序。可以轻易地实现多种视频格式之间的相互转换。FFmpeg的用户有Google,Facebook,Youtube,优酷,爱奇艺,土豆等。

FFmpeg官网: http://www.ffmpeg.org

FFmpeg doc : http://www.ffmpeg.org/documentation.html

FFmpeg wiki : https://trac.ffmpeg.org/wiki

FFmpeg基础: http://wenku.baidu.com/view/296eefcaf90f76c661371af1.html

下面是一个序列图转mov(h.264)示例:
需要下载ffmpeg.exe这个文件,然后放到这里E:\work\ffmpeg.exe,打开windows命令行窗口,输入下面的表达式

E:\work\ffmpeg.exe -start_number 0001 -y -i "E:/work/pic/test_.%04d.png" -r 25 -s 802x358 -an -vcodec h264 -q:v 1 -b:v 500m -crf 23 -pix_fmt yuv420p E:\work\test.mov
参数解释:

-r 代表帧率
-y 覆盖已有文件

-i 输入文件(此填上图片序列所在地址)。由于图片以0001.png,0002.png等规律命名,所以%04d.png可以批量处理图片。

-vcodec 编码形式(此处为264)

-pix_fmt 像素格式(此处为yuv420p)

-ss:提取图片的起始时间

最后加入输出文件名E:\work\test.mov

设置码率 –b 参数
音频:-b:a 视频: - b:v
设置视频码率为1500kbps
ffmpeg -i input.avi -b:v 1500k output.mp4

控制输出文件大小
-fs (file size首字母缩写)

特殊参数-an,-vn,-sn分别排除所有的音频,视频,字幕流。

ffmpeg -i input.mp4 -r 1 -q:v 2 -f image2 pic-%03d.jpeg
-q:v表示存储jpeg的图像质量,一般2是高质量。

编码效率和视频质量的取舍(preset, crf)
这2个参数可以控制编码效率。
一个是preset,一个是crf。
编码加快,意味着信息丢失越严重,输出图像质量越差。

CRF(Constant Rate Factor): 范围 0-51: 0是编码毫无丢失信息, 23 is 默认, 51 是最差的情况。相对合理的区间是18-28.
值越大,压缩效率越高,但也意味着信息丢失越严重,输出图像质量越差。

用-s参数设置视频分辨率,参数值wxh,w宽度单位是像素,h高度单位是像素
ffmpeg -i input_file -s 320x240 output_file

参考
https://www.cnblogs.com/zxqstrong/p/4555517.html
https://www.cnblogs.com/frost-yen/p/5848781.html
https://blog.csdn.net/maopig/article/details/6610257