使用ffmpeg+nginx進行rtsp視訊流至rtmp視訊流的轉換
阿新 • • 發佈:2018-12-16
說明:
作業系統: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命令)