ffmpeg推流MP4 rtmp
时间: 2025-01-13 11:54:14 浏览: 112
### 使用 FFmpeg 推送 MP4 格式的视频流到 RTMP 服务器
为了实现这一目标,可以采用如下命令结构:
对于本地存储的 MP4 文件作为输入源的情况,使用下面的命令格式来推送视频流至指定的 RTMP 服务器地址[^1]。
```bash
ffmpeg -re -i /path/to/local/file.mp4 -c:v libx264 -preset fast -maxrate 3000k -bufsize 6000k -vf "scale=-2:720" -g 50 -c:a aac -b:a 160k -ar 44100 -f flv rtmp://server-ip/live/stream-key
```
此命令中的各个参数解释如下:
- `-re`:读取输入文件的速度按照其原始帧率进行重放。
- `-i /path/to/local/file.mp4`:指明要发送出去的本地 MP4 文件路径。
- `-c:v libx264` 和其他编码选项用于设置输出视频编解码器及其属性;这里选择了 H.264 编码方式并设置了比特率控制策略等。
- `-vf "scale=-2:720"`:调整分辨率以适应不同设备播放需求。
- `-g 50`:定义GOP大小即关键帧间隔数。
- 对于音频部分也进行了相应的配置如采样频率(`-ar`)、位速率(`-b:a`)以及使用的AAC编解码器(`-c:a aac`)。
- 最终通过 `-f flv` 将数据打包成FLV格式并通过RTMP协议传输给直播平台所对应的URL `rtmp://server-ip/live/stream-key`。
如果视频源来自网络摄像头或其他实时媒体资源,则可以根据实际情况修改上述指令里的输入项(-i 参数后的 URL 或者 设备编号),例如当视频来源于 IP 摄像头时可参照以下形式构建推流语句[^2]:
```bash
ffmpeg -i rtsp://camera_ip_address/chn0 -vcodec copy -acodec copy -f flv rtmp://live_server_ip/app_name/stream_key
```
其中需要注意的是,在实际应用过程中应当依据具体环境适当调整各项参数值,比如带宽条件允许的情况下可以选择更高的画质设定;而对于移动性较强的应用场景则可能更倾向于低延迟优化等方面考虑。另外还需确保防火墙规则开放必要的端口访问权限以便顺利完成整个过程[^3]。
阅读全文
相关推荐
















