ffmpeg/ffplay/ffprobe的区别:
ffmpeg:超快音视频编码器(类似于爱剪辑)
ffplay:简单流媒体播放器
ffprobe:简单多媒体流分析器
查看ffmpeg帮助文档:
基本信息:ffmpeg -h
高级信息:ffmpeg -h long
所有信息:ffmpeg -h full
ffmpeg音视频处理流程:

ffmpeg音视频处理流程
ffmepg命令分类查询:
| 命令参数 | 内容 |
|---|---|
| -version | 显示版本 |
| -buildconf | 显示编译配置 |
| -formats | 显示可用格式(muxers+demuxers) |
| -demuxers | 显示可用解复用器 |
| -muxers | 显示可用复用器 |
| -codecs | 显示可用编解码器 |
| -decoders | 显示可用解码器 |
| -encoders | 显示可用编码器 |
| -bsfs | 显示可用比特流filter |
| -protocols | 显示可用的协议 |
| -filters | 显示可用的过滤器 |
| -pix_fmts | 显示可用的像素格式 |
| -layouts | 显示标准声道名称 |
| -sample_fmts | 显示可用的音频采样格式 |
| -color | 显示可用的颜色名称 |
查看具体分类所支持的参数:
ffmpeg -h type=name
如:ffmpeg -h muxer=flv
ffmpeg -h filter=atempo (atempo调整音频播放速率)
ffplay播放控制
| 选项 | 说明 |
|---|---|
| q,ESC | 退出播放 |
| f | 全屏切换 |
| p,SPC | 暂停 |
| m | 静音播放 |
| 9,0 | 9减少音量,0增加音量 |
| a | 循环切换音频流 |
| v | 循环切换视频流 |
| t | 循环切换字幕流 |
| c | 循环切换节目 |
| w | 循环切换过滤器或显示模式 |
| s | 竹镇播放 |
| left/right | 向后/向前拖动10秒 |
| down/up | 向后/向前拖动1分钟 |
| 鼠标右键单击 | 拖动与显示宽度对应百分比的文件进行播放 |
| 鼠标左键双击 | 全屏切换 |
ffpaly命令主要选项:
| 主要选项 | 说明 |
|---|---|
| -x | 强制显示宽带 |
| -y height | 强制显示高度 |
| -video_size | 帧尺寸设置显示帧存储(WxH格式),仅适用于类似原始YUV等没有包含帧大小(WxH)的视频。 |
| -pixel_format | 格式设置像素格式 |
| -fs | 以全屏模式启动 |
| -an | 禁止音频(不播放声音) |
| -vn | 禁止视频(不播放视频) |
| -sn | 禁用字幕(不显示字幕) |
| -ss pos | 根据设置的秒进行定位拖动 |
| -t duration | 设置播放视频/音频长度 |
| -bytes | 按字节进行定位拖动(0=off 1=on -1=auto) |
| -seek_interval | 自定义左/右键定位拖动间隔(以秒为单位),默认10s |
| -nodisp | 关闭图形化显示窗口,视频将不显示 |
| -noborder | 无边框窗口 |
| -volume | 设置起始音量,range[0,100] |
| -f | 强制使用设置的格式进行解析,比如-f s16le |
| -window_title | 设置窗口标题(默认为输入文件名) |
| -loop | 设置播放循环次数 |
| -showmode | 设置显示模式,0显示视频,1显示音频波形,2显示音频频谱,缺省值为0,如果视频不存在则自动选择2 |
| -vf | 设置视频滤镜 |
| -af | 设置音频滤镜 |
ffplay命令高级选项:
| 选项 | 说明 |
|---|---|
| -stats | 打印多个回放统计信息。包括显示流持续时间,编解码器参数,流中的当前位置,以及音频/视频同步差值。缺省值是自动开启,显示禁用指定-stats |
| -fast | 非标准化规范的多媒体兼容优化 |
| -genpts | 生产pts |
| -sync | 同步类型,将主时钟设置为audio,video或external,默认是audio |
| -ast | audio_stream_specifier 指定音频流索引,比如-ast 3,播放流索引为3的音频流 |
| -vst | video_stream_specifier 指定视频流索引 |
| -sst | subtitle_stream_specifier 指定字幕流索引 |
| -autoexit | 视频播放完毕后退出 |
| -exitonkeydown | 键盘按下任何键退出播放 |
| -exitonmousedown | 鼠标按下任何键退出播放 |
| -codec:media_specifier | 强制使用设置的多媒体解码器,a(音频),v(视频)和s(字幕),如 -codec:v h264_qsv |
| -acodec | 强制使用设置的音频解码器进行音频解码 |
| -vcodec | 强制使用设置的视频解码器进行视频解码 |
| -scodec | 强制使用设置的字幕解码器进行字幕解码 |
| -autorotate | 根据文件元数据自动旋转视频。值为0或1,默认为1 |
| -framedrop | 如果视频不同步则丢弃视频帧,当主时钟非视频时钟时默认开启,若需禁用使用选项-noframedrop |
| -inbuf | 不限制输入缓冲区大小,尽可能地从输入中读取尽可能多的数据。 |
ffplay过滤器例子:
| 例子 | 命令 |
|---|---|
| 视频旋转 | ffplay -i test.mp4 -vf transpose=1 |
| 视频反转 | ffplay test.mp4 -vf hflip,ffplay test.mp4 -vf vflip |
| 视频旋转和反转 | ffplay test.mp4 -vf hflip,transpose=1 |
| 音频变速播放 | ffplay -i test.mp4 -af atempo=2 |
| 视频变速播放 | ffplay -i test.pm4 -vf setpts=PTS/2 |
| 音视频同时变速播放 | ffplay -i test.mp4 -vf setpts=PTS/2 -af atempo=2 |