1. 程式人生 > >使用ffmpeg+nginx進行rtsp視訊流至rtmp視訊流的轉換

使用ffmpeg+nginx進行rtsp視訊流至rtmp視訊流的轉換

說明:

作業系統:window server 2008 R2

步驟:

1、安裝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命令)