ffmpeg常用命令
一、基本信息查看
bash
ffmpeg -version # 查看版本
ffmpeg -formats # 列出支持的格式
ffmpeg -codecs # 列出支持的编解码器
ffmpeg -devices # 列出可用设备
二、格式转换(最核心)
1. 视频格式转换
bash
ffmpeg -i input.avi output.mp4
解释:-i 指定输入文件,自动根据后缀选择编码器。
2. 音频格式转换
bash
ffmpeg -i input.wav output.mp3
解释:从 WAV 转成 MP3。
三、视频参数调整
1. 改变分辨率
bash
ffmpeg -i input.mp4 -vf scale=1280:720 output.mp4
解释:-vf scale=宽:高 缩放视频。
2. 改变帧率
bash
ffmpeg -i input.mp4 -r 30 output.mp4
解释:-r 设置输出帧率为 30fps。
3. 改变码率(画质/体积)
bash
ffmpeg -i input.mp4 -b:v 1M output.mp4
解释:-b:v 视频码率,1M=1Mbps(影响清晰度和大小)。
四、裁剪与切割
1. 按时间裁剪
bash
ffmpeg -i input.mp4 -ss 00:01:00 -to 00:02:30 -c copy output.mp4
解释:
-ss 开始时间
-to 结束时间
-c copy 直接复制流(不重新编码,速度快)
2. 按时间截取片段(精确但慢)
bash
ffmpeg -i input.mp4 -ss 00:01:00 -t 30 -c:v libx264 output.mp4
解释:-t 30 截取 30 秒。
五、提取与删除
1. 提取音频
bash
ffmpeg -i video.mp4 -vn -acodec copy audio.aac
解释:-vn 禁用视频,-acodec copy 复制原音频。
2. 提取视频(去掉音频)
bash
ffmpeg -i video.mp4 -an -c:v copy silent.mp4
解释:-an 禁用音频。
3. 删除视频流(只留音频)
bash
ffmpeg -i video.mp4 -vn output.mp3
六、合并与拼接
1. 合并多个视频(需格式相同)
先创建 filelist.txt:
text
file '1.mp4'
file '2.mp4'
然后执行:
bash
ffmpeg -f concat -safe 0 -i filelist.txt -c copy merged.mp4
七、压缩文件
bash
ffmpeg -i large.mp4 -vcodec libx264 -crf 28 small.mp4
解释:
libx264 H.264 编码
crf 0-51,值越大体积越小、画质越低(常用 23-28)
八、视频转 GIF
bash
ffmpeg -i input.mp4 -vf "fps=10,scale=320:-1" output.gif
解释:帧率 10,宽度 320,高度自动。
九、屏幕录制
Linux / macOS / Windows(通用)
bash
ffmpeg -f x11grab -i :0.0 output.mp4 # Linux X11
ffmpeg -f avfoundation -i "1" out.mov # macOS
# Windows: 使用 dshow 或 gdigrab
十、常用编码器简写
含义 参数
复制原流 -c copy
视频 H.264 -c:v libx264
视频 H.265 -c:v libx265
音频 AAC -c:a aac
音频 MP3 -c:a mp3
音频复制 -c:a copy
06-24 17:59
回复