1、avi转nv12
ffmpeg -i source.avi -f rawvideo -pix_fmt nv12 output.nv12
ffmpeg -i source.avi -f rawvideo -pix_fmt yuv420p output.420p
注意:
YUV420 Semi-Planar
这个格式的数据量跟YUV420 Planar的一样,但是U、V是交叉存放的,如下图。
其在ffmpeg 中定义 为:
PIX_FMT_NV12, ///< planar YUV 4:2:0, 12bpp, 1 plane for Y and 1 plane for the UV components, which are interleaved (first byte U and the following byte V)
2、MP4转H264
ffmpeg –i test.mp4 –vcodec h264 -bsf: h264_mp4toannexb –s 352*278 –an –f m4v test.264
-s 设置输出视频的分辨率
-f fmt 强迫采用格式fmt
3、ffmpeg裁剪mp4视频尺寸,然后保存为avi格式
ffmpeg –i test.mp4 -r 25 -b 3M –s 704*576 -aspect=1.222 crop= 704:576:0:12 test.avi
-r: 设置帧率;
-b:设置码率
crop=(width, height,x,y): 裁剪窗口的宽高及起始坐标
-aspect:设置宽高比
4、多线程+缩放
ffmpeg.exe -threads 2 -i ch05_20180701133703.mp4 -c:v libx264 -aspect 11:9 -s 352x288-vf crop=704:576:12:251 -r 25 -g 25 -bf 0 -b 3.2M -y tst.avi
-c:v 指定视频编码格式,功能同 -vcode ;
-g: 指定I帧间隔;
-bf: 指定B帧数量。为0表示不输出B帧;
-threads: 指定进行编解码的线程数量
5、列出ffmpeg支持的编码格式
ffmpeg -codecs
6、yuv文件缩放及格式转换
ffmpeg -pix_fmt yuv420p -s 1920x1080 -i out_0.yuv -vf scale=1280:720 -c:v rawvideo -pix_fmt yuv420p -y out_720.yuv