ffmpeg命令分类
1.基本信息查询命令
-version 显示版本
-formats 显示可用的格式
-demuxers 显示可用的demuxers
-protocols 显示可用协议
-muxers 显示可用的muxers
-devices 显示可用设备
-codecs 显示所有的编解码器
-decoders 显示可用的解码器
-encoders 显示所有的编码器
-bsfs 显示比特流filters
-filters 显示可用的过滤器
-pix_fmts 显示可用的像素格式
-sample_fmts 显示可用的采样格式
-layouts 显示channel名称
-colors 显示识别的颜色名称
2.录制命令
录制视频:ffmpeg -f avfoundation -i 1 -r 30 out.yuv mac下是avfoundation
录制音频: ffmpeg -f avfoundation -i :0 out.wav
-f: 指定使用avfoundation 采集数据
-i:指定从哪里采集数据,他是一个文件索引引导
-r:指定帧率
3.分解和复用命令
ffmpeg -i out.mp4 -vcodec copy -acodec copy out.flv
i 输入
4.处理原始数据
对于音频pcm数据,对于视频yuv数据
通过ffmpeg提取yuv数据
ffmpeg -i xxx.mp4 -an -c:v rawvideo
-pix_fmt yuv420p out.yuv
-an audio no 输出结果里不包括音频
-c:v 对视频进行编码
-pix_fmt 像素格式
通过ffmpeg提取pcm数据
ffmpeg -i xxx.mp4 -vn -ar 44100 -ac2 -f s16le out.pcm
-ar audio rate 采样率
-ac2 audio channel 2 双声道
-f 数据存储格式 s有符号的16位
5.裁剪和合并命令
裁剪
ffmpeg -i in.mp4 -ss 00:00:00 -t 10 out.ts
-i 指定多媒体文件
-ss 视频从什么时间点开始裁剪 时分秒
-t 裁剪多长时间 秒为单位
合并
ffmpeg -f concat -i inputs.txt out.flv
-f concat 合并的参数
-i 后面跟需要拼接的文件名
6.图片/视频互转命令
视频转图片
ffmpeg -i in.flv -r 1 -f image2 image-%3d.jpeg
-r 转换图片帧率 每秒钟转出一张图片
-f 转成什么格式
图片转视频
ffmpeg -i image-%3d.jpeg out.mp4
7.直播相关命令
直播推流
ffmpeg -re -i out.mp4 -c copy -f flv rtmp://server/live/streamName
-re 减慢帧率速度
-i 输入文件
-f 推出去格式
直播拉流
ffmpeg -i rtmp://server/live/streamName -c copy dump.flv
8.各种滤镜命令
视频加水印去水印,画中画,视频裁剪,音频倍速等功能都是使用滤镜
视频裁剪:
ffmpeg -i in.move -vf crop=in_w-200:in_h-200
-c:v libx264 -c:a copy out.mp4
-vf video filter 视频滤镜
crop= 参数