使能WebRTC需要libsrtp库, libsrtp库需要openssl, 所以第一步先安装openssl, 系统自带的版本是1.0.2的, libsrtp需要1.1.1以上版本, 需要使用源码进行编译;
GCC准备
需要安装gcc7以上版本, 并切换到gcc7的编译环境
bash
yum install centos-release-scl
yum install devtoolset-7-gcc*
yum install devtoolset-7-gdb*
scl enable devtoolset-7 bash
使用gcc --version验证下看是否为gcc7了, 接下来进入编译环节
OpenSSL编译安装
使用1.1.1版本的代码, 下载地址:https://github.com/openssl/openssl/archive/refs/heads/OpenSSL_1_1_1-stable.zip
解压, 进入目录, 进行配置
bash
./Configure shared --openssldir=/usr/local/openssl --prefix=/usr/local/openssl
make
make install
一定要配置安装目录, 后面编译libsrtp要用到, 否则编译会很遇到很多麻烦;
libsrtp库编译安装
使用2.4.2版本的代码, 这是咨询了ZLMediaKit作者后告知的,下载地址:
https://github.com/cisco/libsrtp/archive/refs/tags/v2.4.2.tar.gz
解压, 进入目录, 进行配置
bash
./configure --enable-openssl --with-openssl-dir=/usr/local/openssl
make
make install
ZLMediaKit的编译
至此准备工作已经做好, 进入到ZLMediaKit的目录中, 创建编译目录build, 如果已经创建而且编译过最好将该目录清空,
进入build目录, 使用cmake进行配置
cmake -DENABLE_WEBRTC=on ../
我的服务器上配置结果大致是这样的:
bash
-- 编译类型: Debug
-- Git version is master 08a9e93/%aI 2024-04-08T21:53:48
-- found library: /usr/lib64/libssl.so;/usr/lib64/libcrypto.so, ENABLE_OPENSSL defined
-- MySQL not found.
-- ENABLE_MP4 defined
-- ENABLE_RTPPROXY defined
-- ENABLE_HLS defined
-- Socket default buffer size is set to 262144
-- set_file_group /home/mnt/MediaKit/ZLMediaKit/3rdpart/ZLToolKit/src 78
-- set_file_group /home/mnt/MediaKit/ZLMediaKit/src 205
-- srt 功能已开启
-- found library: /usr/local/lib/libsrtp2.a
-- SCTP LIBRARIES: SCTP_LIBRARIES-NOTFOUND
-- SCTP INCLUDE DIRS: SCTP_INCLUDE_DIRS-NOTFOUND
-- WebRTC 功能已开启
其中/usr/lib64/libssl.so;/usr/lib64/libcrypto.so这两个库文件默认是1.0.2版本的, 如果接下来编译有openssl库相关的报错, 将这两个文件建立软连接到1.1.1版本库对应文件上
然后make即可
至此基本可顺利编译通过, 尽量简短解说, 有疏漏的地方后面再补上.