ffmpeg命令行实现直播推流同时保存视频
时间: 2024-09-08 11:04:40 浏览: 121
FFmpeg是一个强大的跨平台多媒体处理工具,它支持多种输入和输出格式,包括音频、视频、直播等。如果你想通过FFmpeg将直播内容推流到某个服务器(如RTMP流)并同时保存本地文件,可以使用以下基本命令结构:
```bash
ffmpeg -i <input_source> -c:v h264 -c:a aac -f flv -r <frame_rate> -tune zerolatency -sws_flags fast_bilinear -flags +global_header -playlist_type live \
-reconnect 1 -reconnect_at_eof 1 -reconnect_streamed 1 -http_proxy <proxy_address> -rtmp 'rtmp://<server_url>/<stream_key>' \
-map 0:v? -map 0:a? -strict experimental
```
这里参数解释:
- `-i` 后面跟着输入源,比如摄像头、文件路径、网络URL等。
- `-c:v h264` 和 `-c:a aac` 设置视频和音频编码格式。
- `-f flv` 表明输出流类型是FLV,适合推流到RTMP服务器。
- `-r` 指定帧率。
- `-tune zerolatency` 优化实时编码。
- `-sws_flags fast_bilinear` 快速线性插值处理。
- `-http_proxy` 如果有代理需要设置。
- `-rtmp` 是推流的目标地址,包括服务器地址和流名。
- `-map` 选项指定了哪些流需要包含在输出中。
- `live` 标志表示这是一个直播流。
- `-reconnect` 参数允许在网络连接断开时自动重连。
注意替换上述命令中的 `<input_source>`、`<frame_rate>`、`<server_url>`、`<stream_key>`、以及`<proxy_address>`为你实际的情况。
阅读全文