yuv 视频原始数据
pcm 音频原始数据
1、基本信息查询命令
-version 显示版本
-demuxers 显示可用的demuxers
-muxers 显示可用的muxers
-devices 显示可用的设备
-codecs 显示所有编解码器
-decoders 显示可用的解码器
-encoders 显示所有的编码器
-bsfs 显示比特流filter
-formats 显示可用的格式
-protocols 显示可用的协议
-filters 显示可用的所有过滤器
-pix_fmts 显示可用的像素格式
-samle_fmts 显示可用的采样格式
-layouts 显示channel名称
-colors 显示识别的颜色名称
2、录制命令
2.1、ffmpeg -f avfoundation -i1-r30 out.yuv //录屏命令
-f : 指定使用(mac下的)avfoundation 采集数据
-i :指定从哪儿采集数据,他是一个文件索引号 这里是录屏,所以 -i是指屏幕 1是一个索引值,这里是屏幕的索引值,0是摄像头,1是屏幕
-r :指定帧率
out.yuv 将采集的数据收集成yuv数据(一种数据格式)
ffmpeg -f avfoundation -list_devices true -i "" 列出avfoundation所支持的设备
2.2、ffmpeg -f avfoundation -i :0 out.wav 录制声音
:0 代表音频设备
3、分解/复用命令
ffmpeg -i out.mp4 -vcodec copy -acodec copy out.flv mp4格式转flv格式
-i 输入的文件
-vcodec copy:视频编码处理方式
-acodec copy:音频编码处理方式
ffmpeg -i input.mp4 -an -vcodec copy out.h264 抽取视频
ffmpeg -i input.mp4 -acodec copy -vn out.aac 抽取音频
4、处理原始数据命令
4.1、ffmpeg -i input.mp4 -an -c:v rawvideo -pix_fmts yuv420p out.yuv 提取yuv数据
-an : 输出的数据不包括音频
-c:v 对视频进行编码 用rawvideo 格式进行编码(也就是原始视频)
-pix_fmt 使用像素格式
4.2、ffmpeg -i out.mp4 -vn -ar 44100 -ac2 -f s16le out.pcm 提取pcm(音频)数据
-vn : 不要视频
r: 采样率 44.1k
c: 声道 channel 2c 2声道
-f :指定数据存储格式
5、裁剪与合并命令
5.1、ffmpeg -i input.mp4 -ss 00:00:00 -t 10 out.ts
-ss:视频从什么时间点开始裁剪
-t:裁剪多长时间 10 是10秒
5.2、ffmpeg -f concat -i input.txt out.flv
-f concat 即将对后边的文件进行拼接
input.txt 是个文本,是视频的文件列表
input.txt 的内容是
file '文件名.文件后缀' 每行都是以file开头 文件用引号包裹,不含标点符号
6、图片/视频互转命令
6.1、ffmpeg -i input.flv -r 1 -f image2 image-%3d.jpeg 视频转图片 %3d 是个变量,即从001 开始的递增数字
-r: 指定转换图片的帧率是多少, 1代表每秒钟转换一张图片
-f:将多媒体转成什么格式,这是 image格式
6.2、ffmpeg -i image-%3d.jpeg out.mp4 将符合image-%3d.jpeg 的图片转成视频
7、直播相关命令
ffmpeg -rd -i out.mp4 -c copy -f flv rtmp://server/live/streamName 直播推流
ffmpeg -i rtmp://server/live/streamName -c copy dump.flv 直播拉流
8、各种滤镜命令
ffmpeg -i input.mov -vf crop=in_w-200:in_h-200 -c:v libx264 -c:a copy out.mp4
-re 减慢速度
-vf: 视频滤镜 crop
in_w-200:视频本身宽度-200
in_h-200:视频本身高度减200
-c:v 使用的视频编码器是 libx264
-c:a 音频编码器 copy 直接拷贝,不进行处理