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

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

相关文章:

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

【数据交换格式】网络socket编程温度采集智能存储与上报项目技术------JSON、TLV

作者简介: 一个平凡而乐于分享的小比特,中南民族大学通信工程专业研究生在读,研究方向无线联邦学习 擅长领域:驱动开发,嵌入式软件开发,BSP开发 作者主页:一个平凡而乐于分享的小比特的个人主页…...

IP地址定位技术在各领域的作用

IP地址定位是通过确定IP地址的物理位置来定位一个设备的技术,它在现代社会的多个领域中都有着广泛的应用。以下将详细探讨IP地址定位的应用场景,以期对读者有所启发。 首先,在网络安全领域,IP地址定位发挥着至关重要的作用。网络…...

代码随想录 538. 把二叉搜索树转换为累加树

题目 给出二叉 搜索 树的根节点,该树的节点值各不相同,请你将其转换为累加树(Greater Sum Tree),使每个节点 node 的新值等于原树中大于或等于 node.val 的值之和。 提醒一下,二叉搜索树满足下列约束条件&a…...

JavaWeb--前端--01HTML和CSS

文章目录 1 前端开发介绍2 开发工具3 文档查阅4 VSCode的插件 1 前端开发介绍 Web标准也称为网页标准,由一系列的标准组成,大部分由W3C( World Wide Web Consortium,万维网联盟)负责制定。由三个组成部分:…...

Oracle SQL中的DECODE函数与NVL函数:区别与应用场景详析

Oracle SQL中的DECODE函数与NVL函数:区别与应用场景详析 引言1. NVL函数简介与使用示例2. DECODE函数简介与使用示例3. NVL与DECODE函数的区别4. 使用场景举例结论 引言 在Oracle数据库开发和数据分析过程中,DECODE函数和NVL函数都是非常实用且常见的工具…...

算法设计与分析实验报告c++实现(N皇后问题、卫兵布置问题、求解填字游戏问题、图的m着色问题)

一.N皇后问题 基本原理和思路: 从一条路往前走,能进则进,不能进则退回来,换一条路再试。在包含问题的所有解的解空间树中,按照深度优先搜索的策略,从根结点出发深度探索解空间树。当探索到某一…...

深入探索Linux中的libgdbus:GDBus库的应用和实现

引言 在Linux系统中,DBus是一种高效的进程间通信(IPC)机制,广泛应用于桌面环境和系统服务之间的通信。GDBus是基于GLib库的DBus实现,作为libgdbus的一部分提供。它旨在提供一种简洁、高效的方式来实现DBus通信。通过深…...

MacOS下Qt 5开发环境安装与配置

最近笔者在MacOS中使用Qt Creator开发Qt程序时遇到了一些问题,在网上查了不少资料,都没有找到解决方案,只有自己进行研究摸索了,今天晚上终于将目前遇到的问题全部解决了,特记录下来分享给大家。 笔者使用的是MacOS 1…...

jquery 实现倒计时

