ffmpeg 学习

71 阅读2分钟

一、命令分类

1.基本信息查询命令

命令注释
-version显示版本
-demuxers显示可用的demuxers
-muxers显示可用的muxers
-devices显示可用的设备
-codecs显示所有编解码器
-decoders显示可用的解码器
-encoders显示所有的编码器
-bsfs显示比特流filter
-formats显示可用的格式
-protocols显示可用的协议
-filters显示可用的过滤器
-pix_fmts显示可用的像素格式
-sample_fmts显示可用的采样格式
-layouts显示channel名称
-colors显示识别的颜色名

2.录制命令

(1)录视频

ffmpeg -f avfoundation -i 1 -r 30 out.yuv

参数说明:

  • -f:指定使用 avfoundation 采集数据

  • -i:指定从哪儿采集数据,它是一个文件索引号

    (查看文件索引号命令 —— ffmpeg -f avfoundation -list_devices true -i ""

  • -r:指定帧率

播放命令 ffplay -video_size 2880x1800 -pixel_format uyvy422 out.yuv

参数说明:

  • -video_size :视频宽高
  • -pixel_format:像素格式

(2)录音

ffmpeg -f avfoundation -i :0 out.wav

参数说明:

  • :0 :代表音频设备

播放命令:ffplay out.wav

3.分解/复用命令

(1)格式转换

ffmpeg -i test.mp4 -vcodec copy -acodec copy test.flv

参数说明:

  • -i:输入文件
  • -vcodec copy:视频编码处理方式
  • -acodec copy :音频编码处理方式

(2)抽取视频

ffmpeg -i test.mp4 -an -vcodec copy test.h264

参数说明:

  • -an:不要音频

(3)抽取音频

ffmpeg -i test.mp4 -vn -acodec copy test.aac

参数说明:

  • -vn:不要视频

4.处理原始数据命令

(1)提取YUV数据

ffmpeg -i input.mp4 -an -c:v rawvideo -pixel_format yuv420p out.yuv

参数说明:

  • -c:v rawvideo:指定将视频转成原始数据

(2)提取PCM数据

ffmpeg -i test.mp4 -vn -ar 44100 -ac 2 -f s16le out.pcm

参数说明:

  • -ar:设置音频采样频率
  • -ac:设置音频通道的数量
  • -f:指定数据存储格式

播放命令:ffplay -ar 44100 -ac 2 -f s16le out.pcm

5.滤镜命令

ffmpeg -i test.mp4 -vf crop=in_w-200:in_h-200 -c:v libx264 -c:a copy out.mp4

参数说明:

  • -vf crop:视频裁剪滤镜
  • -c:v :视频编码器
  • -c:a :音频编码器

6.裁剪与合并命令

(1)裁剪

ffmpeg -i test.mp4 -ss 00:00:00 -t 1 out.ts

参数说明:

  • -ss:裁剪的起始时间
  • -t:裁剪时长

(2)合并

ffmpeg -f concat -i input.txt out.mp4

input.txt 中的文件格式(最好是.ts文件):

file 't1.ts'

file 't2.ts'

参数说明:

  • -f concat :合并

7.图片/视频互转命令

(1)视频转图片

ffmpeg -i test.mp4 -r 1 -f image2 image-%3d.jpeg

参数说明:

  • -r:帧率,每秒钟转换多少张
  • -f:指定输出格式

(2)图片转视频

ffmpeg -i image-%3d.jpeg out.mp4

8.直播相关命令

(1)拉流保存

ffmpeg -i rtmp://ns8.indexforce.com/home/mystream -c copy out.mp4

(2)推流

ffmpeg -re -i out.mp4 -c copy -f flv rtmp://server/live/streamName

参数说明:

  • -re:与真正的帧率保持一致