之前使用的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
有两个进程,其中一个为守护进程,一个为工作的子进程