FFmpeg

FFmpeg命令分类

处理音视频流程

输入文件—demuxer—>编码数据包—decoder—>
解码后数据帧—encoder—>编码数据包—muxer—>输出文件

1、基本信息查询命令
-version 显示版本<br/><br/>

-demuxers 显示可用的demuxers <br/>
-muxers 显示可用的muxers <br/><br/>

-devices 显示可用的设备<br/>
-codecs 显示所有的编解码器<br/>
-decoders 显示可用的解码器<br/>
-encoders 显示所有的编码器<br/><br/>

-bsfs 显示比特流filter <br/>
-formats 显示可用的格式<br/>
-protocols 显示可用的协议<br/>
-filters 显示可用的过滤器<br/>
-pix_fmts 显示可用的像素格式<br/>
-sample_fmts 显示可用的采样格式<br/>
-layouts 显示channel名称<br/>
-colors 显示识别的颜色名称<br/>
2、录制命令
ffmpeg -f avfoundation -i 1 -r 30 out.yuv <br/><br/>

-f:指定使用avfoundation采集数据<br/>
-i:指定从哪儿采集数据,它是一个文件索引号<br/>
-r:指定帧率<br/><br/>

ffmpeg -f avfoundation -i :0 out.wav <br/>
:0 代表音频设备
3、分解/复用命令
ffmpeg -i out.mp4 -vcodec copy -acodec copy out.flv<br/><br/>

-i:输入文件<br/>
-vcodec copy:视频编码处理方式<br/>
-acodec copy:音频编码处理方式<br/>
4、处理原始数据命令
提取YUV数据<br/>
ffmpeg -i input.mp4 -an -c:v rawvideo -pix_fmt yuv420p out.yuv<br/><br/>
提取PCM数据<br/>
ffmpeg -i out.mp4 -vn -ar 44100 -ac 2 -f s16le out.pcm
5、裁剪与合并命令
裁剪<br/>
ffmpeg -i in.mp4 -ss 00:00:00 -t 10 out.ts<br/>
合并<br/>
ffmpeg -f concat -i inputs.txt out.flv<br/>
inputs-txt内容为"file filename"

6、图片/视频互转命令

视频转图片<br/>
ffmpeg -i in.flv -r 1 -f image2 image-%3d.jpeg<br/>
图片转视频<br/>
ffmpeg -i image-%3d.jpeg out.mp4
7、直播相关命令
推流<br/>
ffmpeg -re -i out.mp4 -c copy -f flv rtmp://server/live/streamName<br/>
拉流<br/>
ffmpeg -i rtmp://server/live/streamName -c copy dump.flv
8、滤镜命令
Decoded Frames ---filter---> Filtered Frames ---encode---> Encoded Data<br/>

ffmpeg -i in.mov -vf crop=in_w-200:in_h-200 -c:v libx264 -c:a copy out.mp4
分享