当前位置: 首页 > news >正文

CentOS7编译ZLMediaKit并使能WebRTC

使能WebRTC需要libsrtp库, libsrtp库需要openssl, 所以第一步先安装openssl, 系统自带的版本是1.0.2的, libsrtp需要1.1.1以上版本, 需要使用源码进行编译;

GCC准备

需要安装gcc7以上版本, 并切换到gcc7的编译环境

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

解压, 进入目录, 进行配置

./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

解压, 进入目录, 进行配置

./configure --enable-openssl --with-openssl-dir=/usr/local/openssl
make
make install

ZLMediaKit的编译

至此准备工作已经做好, 进入到ZLMediaKit的目录中, 创建编译目录build, 如果已经创建而且编译过最好将该目录清空,

进入build目录, 使用cmake进行配置

cmake -DENABLE_WEBRTC=on ../

我的服务器上配置结果大致是这样的:

-- 编译类型: 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即可

至此基本可顺利编译通过, 尽量简短解说, 有疏漏的地方后面再补上.

http://www.lryc.cn/news/337939.html

相关文章:

  • 【数据交换格式】网络socket编程温度采集智能存储与上报项目技术------JSON、TLV
  • IP地址定位技术在各领域的作用
  • 代码随想录 538. 把二叉搜索树转换为累加树
  • JavaWeb--前端--01HTML和CSS
  • Oracle SQL中的DECODE函数与NVL函数:区别与应用场景详析
  • 算法设计与分析实验报告c++实现(N皇后问题、卫兵布置问题、求解填字游戏问题、图的m着色问题)
  • 深入探索Linux中的libgdbus:GDBus库的应用和实现
  • MacOS下Qt 5开发环境安装与配置
  • jquery 实现倒计时
  • MYSQL 5.7重置root密码
  • 博客永久链接与计数
  • 基于 RisingWave 和 ScyllaDB 构建事件驱动应用
  • mysql8.0高可用集群架构实战
  • GRE/MGRE详解
  • 蓝桥杯(填空题)
  • vim快捷指令
  • LINUX 下IPTABLES配置详解
  • CentOS 网卡ifcfg-eth0 ping不通外网(www.baidu.com)
  • 【C++】类和对象②(类的默认成员函数:构造函数 | 析构函数)
  • 【ZZULIOJ】1063: 最大公约与最小公倍(Java)
  • 遍历列举俄罗斯方块的所有形状
  • 将Visio绘图导出PDF文件,使其自适应大小,并去掉导入Latex的边框显示
  • android支付宝接入流程
  • Mac 下 Python+Selenium 自动上传西瓜视频
  • 六:ReentrantLock —— 可重入锁
  • 一种驱动器的功能安全架构介绍
  • 紫光展锐T610平台_4G安卓核心板方案定制开发
  • C++11 设计模式4. 抽象工厂(Abstract Factory)模式
  • 第8周 Python面向对象编程刷题
  • 【学习心得】神经网络知识中的符号解释②