ffmpeg将rtsp流转换为flv,nginx-http-flv配置
时间: 2025-06-28 16:14:04 浏览: 10
### 使用 FFmpeg 将 RTSP 流转换为 FLV 格式
为了将 RTSP 流转换成适合 Web 播放的 FLV 格式,可以利用 FFmpeg 工具执行此操作。具体命令如下所示:
```bash
ffmpeg -re -rtsp_transport tcp -i "rtsp://<RTSP_URL>" -f flv rtmp://localhost:1935/live/stream_key[^2]
```
上述命令中的 `-re` 参数表示按照原码率读取输入文件;`-rtsp_transport tcp` 表明使用 TCP 协议来连接 RTSP 服务器;`-i "rtsp://<RTSP_URL>"` 是指定要拉取的 RTSP 地址;最后部分则是指定了输出目标地址。
对于编码参数的选择,在实际应用中可以根据需求调整视频编解码器、音频采样率以及其他选项以优化性能和兼容性。例如设置 H.264 编码并降低分辨率至 720p 的例子可参照下述命令片段:
```bash
-vcodec libx264 -vprofile baseline -acodec aac -ar 44100 -strict -2 -ac 1 -s 1280x720 -q 10
```
这些参数分别控制着视频压缩方式、音轨格式以及质量等方面的内容。
### 配置 Nginx HTTP FLV 模块实现流媒体传输
安装好 nginx 和 nginx-http-flv 插件之后,需编辑 `nginx.conf` 文件来进行必要的配置更改以便支持直播功能。以下是典型的配置实例:
#### 安装依赖项与模块
确保已经正确安装了 NGINX 及其 http_flv_module 扩展包。如果尚未完成这一步骤,则应先下载源代码并重新编译带有该扩展的支持版本。
#### 修改 Nginx 配置文件 (`nginx.conf`)
在主配置文件里添加或修改相应的 server 块定义,加入 live 路径映射规则和其他必要指令:
```nginx
events {
worker_connections 1024;
}
rtmp {
server {
listen 1935; # 监听端口
chunk_size 4096;
application live {
live on;
record off;
# 授权验证 (可选)
# exec_push /usr/local/bin/auth.sh $name;
}
}
}
```
这段配置启用了 RTMP 服务监听于 1935 端口,并创建了一个名为 'live' 的应用程序上下文环境用于处理实时广播请求。其中 `record off;` 关闭录制功能以防不必要的磁盘占用。
另外还需要针对 HTTP 请求路径做相应设定,使得能够访问到由 RTMP 发布出来的内容:
```nginx
server {
listen 80;
server_name localhost;
location /live/ {
flv_live on;
add_header Cache-Control no-cache;
# 设置跨域资源共享策略(CORS),允许任何来源访问资源(仅作示例用途,请按实际情况调整)
if ($request_method = OPTIONS ) {
add_header Access-Control-Allow-Origin *;
...
}
proxy_pass http://127.0.0.1:1935/;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
```
这里设置了 `/live/` URL 映射指向本地运行的服务实例,同时开启了 CORS 支持让不同域名下的页面也能顺利加载数据[^1]。
通过以上两部分内容的操作即可搭建起一套完整的基于 Nginx + FFmpeg 技术栈的在线视频分发平台架构,从而满足从采集端获取 RTSP 流直至最终呈现在网页上的全过程需求。
阅读全文
相关推荐



















