Ubuntu搭建ZLMediaKit且开启webrtc支持和https支持
之前使用的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
有两个进程,其中一个为守护进程,一个为工作的子进程
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· 实操Deepseek接入个人知识库
· CSnakes vs Python.NET:高效嵌入与灵活互通的跨语言方案对比
· 【.NET】调用本地 Deepseek 模型
· Plotly.NET 一个为 .NET 打造的强大开源交互式图表库