FFmpeg常用参数详解
Eave
2025.11.17
一、基础参数
| 参数 | 说明 | 示例 |
|---|---|---|
| -i | 输入文件或流 | -i input.mp4 |
| -c | 编解码器设置 | -c copy(流复制) |
| -f | 强制输出格式 | -f mp4 |
| -y | 覆盖输出文件 | -y |
| -n | 不覆盖输出文件 | -n |
| -t | 录制时长 | -t 60(60秒) |
| -ss | 开始时间点 | -ss 00:01:00 |
| -to | 停止时间点 | -to 01:30:00 |
| -an | 完全禁用音频流处理 | 无 |
| -hide_banner | 只显示处理进度和结果 | 无 |
二、流处理参数
视频参数
| 参数 | 说明 | 示例 |
|---|---|---|
| -c:v | 视频编解码器 | -c:v libx264 |
| -b:v | 视频比特率 | -b:v 1M |
| -r | 帧率 | -r 30 |
| -s | 分辨率 | -s 1280x720 |
| -vf | 视频滤镜 | -vf "scale=640:480" |
音频参数
| 参数 | 说明 | 示例 |
|---|---|---|
| -c:a | 音频编解码器 | -c:a aac |
| -b:a | 音频比特率 | -b:a 128k |
| -ar | 采样率 | -ar 44100 |
| -ac | 声道数 | -ac 2 |
三、网络流参数
RTSP相关
| 参数 | 说明 | 示例 |
|---|---|---|
| -rtsp_transport | 传输协议 | -rtsp_transport tcp |
| -stimeout | 超时设置(微秒) | -stimeout 5000000 |
| -re | 按原始帧率读取 | -re |
其他网络参数
| 参数 | 说明 | 示例 |
|---|---|---|
| -user_agent | 设置User-Agent | -user_agent "MyApp" |
| -headers | 自定义请求头 | -headers "Referer: example.com" |
性能优化参数
| 参数 | 说明 | 示例 |
|---|---|---|
| -threads | 线程数 | -threads 4 |
| -preset | 编码预设 | -preset medium |
| -crf | 质量系数 | -crf 23 |
| -movflags | MP4优化 | -movflags +faststart |
| -hwaccel | 硬件加速 | -hwaccel cuda(NVIDIA GPU加速) -hwaccel qsv(Intel QuickSync) |
四、使用方法
TS转换MP4
ffmpeg -i 9.ts -c:v copy -c:a copy 9.mp4
MP3转换AMR
ffmpeg -i 1.mp3 -ac 1 -ar 8000 1.amr
AMR转换MP3
ffmpeg -i 1.amr 1.mp3
将视频第一帧保存为图片
ffmpeg -i videolib3.mp4 -ss 1 -f image2 videolib3.jpg
RTSP流转RTMP
ffmpeg -i "rtsp://admin:hk123456@192.168.10.64:554/h264/ch1/main/av_stream" -c:v copy -c:a copy -f flv rtmp://127.0.0.1:1935/hls/index
获取摄像头10秒录像
ffmpeg -i "rtsp://admin:hk123456@192.168.10.64:554/h264/ch1/main/av_stream" -c:v copy -an -t 10 -f mp4 output.mp4
-i rtsp://example.com/stream:输入的rtsp流地址
-c:v copy:只复制视频编码,不进行重新编码
-an:禁止音频输出
-f segment:以分段的方式输出文件
-segment_time 3600:每个分段的时间间隔(单位秒)
-reset_timestamps 1:重置时间戳
-strftime 1:使用日期时间格式化输出文件名
output_%Y-%m-%d_%H-%M-%S.mp4:输出文件名,使用日期时间格式化