当前位置: 首页 > 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即可

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

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • C语言从入门到实战————编译和链接
  • axios是什么?axios使用axios和ajax
  • c++的学习之路:12、vector(1)
  • SSL数字证书基本概念
  • 深入理解指针2:数组名理解、一维数组传参本质、二级指针、指针数组和数组指针、函数中指针变量
  • C++设计模式:桥模式(五)
  • C#的Thread.CurrentThread.IsBackground的作用
  • STM32一个地址未对齐引起的 HardFault 异常
  • Golang | Leetcode Golang题解之第8题字符串转换整数atoi
  • 【游戏逆向】游戏全屏捡物的实现
  • 【运输层】网络数据报协议 UDP
  • 指针的深入理解(六)
  • Prime Ring Problem(UVA 524)
  • 基于Springboot+Vue实现前后端分离酒店管理系统
  • 常规的k8s的监控指标
  • 3.7、@ResponseBody 和 @RestController
  • 5、React组件事件详解
  • Android优雅地处理按钮重复点击
  • Bootstrap JS插件Alert源码分析
  • CSS进阶篇--用CSS开启硬件加速来提高网站性能
  • css系列之关于字体的事
  • HTTP中GET与POST的区别 99%的错误认识
  • Java 多线程编程之:notify 和 wait 用法
  • Js基础知识(一) - 变量
  • LeetCode541. Reverse String II -- 按步长反转字符串
  • log4j2输出到kafka
  • Python_OOP
  • Python学习之路13-记分
  • Redis 懒删除(lazy free)简史
  • Xmanager 远程桌面 CentOS 7
  • 等保2.0 | 几维安全发布等保检测、等保加固专版 加速企业等保合规
  • 第13期 DApp 榜单 :来,吃我这波安利
  • 技术攻略】php设计模式(一):简介及创建型模式
  • 力扣(LeetCode)22
  • 使用Maven插件构建SpringBoot项目,生成Docker镜像push到DockerHub上
  • 学习笔记:对象,原型和继承(1)
  • 异常机制详解
  • 用 Swift 编写面向协议的视图
  • const的用法,特别是用在函数前面与后面的区别
  • raise 与 raise ... from 的区别
  • # AI产品经理的自我修养:既懂用户,更懂技术!
  • #include<初见C语言之指针(5)>
  • (1)虚拟机的安装与使用,linux系统安装
  • (2)leetcode 234.回文链表 141.环形链表
  • (7)摄像机和云台
  • (javascript)再说document.body.scrollTop的使用问题
  • (Redis使用系列) Springboot 实现Redis消息的订阅与分布 四
  • (附源码)springboot建达集团公司平台 毕业设计 141538
  • (六)vue-router+UI组件库
  • (十六)一篇文章学会Java的常用API
  • (四)搭建容器云管理平台笔记—安装ETCD(不使用证书)
  • (一)、python程序--模拟电脑鼠走迷宫
  • (一)插入排序
  • (转)C语言家族扩展收藏 (转)C语言家族扩展
  • (转)四层和七层负载均衡的区别