FFmpeg——一款极其优秀的视频处理工具
优点:
- 全平台支持:Linux、Windows、Mac
- 参数众多,符合你对于视频处理的各种要求。如常用的 视频压缩、格式转化、音视频提取,都是手到擒来。
- 性能强悍
缺点:
- 纯命令行工具,受众注定不会大
- 参数实在太多,五花八门,有点摸不着头脑
环境:CentOS 7
需求:None
常用参数
-i 设定输出流
-f 设定输出格式
-b:v 设定平均码率
-r 设定帧数
-S 设定分辨率
-crf 设定视频质量(18-28为佳,0无损,51最低)
-preset 设定转换速度 (ultrafast, superfast, veryfast, faster, fast, medium, slow, slower, veryslow, placebo(不建议))
-vn 不处理视频
-an 不处理音频
-c:v 设定视频解码器(libx264, libx265(H265虽然好,但是很多地方不支持))
-c:a 设定音频解码器(copy——直接复制原音频)
-maxrate 设定最大码率
-minrate 设定最小码率
-bufsize 设定缓冲
是不是感觉很麻烦呢?这才是其中一点点参数呢,ffmpeg -h
查看所有参数!
不过没关系,日常使用根本不用了解那么多~
视频处理
视频压缩
# 网站投稿 -> 快速压缩
ffmpeg -i name.mp4 -s 1920x1080 -preset veryfast -crf 28 -c:v libx264 -c:a copy -f mp4 output.mp4 -y
# 视频存放 -> 压缩体积
ffmpeg -i name.mp4 -s 1280x720 -b:v 1024k -preset veryslow -c:v libx265 -f mp4 output.mp4 -y
- -y:表示不用确认,直接覆盖视频
格式转换
# mp4 转 flv
ffmpeg -i name.mp4 output.flv -y
编码格式转换
# 查看支持的编码格式
ffmpeg -codecs
# av1 转 h264
ffmpeg -c:v av1_cuvid -i input.mp4 -crf 18 -c:v libx264 output.mp4 -y
其中,解码器用的 N 卡的解码器 av1_cuvid
,编码器用 CPU 编码 libx264
。
视频截取
# 从 20:40 开始,截取 15s
ffmpeg -ss 20:40 -t 15 -i input.mp4 -c:v copy output.mp4 -y
音视频提取
# 提取音频
ffmpeg -i name.mp4 -c:a copy -vn output.aac
# 提取视频
ffmpeg -i name.mp4 -c:v copy -an output.mp4
音频处理
flac 转 mp3
ffmpeg -i "1.flac" -ab 320k -map_metadata 0 -id3v2_version 3 "1.mp3"