ZLMediaKit是一款國產的開源流媒體伺服器,它基於C++11開發,支援多種流媒體協議(RTSP/RTMP/HLS/HTTP-FLV/WebSocket-FLV/GB28181/HTTP-TS/WebSocket-TS/HTTP-fMP4/WebSocket-fMP4/MP4/WebRTC),支援的音影片編碼標準包括H265、H264、AAC、G711、OPUS等。
透過結合FFmpeg與ZLMediaKit,可以很方便地測試音影片的推拉流。接下來以華為的尤拉系統為執行環境,介紹如何編譯、安裝、除錯ZLMediaKit,詳細的操作步驟說明如下。
一、編譯安裝ZLMediaKit
1、登入Linux伺服器(比如華為雲的尤拉系統),執行下列命令安裝ZLMediaKit的依賴包。
2、執行下面命令從gitee下載ZLMediaKit的原始碼。
3、進入ZLMediaKit的原始碼目錄,執行下面命令更新ZLMediaKit的依賴模組原始碼。
4、依次執行下面命令配置ZLMediaKit。
5、執行下面命令編譯ZLMediaKit。
6、編譯完成後,執行下面命令安裝ZLMediaKit。
命令執行完畢,ZLMediaKit的可執行程式將安裝到ZLMediaKit原始碼路徑的release/linux/Debug目錄下。
二、編譯安裝FFmpeg
在Linux系統編譯安裝FFmpeg的詳細步驟參見《FFmpeg開發實戰:從零基礎到短影片上線》一書的“1.2 Linux系統安裝FFmpeg”,這裡不再贅述。
三、啟動ZLMediaKit
1、進入ZLMediaKit的安裝目錄:
2、開啟配置檔案config.ini,把http標籤下的sslport值改為8443,如下所示。
把http標籤下的port值改為8080,如下所示。
修改完畢,儲存並退出config.ini。
3、執行下面命令,啟動MediaServer服務。
若想啟用安全協議SSL,則執行下面命令,啟動帶預設https證書的MediaServer服務。
4、檢查伺服器是否開啟了下列埠:
554埠,用於rtsp協議,訪問“rtsp://”開頭的直播地址需要。
1935埠,用於rtmp協議,訪問“rtmp://”開頭的直播地址需要。
8080埠,用於http協議,訪問“http://”開頭的直播地址需要。
8443埠,用於https協議,訪問“https://”開頭的直播地址需要。
四、檢查ZLMediaKit的影片推拉流
影片推流有RTSP和RTMP兩種常見的流媒體協議。其中RTSP全稱為“Real Time Streaming Protocol”(實時流傳輸協議),它由RealNetworks和網景公司共同提交。RTSP協議支援雙向傳輸,允許伺服器端和客戶端之間實時通訊,常用於需要播放、暫停、快進、快退等控制操作的影片點播場合。
RTMP全稱為“RTMP Real Time Messaging Protocol”(實時訊息傳輸協議),它由Adobe公司提交。RTMP協議只支援單向傳輸,只允許從伺服器端傳輸資訊到客戶端,常用於實時性較強的影片直播,比如帶貨直播、視訊會議、線上課堂等場合。
下面透過ffmpeg把影片源推流給ZLMediaKit,並使用VLC播放器觀察影片拉流效果。
1、執行以下命令,將本地影片透過RTSP協議推流給ZLMediaKit。
若想將本地影片透過RTMP協議推流給ZLMediaKit,則需執行以下命令。
2、開啟VLC播放器,依次選擇選單“媒體”→“開啟網路串流”,在網路URL框中輸入下列任一地址,觀看能否正常播放影片畫面。
注意需要把上述地址中的“124.***.***.***”替換為流媒體伺服器實際的公網地址。