[筆記] RTSP stream server on Windows

➤ 準備套件

MediaMTX:到 github 網站下載 zip 包 https://github.com/bluenviron/mediamtx,參考 [1]
FFmpeg:到官網下載已經編譯好的 zip 包,參考[2]

➤ 啟動 RTSP 服務

        MediaMTX zip 包裡面有三個檔案,一個程式的執行檔(.exe),一個是程式的配置檔(.yml),另一個是許可檔案。配置檔就是一個文字檔,打開後可以看到 RTSP 的相關設定,還有其他串流 RTMP 的設定。在 Windows 環境下,開啟 CMD 視窗,然後執行 mediamtx.exe,顯示出下圖的結果。RTSP 串流的 TCP 端口為 8554,UDP 端口為 8000。


➤ FFmpeg 影像編碼

        編譯過的 FFmpeg 壓縮包裡面,\bin\ 目錄底下有三個執行檔,一個是 ffmpeg.exe,一個是 ffplay.exe,以及 ffprobe.exe。第一步,在 Windows 環境下開啟 CMD 視窗,然後執行 ffmpeg.exe -version 檢視版本號,看有沒有成功。

        第二步,查看並列出電腦上的所有攝影機,執行 ffmpeg -list_devices true -f dshow -i dummy,結果會列出來,如下圖。

        第三步,我們用 ffplay 工具執行擷取攝影機的影像數據,在 CMD 視窗執行 ffplay -f dshow -i video = "USB2.0 VGA UVC WebCam",其結果如下圖所示。

        前面的步驟都成功後,進行第四步,將攝影機影像推到 RTSP 伺服器上,參考[3],ffmpeg -f dshow -i video="USB2.0 VGA UVC WebCam" -f rtsp rtsp://127.0.0.1:8554/stream

接著,我們在另一台電腦上,寫一個 RTSP client 的程式,從伺服器上面讀取攝影機的影像,如下圖,RTSP 伺服器的 IP 位址是 192.168.1.231,端口為 8554,登入的目錄為 stream。

最終的結果,如下。成功從遠端的電腦能透過 RTSP 協定擷取攝影機的即時影像。


➤ 參考資料

[1] Windows上搭建rtsp-simple-server 流媒體服務器實現rtsp﹑rtmp等推流以及轉流 https://www.cnblogs.com/badaoliumangqizhi/p/17211019.html
[2] FFmpeg 安裝教學(windows) https://vocus.cc/article/64701a2cfd897800014daed0
[3] RTSP & RTMP 原理 通過 ffmpeg 實現將本地攝像頭推流到 RTSP 服務器 https://blog.csdn.net/qq_33934427/article/details/128009659

留言

此網誌的熱門文章

[筆記] ESP32 在 VS Code 開發環境的編譯與除錯

[筆記] Raspberry Pi 樹莓派的軟體開發

[應用] 在 ESP32 Audio 開發板的 VoIP 範例

[筆記] Visual Studio 遠端偵錯的設定步驟

[筆記] 整理控制器 STM32 與無線晶片 ESP32 資料

[筆記] Raspberry Pi 樹莓派的 I/O 介面開發 in Python

[應用] 藍芽 BLE client/server 架構:BLE remote controller