1> FFmpeg 使用格式
ffmpeg {1} {2} -i {3} {4} {5}
- 全局参数
- 输入文件参数
- 输入文件
- 输出文件参数
- 输出文件
ffmpeg \
-y \ # 全局参数
-c:a libfdk_aac -c:v libx264 \ # 输入文件参数
-i input.mp4 \ # 输入文件
-c:v libvpx-vp9 -c:a libvorbis \ # 输出文件参数
output.webm # 输出文件
简化编码格式:
ffmpeg -i input.avi output.mp4
2> 常用命令行参数
参数 | 说明 |
-c | 指定编码器 |
-c copy | 直接复制,不经过重新编码(速度较快) |
-c:v | 指定视频编码器 |
-c:a | 指定音频编码器 |
-i | 指定输入文件 |
-an | 去除音频流 |
-vn | 去除视频流 |
-preset | 指定输出的视频质量,会影响文件的生成速度 ultrafast, superfast, veryfast, faster, fast, medium, slow, slower, veryslow |
-y | 不经过确认,输出时直接覆盖同名文件 |
3> 常见用法
① 查看文件信息
ffmpeg -i input.mp4
ffmpeg -i input.mp4 -hide_banner # 只显示元信息
② 转换编码格式
ffmpeg -i input.mp4 -c:v libx264 output.mp4 # H.264编码
③ 转换容器格式
ffmpeg -i input.mp4 -c copy output.mkv # 只转换容器,内部编码格式不变
④ 调整码率
ffmpeg \
-i input.mp4 \
-minrate 964K -maxrate 3856K -bufsize 2000K \
output.mp4 # 指定码率最小为964K,最大为3856K,缓冲区大小为 2000K
⑤ 改变分辨率
ffmpeg \
-i input.mp4 \
-vf scale=480:-1 \
output.mp4 # 1080P转480P
⑥ 提取音频
ffmpeg \
-i input.mp4 \
-vn -c:a copy \ # 去掉视频,不改变音频编码,直接拷贝
output.aac
⑦ 添加音轨
ffmpeg \
-i input.aac -i input.mp4 \
output.mp4
⑧ 截图
ffmpeg \
-y \
-i input.mp4 \
-ss 00:01:24 -t 00:00:01 \
output.jpg # 从00:01:24开始,连续对1秒的视频进行截图
ffmpeg \
-ss 01:23:45 \
-i input \
-vframes 1 -q:v 2 \ # 只截取1帧, -q:v 2 指定输出的图片质量
output.jpg
⑨ 裁剪
ffmpeg -ss [start] -i [input] -t [duration] -c copy [output]
ffmpeg -ss [start] -i [input] -to [end] -c copy [output]
ffmpeg -ss 00:01:50 -i input.mp4 -t 10.5 -c copy output.mp4
ffmpeg -ss 2.5 -i input.mp4 -to 10 -c copy output.mp4
⑩ 为音频添加封面(将音频文件转为带封面的视频文件)
ffmpeg \
-loop 1 \ # 图片无限循环
-i cover.jpg -i input.mp3 \ # cover.jpg为封面图片
-c:v libx264 -c:a aac -b:a 192k -shortest \ # -shortest 表示音频文件结束,输出视频结束
output.mp4
⑪ 视频压缩
a. 指定压缩后的文件大小
ffmpeg -i input.mp4 -fs 10MB output.mp4 # 文件大小最大值为10MB
b. 设置视频的帧率
ffmpeg -i input.mp4 -r 20 output.mp4 # 帧率设置为 20fps,
c. 设置视频的码率
ffmpeg -i input.mp4 -b:v 1M output.mp4 # -b:v 指定视频的码率 -b:a 指定音频的码率 1920*1080,帧率24、25、30,码率可选择5、6、7、8Mb/s
d. 设置视频的分辨率
ffmpeg -i input.mp4 -s 1920x1080 output.mp4 # 视频分辨率为1920x1080
e. 结合使用
ffmpeg -i input.mp4 -s 1920x1080 -b:v 1M -r 20 output.mp4
f. 推荐使用
# -crf :通常取值范围为18-28;18被认为是视觉无损的;数值越大压缩后的视频大小就越小
# -preset:设置压缩速度和输出文件大小的平衡。可选值有ultrafast、superfast、veryfast、faster、fast、medium、slow、slower、veryslow等
ffmpeg -i input.mp4 -codec:v libx264 -crf 23 -preset medium -codec:a copy output.mp4
⑫ 直播推流
ffmpeg -re -i input.mp4 -c:v libx264 -preset superfast -tune zerolatency -c:a aac -ar 44100 -f flv rtmp://server/live/stream_key
⑬ 修复模糊的视频
ffmpeg -i input.mp4 -vf "unsharp=lx=3:ly=3:la=1.5" output.mp4
其中,lx
和 ly
是水平和垂直方向上的锐化强度,la
是锐化半径。
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END