由日誌可見,MediaMTX開啟了下列五項流媒體服務:
1、偵聽8554埠的RTSP服務,對應的流媒體播放地址是rtsp://127.0.0.1:8554/stream;
2、偵聽1935埠的RTMP服務,對應的流媒體播放地址是rtmp://127.0.0.1:1935/stream;
3、偵聽8888埠的HLS服務,對應的流媒體播放地址有兩個,其中http://127.0.0.1:8888/stream可以直接透過瀏覽器播放(比如Chrome),另一個http://127.0.0.1:8888/stream/index.m3u8需要用播放器開啟。
4、偵聽8889埠的WebRTC服務;
5、偵聽8890埠的SRT服務;
接下來驗證MediaMTX的實際推拉流情況。開啟MSYS視窗,進入《FFmpeg開發實戰:從零基礎到短影片上線》一書第十章的原始碼目錄,執行下面的編譯命令。
編譯完成後執行以下命令啟動測試程式,期望把2018.mp4推給預設的推流地址rtsp://127.0.0.1:8554/stream。
開啟另一個MSYS視窗,同樣進入《FFmpeg開發實戰:從零基礎到短影片上線》一書第十章的原始碼目錄,執行下面的編譯命令。
編譯完成後執行以下命令啟動測試程式,期望從http://127.0.0.1:8888/stream/index.m3u8拉取影片流並彈窗播放。
然後果真彈出一個SDL視窗,正在播放從HLS服務拉取的影片畫面,說明MediaMTX正確實現了HLS協議的流媒體轉發功能。
不過對於上面的HLS協議,具體的播放情況比較複雜,比如http://127.0.0.1:8888/stream只能透過Chrome播放,不能透過FireFox或者Edge播放。而http://127.0.0.1:8888/stream/index.m3u8這個地址無法使用Windows Media Player開啟,即使透過VLC播放也不顯示畫面。推測是因為pushvideo只推送影片流不推送音訊流,而VLC的音影片同步機制採用音訊基準,由於缺失音訊流使得影片流無處校準導致不能正常顯示畫面。