FFmpeg最常用的参数和命令大汇总

FFMPEG堪称自由软件中最完备的一套多媒体支持库,它几乎实现了所有当下常见的数据封装格式、多媒体传输协议以及音视频编解码器,提供了录制、转换以及流化音视频的完整解决方案。

ffmpeg命令行参数解释

ffmpeg -i [输入文件名] [参数选项] -f [格式] [输出文件]
ffmpeg [[ options ][ -i input_file ]]... {[ options ] output_file}...

    参数选项:

  •     (1) -an: 去掉音频 -vn:去掉视频 -t:持续时长 -ss:起始时间 -r:帧率(默认为25) -s:帧大小(W*H) -aspect:横纵比(4:3,16:9等)
  •     (2) -acodec: 音频选项, 一般后面加copy表示拷贝
  •     (3) -vcodec:视频选项,一般后面加copy表示拷贝
  •     格式选项:
  •     (1) h264: 表示输出的是h264的视频裸流
  •     (2) mp4: 表示输出的是mp4的视频
  •     (3) mpegts: 表示ts视频流

ffmpeg命令格式转换

视频格式转换:

ffmpeg -i test.h264 -vcodec copy -f mpegts test.ts              # 将h264格式转为ts格式

ffmpeg -i test.h264 -vcodec copy -f mp4 test.mp4              # 将h264格式转为MP4格式

视频拼接: 

ffmpeg -i "concat:test1.h264|test2.h264" -vcodec copy -f h264 out12.h264

# 将test1.h264和test2.h264视频拼接起来,输出out12.h264视频

视频截图:

ffmpeg -i test.mp4  -t 0.001 -s 352x240 1.jpg    # 在test.mp4中截图

ffmpeg -i test.mp4 -vframes 30 -y -f gif 1.gif       # 将test.py前30帧做成gif动图

ffmpeg -i test.mp4 -t 10 -r 1 pic-%03d.jpg           # 从视频前10s中取图像,1s提取一帧

常用应用例子

#强制显示宽高
ffplay -i -volume 1 -x 800 -y 480 test_1920x1080.mp4


-framerate 25 :指定帧率
-fs :全屏播放

-an :禁用音频
-vn :禁用视频
-sn :禁用字幕
-ss pos :根据设置的秒进行定位
#在5分 55秒的位置进行播放
ffplay -i -volume 1 -x 800 -y 480 -fs test_1280x720.mp4 -ss 00:05:55

-acodec :指定音频解码器  -acodec libfdk_aac
-vcodec :指定视频解码器  -vcodec h264

-window_title lpf  :指定播放器播放视频的名称
-t 指定播放的时长
-loop number :循环播放的次数
-nostats :不输出视频相关信息,通过这个可以查看ffplay 如何收集的这些信息,自己写播放器可以借鉴
-ast :执行音频流索引
-vst :执行视频流索引,这个只有在视频包含多个流才会生效
#下面这个是执行视频流索引是4  音频索引是3
ffplay -i  -x 800 -y 480  mult.ts -vst 4 -ast 3

-autoexit :播放完毕自动退出
#指定播放时间是5秒  播放完毕自动退出
ffplay -i  -x 800 -y 480  mult.ts -t 5 -autoexit

#通过-codec:v h264 指定使用特定的解码器进行解码播放 
ffplay -i test_1280x720.mp4 -x 800 -y 480  -t 5 -autoexit -codec:v h264

#通过-codec:a 指定使用libfdk_aac 来解码音频数据
ffplay -i test_1280x720.mp4 -x 800 -y 480  -t 5 -autoexit -codec:a libfdk_aac

播放rtmp流媒体:

#播放rtmp 流媒体
ffplay -window_title "cctv1" -x 640 -y 480 rtmp://media3.scctv.net/live/scctv_800

#播放yuv 裸视频  必须指定宽高以及视频格式  帧率指定不指定都行
ffplay -pixel_format yuv420p -video_size 320x240 -framerate 5 yuv420p_320x240.yuv

#播放rgb
ffplay -pixel_format rgb24 -video_size 320x240 -i rgb24_320x240.rgb

#播放pcm  -ar 执行采样率  -ac指定通道数  -f 指定位深
ffplay -ar 48000 -ac 2 -f f32le 48000_2_f32le.pcm

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格式的视频

        ......

  我的热门文章推荐

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值