rtsp->rtmp 推流直播 Plan B

頑皮大叔發表於2021-09-10

上篇文章我們談到使用 EasyDarwin 推流後 前端HTML播放器 播放無畫面的情況,找了各種播放器都服務正常解決,但使用VLC卻能正常播放的問題,我們嘗試了很久最後另闢蹊徑,找到 nginx安裝rtmp模組後 使用FFmpeg往 nginx推流 的解決方案

帶有 rtmp 模組的 nginx 下載地址 https://github.com/illuspas/nginx-rtmp-win32

下載後將兩個工具放在同一個目錄下,如下圖

image

1:開啟 FFmpeg 目錄 雙擊 ffmpeg.exe 先執行(注意啟動先後順序)

image

2:開啟 nginx-rtmp-win32-master 雙擊 nginx.exe 執行

image

3:開啟 nginx 目錄下的 conf 資料夾下面的 nginx.conf 檔案 我們看到 http server在監聽 8089 埠 rtmp 播放埠為 1935

image

4:我們再瀏覽器裡面輸入 http://localhost:8089/ 訪問出現如下介面(注意這裡使用360瀏覽器預設有flash外掛)

image

這個是 nginx-rtmp-win32-master 自帶的rtmp測試工具,有直播測試器、安卓端和IOS端的 sdk

5:我們需要先使用命令列工具,讓 FFmpeg 拉取海康攝像頭視訊流往 nginx 推,這樣才可以在此 rtmp測試器裡面播放,首先開啟cmd命令列視窗,進入 ffmpeg的根目錄

image

然後執行如下命令

ffmpeg -i "rtsp://admin:Aa123456@10.24.18.3:554/Streaming/Channels/101" -f flv -r 20 -s 510x440 -an rtmp://localhost:1935/live/3

6:出現如下命令說明ffmpeg拉取視訊流和推視訊流已成功執行

image

7:在測試播放器 的 player address 中輸入命令列中的播放地址 rtmp://localhost:1935/live/3 點選播放,就能看到右側出現視訊畫面

image

8:最後我們將啟動命令編輯成 bat指令碼,便可以一次性啟動多個視訊直播流,像這樣

image

實測 6核 8G 伺服器 推二十個無壓力。,後續我們可以將此命令做成 winform 或者 服務 後臺執行,這樣就可以直接從資料庫中配置。

相關文章