一:FFmpeg处理音视频的流程
二:FFmpeg处理音视频的命令。
1、基本信息查询。
-version 显示版本
-demuxers 显示可用的demuxers
-muxers 显示可用的muxers
-devices 显示可用的设备
-decoders 显示可用的解码器
-encoders 显示可用的编码器
-formats 显示可用的格式
-protocols 显示可用的协议
-filters 显示可用的过滤器
-pix_fmts 显示可用的像素格式
-sample_fmts 显示可用的采样格式
-layouts 显示channel名称
-colors 显示识别的颜色名称
示例:ffmpeg -version
2、录制命令
ffmpeg -f avfoundation -i 1 -r 30 out.yuv
-f:指定使用 avfoundation 采集数据
-i:指定从哪采集数据,他是一个文件索引号
-r:指定帧率
2.2、播放yuv格式数据:
ffplay -s 3360x2100 -pix_fmt uyvy422 out.yuv
2.3、查看可用设备
ffmpeg -f avfoundation -list_devices true -i ""
2.4、录制音频
ffmpeg -f avfoundation -i :0 out.wav
:0 代表音频设备
3、分解与复用
3.1、多媒体格式转换
ffmpeg -i out.mp4 -vcodec copy -acodec copy out.flv
-i:输入文件
-vcodec :视频编码处理方式
-acodec:音频编码处理方式
copy:指明只拷贝,不做编解码
3.2、提取音频
ffmpeg -i out.mp4 -acodec copy -vn out.aac
vn:v 代表视频,n 代表 no 也就是舞视频的意思。
3.3、提取视频
ffmpeg -i out.mp4 -acodec copy -an out.h264
an: a 代表视频,n 代表 no 也就是无音频的意思。
3.4、视频和音频合成
ffmpeg -i out.h264 -i out.aac -vcodec copy -acodec copy muxer.mp4
4、提取原始数据
4.1、提取YUV数据
ffmpeg -i input.mp4 -an -c:v rawvideo -pixel_format yuv420p out.yuv
-c:v rawvideo 指定将视频转成原始数据
-pixel_format yuv420p 指定转换格式为yuv420p
ffplay -s wxh out.yuv
4.2、YUV转H264
ffmpeg -f rawvideo -pix_fmt yuv420p -s 320x240 -r 30 -i out.yuv -c:v libx264 -f rawvideo out.h264
4.3、提取PCM数据
ffmpeg -i out.mp4 -vn -ar 44100 -ac 2 -f s16le out.pcm
ffplay -ar 44100 -ac 2 -f s16le -i out.pcm
4.4、PCM转WAV
ffmpeg -f s16be -ar 8000 -ac 2 -acodec pcm_s16be -i input.raw output.wav
5、滤镜命令
ffmpeg可以使用libavfilter库中的过滤器处理原始音频和视频帧。 几个链式过滤器形成一个过滤器图形。 ffmpeg区分两种类型的过滤器图形:简单和复杂。