ffmpeg使用

ffmpeg

ffmpeg 全称 fast forward mpeg
是一套用来处理音频视频的开源工具库
,它提供了录制,转换,流媒体,以及后期处理的完整解决方案,具有非常高的质量和可移植性

ffplay播放音视频


ffplay xxx.m4a

q退出播放
f全屏
space暂停
w切换显示模式
f切换显示模式
上下左右键可以前进后退

ffprobe查看媒体文件信息


ffprobe xxx.m4a

格式转换

常见的文件格式

#主流视频文件格式:mp4,mov

# 将mov格式转换为mp4格式
ffmpeg -i input.mov output.mp4

音视频编转码


ffmpeg -codecs

MP4封装:H264视频编码 + AAC音频编码
webM封装:VP8视频编码 + Vorbis音频编码
OGG封装:Theora视频编码 + Vorbis音频编码


-acodec 指定编码器
-ar 采样率
-ab 比特率 
-ac 声道设置

ffmpeg -i in.flac -acodec libmp3lame -ar 44100 -ab 320k -ac 2 out.mp3

视频压制


ffmpeg
  -i in.webm 
  -s 1920x1080 缩放视频尺寸
  -pix_fmt yuv420p 视频颜色空间
  -vcodec libx264 视频编码器
  -preset medium 编码器预设
  -profile:v high 压缩比
  -level:v 4.1 编码器的规范
  -crf 23 码率控制模式
  -acodec aac 音频编码器
  -ar 44100 采样率
  -ac 2 声道设置
  -b:a 128k 比特率
  out.mp4

码率控制模式


-qp模式 constant quantizer 恒定量化器模式
-crf模式 constant rate factor 恒定速率因子模式
-b模式 bitrate 固定目标码率模式

合并提取音视频


# 提取单独视频流 -an剔除声音
ffmpeg -i in.mp4 -vcodec copy -an v.mp4
# 提取音频流 -vn剔除视频
ffmpeg -i in.mp4 -vn -acodec copy a.m4a

#合并音视频 
ffmpeg -i a.m4a -i v.mp4 -c copy out.mp4

截取连接音视频

#截取视频
ffmpeg -i in.mp3 -ss 00:01:00 -to 00:01:10 -acodec copy out.mp3
# 启用关键帧
ffmpeg -ss 00:01:00 -i in.mp4 -to 00:01:10 -c copy out.mp4
# 保留时间戳
ffmpeg -ss 00:01:00 -i in.mp4 -to 00:01:10 -c copy -copyts out.mp4

#连接视频 concatenate串联
ffmpeg -i 'concat:01.mp4|02.mp4|03.mp4' -c copy out.mp4

截图,水印,动态

# 截图
ffmpeg -i in.mp4 -ss 5 -vframes 1 img.jpg

# 添加水印
ffmpeg -i in.mp4 -i logo.png -filter_complex "overlay=20:20" out.mp4

# 添加动态
ffmpeg -i in.mp4 -ss 7.5 -to 8.5 -s 640x320 -r 15 out.gif

录播和直播


# 录屏 -f格式化
ffmpeg -f gdigrab -i desktop rec.mp4

# 直播
ffmpeg -re -i rec.mp4 编码 -f flv 'rtmp地址/直播码'