使用ffmpeg+nginx进行rtsp视频流至rtmp视频流的转换

说明:

操作系统:window server 2008 R2

步骤:

1、安装ffmpeg:

通过官网http://www.ffmpeg.org/download.html或其他途径下载ffmpeg,解压到程序安装位置即可

2、安装nginx

需要下载旧版nginx并安装nginx-rtmp-module(我使用的是从网上下载的nginx-rtmp集成版,版本号:nginx:1.11.10、nginx-rtmp-module:1.1.11)

3、配置nginx

打开nginx安装目录/conf/nginx.conf

根据如下实例调整rtmp和http配置

rtmp {
    server {
        listen 1926; 
        application live {
            live on;
        } 
    }
}

http {
    server {
        listen      8091;
		
        location / {
            root www;
        }
		
        location /stat {
            rtmp_stat all;
            rtmp_stat_stylesheet stat.xsl;
        }

        location /stat.xsl {
            root www;
        }
    }
}

4、运行ffmpeg命令,进行转换

命令实例

ffmpeg -i rtmp://xxx.xxx.xxx.xxx:1935/h264/ch1/main/av_stream -stimeout 6000000 -s 480x360 -vcodec copy -acodec copy -f flv rtmp://localhost:1926/live/av_stream 

此时即可通过访问rtmp://localhost:1926/live/av_stream获得rtmp视频流

注意:

1、ffmpeg转码与nginx代理可以不在同一台服务器上进行,但这种情况对带宽要求较高

2、如果rtsp视频流断开,可能导致转码程序一直等待,因此加入-stimeout参数(表示超时时间),如果超时未获取到视频流,则报错退出(如需重新获取,可以写个bat脚本,循环执行ffmpeg命令)

猜你喜欢

转载自blog.csdn.net/dumdums/article/details/83239626