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地址/直播码'