FFmpeg常用参数和命令总结

1.ffmpeg的使用语法

    ffmpeg -i [输入文件名] [参数选项] -f [格式] [输出文件]

    ffmpeg [[options][`-i' input_file]]... {[options] output_file}...

    通用参数:

        -f:设定输出格式

        -i:设定输入流

        -ss:开始的时间

        -bf :B帧数目控制

        -g:关键帧间隔控制

        -s:分辨率控制

        -h:帮助

        -fromats:显示可用的格式

        -title string:设置标题

        -author string:设置作者

        -copyright string:设置版权

        -comment string:设置评论

    音频参数:

        -ab:设置音频码率

        -an:去掉音频

        -ar:设定采样率

        -ac:设定声音的Channel数

        -acodec:音频选项,设定声音编解码器,若未设定,使用与输入流相同的编解码器

    视频参数:

        -b:设定视频流量,默认为200kbit/s

        -r:设定帧速率,默认为25

        -s:设定画面的宽与高

        -vn:不处理视频

        -aspect:设定画面的比例

        -vcodec:视频选项,设定视频编解码器,若未设定,使用与输入流相同的编解码器

        -bt tolerance:设置视频码率容忍度kbit/s

        -maxrate bitrate:设置最大视频码率容忍度

        -minrate bitreate:设置最小视频码率容忍度

        -bufsize size:设置码率控制缓冲区大小

        -sameq:使用同样视频质量作为源(VBR)

        -croptop size:设置顶部切除带大小 像素单位

        -padtop size:设置顶部补齐的大小 像素单位

    高级视频参数:

        -g:设置图像组大小

        -intra:仅适用帧内编码

        -qscale:使用固定的视频量化标度(VBR)

        -qmin:最小视频量化标度(VBR)

        -qmax:最大视频量化标度(VBR)

        -qdiff:量化标度间最大偏差 (VBR)

        -qblur blur:视频量化标度柔化(VBR)

        -qcomp compression:视频量化标度压缩(VBR)

        -rc_init_cplx complexity:一遍编码的初始复杂度

        -b_qfactor factor:在p和b帧间的qp因子

        -i_qfactor factor:在p和i帧间的qp因子

        -b_qoffset offset:在p和b帧间的qp偏差

        -i_qoffset offset:在p和i帧间的qp偏差

        -bf frames:使用frames B 帧,支持mpeg1,mpeg2,mpeg4

        -4mv:使用4个运动矢量 仅用于mpeg4

        -part:使用数据划分 仅用于mpeg4

        -bug param:绕过没有被自动监测到编码器的问题

        -deinterlace:不采用交织方法

        -interlace:强迫交织法编码仅对mpeg2和mpeg4有效

        -psnr:计算压缩帧的psnr

        -vhook module:插入视频处理模块 module 包括了模块名和参数,用空格分开

    音视频捕获参数:

        -vd device:设置视频捕获设备。比如/dev/video0

        -vc channel:设置视频捕获通道 DV1394专用

        -tvstd standard:设置电视标准 NTSC PAL(SECAM)

        -dv1394:设置DV1394捕获

        -av device:设置音频设备 比如/dev/dsp

    高级参数:

        -map file:stream:设置输入流映射

        -debug:打印特定调试信息

        -benchmark:为基准测试加入时间

        -hex:倾倒每一个输入包

        -bitexact:仅使用位精确算法 用于编解码测试

        -ps size:设置包大小,以bits为单位

        -re:以本地帧频读数据,主要用于模拟捕获设备

        -loop:循环输入流(只工作于图像流,用于ffserver测试)

    格式:

        h.264:输出格式为h.264的视频裸流

        mp4:输出mp4格式的视频

        ......

 

2.常用命令

    对本地YUV编码(视频为avi、mp4等也可以使用):

ffmpeg -s 640x480 -i test.yuv -vcodec libx264 test.h264

    分离视频、音频流:

ffmpeg -i input_file -vcodec copy -an output_file_video  //分离视频流,后面copy表示拷贝
ffmpeg -i input_file -acodec copy -vn output_file_audio  //分离音频流,后面copy表示拷贝

    视频解复用:

ffmpeg –i test.mp4 –vcodec copy –an –f m4v test.264
ffmpeg –i test.avi –vcodec copy –an –f m4v test.264

    视频转码:

ffmpeg –i test.mp4 –vcodec h264 –s 352*278 –an –f m4v test.264                 //转码为码流原始文件
ffmpeg –i test.mp4 –vcodec h264 –bf 0 –g 25 –s 352*278 –an –f m4v test.264     //转码为码流原始文件
ffmpeg –i test.avi -vcodec mpeg4 –vtag xvid –qsame test_xvid.avi               //转码为封装文件

    视频封装:

ffmpeg –i video_file –i audio_file –vcodec copy –acodec copy output_file

    视频剪切:

ffmpeg –i test.avi –r 1 –f image2 image-%3d.jpeg                                 //提取图片
ffmpeg -ss 0:1:30 -t 0:0:20 -i input.avi -vcodec copy -acodec copy output.avi    //剪切视频

    视频录制:

ffmpeg –i rtsp://192.168.3.205:5555/test –vcodec copy out.avi

    YUV序列播放:

ffplay -f rawvideo -video_size 1920x1080 input.yuv

    YUV序列转AVI:

ffmpeg –s w*h –pix_fmt yuv420p –i input.yuv –vcodec mpeg4 output.avi

    音视频混合:

ffmpeg -i son.wav -i video_origine.avi video_finale.mpg

    视频拼接:

ffmpeg -i "concat:test1.h264|test2.h264" -vcodec copy -f h264 out12.h264  //裸码流的拼接,先拼接裸码流,再做容器的封装

    网络推送:

ffmpeg - re - i 1.ts - c copy - f mpegts   udp ://192.168.0.106:1234    //UDP视频流的推送

    音频处理:

ffmpeg -i /tmp/a.wav -ab 64 /tmp/a.mp2 -ab 128 /tmp/b.mp2 -map 0:0 -map 0:0   //转换wav到mp2格式

    视频拆成帧:

ffmpeg -i video.avi frames_%05d.jpg

    图片合成视频:

ffmpeg -i frames_%05d.jpg -vcodec mpeg4 test.avi

    图片顺序播放:

ffplay -i frames_%05d.jpg  

    将H264封装为avi:

ffmpeg -i input.h264 -s 640x480 output.avi

    解封装:

ffmpeg -i test.avi -f h264 -vcodec libx264 -s 640x480 -r 25 test.264

    推流:

ffmpeg -re -i test.h264 -vcodec copy -f h264 rtp/udp://233.233.233.223:6666

    接收播放:

ffplay -f h264 rtp/udp://233.233.233.223:6666 

 

参考博客:

http://blog.csdn.net/leixiaohua1020/article/details/12751349

 

你可能感兴趣的:(FFmpeg)