之前使用的centos7進行ZlMediaKit的編譯安裝,但是依賴的安裝太過麻煩,尤其是ffmpeg的安裝和擴展,需要添加很多音視頻的編譯支持:如h264,265等解編碼庫支持,否則zlm相關ffmpeg的拉流代理不成功。
如下為編譯流程,親測編譯成功且可用,驗證成功webrtc的支持和https相關截圖和拉流代理支持。
1.(首選Ubuntu20.04)
2.拉取代碼
apt install -y git
cd /opt
git clone https://github.com/ZLMediaKit/ZLMediaKit.git
cd ruijian-zlmediakit/git submodule update --init
3.linux上要求gcc 版本 >= 4.8(4.7應該也能支持)
apt update -y apt install -y build-essential (如有錯誤,安裝詳細錯誤安裝依賴) gcc -v(查看版本) ###安裝cmake apt -y install cmake ##編譯openssl--webrtc中https的擴展支持 apt -y remove openssl cd /opt git clone https://github.com/openssl/openssl.git mv openssl openssl-src && cd openssl-src ./config --prefix=/opt/openssl;make -j4; sudo make install cd /opt/openssl && cp -rf lib64 lib ##編譯libsrtp--webrtc中https的擴展支持 cd /opt git clone https://gitee.com/mirrors/cisco-libsrtp.git cd cisco-libsrtp ./configure --enable-openssl --with-openssl-dir=/opt/openssl make -j4;sudo make install
4.編譯zlm
cd /opt/ruijian-zlmediakit
mkdir build
cd build
cmake .. -DENABLE_WEBRTC=true -DOPENSSL_ROOT_DIR=/opt/openssl -DOPENSSL_LIBRARIES=/opt/openssl/lib
cmake --build . --target MediaServer
5.修改配置文件
#最多等待未初始化的Track時間,單位毫秒,超時之后會忽略未初始化的Track--優化首屏時間
[general]
wait_track_ready_ms=3000
#webrtc的開啟支持
[rtc]
#rtc播放推流、播放超時時間
timeoutSec=15
#本機對rtc客戶端的可見ip,作為服務器時一般為公網ip,置空時,會自動獲取網卡
ipexternIP=
#rtc udp服務器監聽端口號,所有rtc客戶端將通過該端口傳輸stun/dtls/srtp/srtcp數據,#該端口是多線程的,同時支持客戶端網絡切換導致的連接遷移#需要注意的是,如果服務器在nat內,需要做端口映射 時,必須確保外網映射端口跟該端口一致 port=8000
#設置remb比特率,非0時關閉twcc並開啟remb。該設置在rtc推流時有效,可以控制推流畫質
rembBitRate=1000000
7.安裝ffmpeg---截圖,轉碼工具--增加
apt install ffmpeg
6.啟動
cd /opt/ruijian-zlmediakit/release/linux/Debug/
#通過-h可以了解啟動參數
./MediaServer -h
#以守護進程模式啟動
nohu./MediaServer -d & -----一定要用nohup或則其他的守護進程模式,否則ffmpeg的代理在執行的時候父進程會掛掉,導致zlm操作ffmpeg一直處於卡住狀態
#檢查進程啟動
ps aux|grep MediaServer
有兩個進程,其中一個為守護進程,一個為工作的子進程