$(".tableText").click(function () { var time 60; var timer setInterval(function(){ time--; $(".tableText").text("("time"秒)重发"); if(time0){ clearI…...

MYSQL 5.7重置root密码

Mysql 5.7重置root密码 如果您忘记了MySQL 5.7的root密码,可以通过以下步骤重置: 停止MySQL服务。在命令行中输入以下命令: systemctl stop mysqld启动MySQL服务并跳过授权表。在命令行中输入以下命令: mysqld_safe --skip-gra…...

博客永久链接与计数

概述 工欲善其事,必先利其器。 对自己的博客不好用不满意很久了,但是这几年太懒。想趁着放假弄一下吧,发现几年没动,版本升级后很多东西变了,折腾了一下午效果不太理想。先记录一下。 问题 博客链接中有中文&#x…...

基于 RisingWave 和 ScyllaDB 构建事件驱动应用

概览 在构建事件驱动应用时,人们面临着两大挑战:1)低延迟处理大量数据;2)实现流数据的实时摄取和转换。 结合 RisingWave 的流处理功能和 ScyllaDB 的高性能 NoSQL 数据库,可为构建事件驱动应用和数据管道…...

mysql8.0高可用集群架构实战

MySQL :: MySQL Shell 8.0 :: 7 MySQL InnoDB Cluster 基本概述 InnoDB Cluster是MySQL官方实现高可用读写分离的架构方案,其中包含以下组件 MySQL Group Replication,简称MGR,是MySQL的主从同步高可用方案,包括数据同步及角色选举Mysql Shell 是InnoDB Cluster的管理工具,用…...

GRE/MGRE详解

GRE GRE:通用路由封装,是标准的三层隧道技术,是一种点对点的隧道技术; 该技术可以实现不同的网络之间安全的访问; 如上:可以使用该技术搭建一条专线,实现公司A与分公司A1之间相互通信&#xf…...

蓝桥杯(填空题)

十四届 B组 日期统计(暴力枚举) 数据 5 6 8 6 9 1 6 1 2 4 9 1 9 8 2 3 6 4 7 7 5 9 5 0 3 8 7 5 8 1 5 8 6 1 8 3 0 3 7 9 2 7 0 5 8 8 5 7 0 9 9 1 9 4 4 6 8 6 3 3 8 5 1 6 3 4 6 7 0 7 8 2 7 6 8 9 5 6 5 6 1 4 0 1 0 0 9 4 8 0 9 1 2 8 5 0 2 5 3…...

vim快捷指令

Vim是一款强大的文本编辑器,它提供了许多快捷指令来提高编辑效率。以下是一些常用的Vim快捷指令: 移动光标: h 向左移动一个字符j 向下移动一行k 向上移动一行l 向右移动一个字符w 跳到下一个单词的开头b 跳到前一个单词的开头e 跳到当前单词…...

LINUX 下IPTABLES配置详解

-t<表>&#xff1a;指定要操纵的表&#xff1b; -A&#xff1a;向规则链中添加条目&#xff1b; -D&#xff1a;从规则链中删除条目&#xff1b; -i&#xff1a;向规则链中插入条目&#xff1b; -R&#xff1a;替换规则链中的条目&#xff1b; -L&#xff1a;显示规则链中…...

CentOS 网卡ifcfg-eth0 ping不通外网(www.baidu.com)

1、如果确认好就直接激活网卡&#xff01; ifup eth0 2、慢慢找&#xff1a; cd /etc/sysconfig/network-scripts/ ls 找到你的网卡是啥&#xff0c;这里网卡是 ifcfg-eth0 执行1就好了&#xff01;...

【C++】类和对象②(类的默认成员函数:构造函数 | 析构函数)

&#x1f525;个人主页&#xff1a;Forcible Bug Maker &#x1f525;专栏&#xff1a;C 目录 前言 类的6个默认成员函数 构造函数 概念 构造函数的特性及用法 析构函数 概念 析构函数的特性及用法 结语 前言 本篇主要内容&#xff1a;类的6个默认成员函数中的构造函…...

Pinyin-pro 3.15.1版本避坑指南:老项目兼容性问题解决方案

Pinyin-pro 3.15.1版本避坑指南&#xff1a;老项目兼容性问题解决方案 在技术迭代飞快的今天&#xff0c;前端开发者常常面临一个尴尬局面&#xff1a;新发布的工具库在功能上令人惊艳&#xff0c;却因为底层依赖或语法特性与老项目环境不兼容而无法直接使用。Pinyin-pro作为中…...

终极指南:Laravel DataTables 性能优化实战——不同场景下的表现对比

终极指南&#xff1a;Laravel DataTables 性能优化实战——不同场景下的表现对比 【免费下载链接】laravel-datatables jQuery DataTables API for Laravel 4|5|6|7|8|9|10 项目地址: https://gitcode.com/gh_mirrors/la/laravel-datatables Laravel DataTables 是一款强…...

告别重复造轮子:用快马AI一键生成高复用性imToken集成代码模块

告别重复造轮子&#xff1a;用快马AI一键生成高复用性imToken集成代码模块 开发涉及钱包集成的DApp时&#xff0c;最让人头疼的就是那些重复性的基础代码。每次新项目都要重新写一遍连接钱包、处理授权、监听网络切换的逻辑&#xff0c;不仅浪费时间&#xff0c;还容易引入安全…...

如何使用usearch构建精准视频内容推荐系统:基于观看历史的向量匹配方案

如何使用usearch构建精准视频内容推荐系统&#xff1a;基于观看历史的向量匹配方案 【免费下载链接】usearch Fast Open-Source Search & Clustering engine for Vectors & Arbitrary Objects in C, C, Python, JavaScript, Rust, Java, Objective-C, Swift, C#, GoL…...

GLM-4.1V-9B-Base多场景落地:医疗影像辅助描述、零售货架识别、文旅导览图解

GLM-4.1V-9B-Base多场景落地&#xff1a;医疗影像辅助描述、零售货架识别、文旅导览图解 1. 模型介绍 GLM-4.1V-9B-Base是智谱开源的一款视觉多模态理解模型&#xff0c;专门针对图像内容识别、场景描述和目标问答等任务进行了优化。这个模型特别擅长处理中文视觉理解任务&…...

Qt, C++数据类型扩展问题

Qt项目中ObjectDic类的类型扩展与代码优化 前言 在Qt项目开发中&#xff0c;我们经常会遇到需要处理不同类型数据的情况&#xff0c;尤其是当涉及到负数时&#xff0c;类型的选择就显得尤为重要。本文将详细介绍如何在Qt项目中扩展ObjectDic类的类型支持&#xff0c;从无符号整…...

Python新手福音:借助快马AI零基础构建你的第一个行情网站

作为一个刚接触Python的新手&#xff0c;想要构建一个行情网站听起来可能有点吓人。但通过InsCode(快马)平台的AI辅助&#xff0c;整个过程变得异常简单。下面我就分享一下自己从零开始搭建第一个行情网站的经历。 数据获取部分 首先需要找到一个免费的金融数据接口。我选择了一…...

别再踩坑了!Django Ckeditor配置全指南:从基础使用到高级定制(2023最新版)

Django Ckeditor实战手册&#xff1a;2023年高效配置与深度定制技巧 如果你正在为Django项目寻找一个功能强大且可定制的富文本编辑器&#xff0c;Ckeditor无疑是最佳选择之一。但配置过程中那些令人头疼的兼容性问题、图片上传失败、工具栏自定义困难&#xff0c;确实让不少开…...

Kindle漫画转换终极方案:如何解决电子阅读器上的格式兼容性问题

Kindle漫画转换终极方案&#xff1a;如何解决电子阅读器上的格式兼容性问题 【免费下载链接】kcc KCC (a.k.a. Kindle Comic Converter) is a comic and manga converter for ebook readers. 项目地址: https://gitcode.com/gh_mirrors/kc/kcc 你是否曾经尝试在Kindle上…...

别再为日期格式头疼了!Oracle TO_TIMESTAMP函数保姆级使用指南(含常见报错解决)

Oracle TO_TIMESTAMP实战&#xff1a;从混乱字符串到精准时间戳的避坑指南 刚接手一个数据迁移项目时&#xff0c;我对着几十万条格式各异的日期记录发愁——有"2023/12/01"这样的斜杠分隔&#xff0c;也有"01-Dec-23 14.30.00.123"带英文月份缩写和毫秒的…...