freeswitch编译mod_av支持webrtc MCU通话

系统环境
一、FS相关网站
二、第三方库安装
1.apt安装
2.指定版本sofia-sip安装
3.指定版本spandsp安装
4.指定版本libks安装
5.指定版本openssl安装
三、指定版本FS安装
1.CPPFLAGS配置
2.编译器版本
3.FS配置编译
四、FS,fs_cli运行,模块加载
附录
1.安装包,FS,编译好的两个浏览器客户端压缩包
2.video-demo和Verto Communicator的github地址
3.demo相关WIKI
4.freeswitch微信交流群
扉页

系统环境

lsb_release -a

No LSB modules are available. Distributor ID: Ubuntu
Description: Ubuntu 22.10 Release: 22.10 Codename: kinetic

uname -a

Linux yqw-Lenovo-XiaoXinPro-13ARE-2020 6.2.0-37-generic
#38~22.04.1-Ubuntu SMP PREEMPT_DYNAMIC Thu Nov 2 18:01:13 UTC 2 x86_64 x86_64 x86_64 GNU/Linux

一、FS相关网站

FS中文社区http://freeswitch.org.cn/blog/2023/08/use_srs/
FS官网https://signalwire.com/freeswitch
FS官方WIKI:https://developer.signalwire.com/freeswitch/
FS官方github:https://github.com/signalwire/freeswitch

二、第三方库安装

1.apt安装

sudo apt install libtool-bin
sudo aptitude install libtiff-dev
sudo aptitude install libsqlite3-dev sqlite3
sudo aptitude install libpcre3-dev
sudo aptitude install libspeexdsp-dev
sudo apt install libldns-dev
sudo apt-get install libedit-dev
sudo apt-get install -y yasm nasm libavformat-dev libswscale-dev

2.安装sofia-sip

git clone https://github.com/freeswitch/sofia-sip.git
cd sofia-sip
git rest --hard 6198851a610b7889c17e2d98fb84617bc1dd7aec
./bootstrap.sh -j
./configure
make
make install

3.安装spandsp

git clone https://github.com/freeswitch/spandsp.git
cd spandsp
git reset --hard 0d2e6ac65e0e8f53d652665a743015a88bf048d4
./bootstrap.sh -j
./configure
make
sudo make install
ldconfig

4.libks安装

git clone https://github.com/signalwire/libks.git
git reset --hard 940d659c583b255a96cac77e7e9fe62195c40e0b
cmake 
make
sudo make install

5.openssl安装
需要先卸载本身的openssl
openssl-1.1.1v,官方下载地址,版本3会有问题。
https://www.openssl.org/source/

//https://github.com/signalwire/signalwire-c.git
//applications/mod_signalwire前的#删除

不需要装libav,因为已经执行如下命令
sudo apt-get install -y yasm nasm libavformat-dev libswscale-dev

三、FS安装

1.CPPFLAGS配置

export CPPFLAGS="-Wno-array-parameter -Wno-error=deprecated-declarations -Wno-error=array-bounds -Wno-error=maybe-uninitialized -Wno-error=switch -Wno-error=format-overflow -Wno-error=address -Wno-error=stringop-truncation"

2.编译器版本
gcc/g++ version 11.4.0 (Ubuntu 11.4.0-1ubuntu1~22.04)
3.FS配置编译

git clone https://github.com/signalwire/freeswitch.git
git reset --hard 4cb05e7f4a23645ec387f3b5391194128be7d193

//或者在github,tag里下载freeswitch-1.10.10,以上master提交版本也属于1.10.10

sudo vim modules.conf
//applications/mod_av前的#删除
./bootstrap.sh && ./configure && make -j20
sudo make install
//sudo make sounds-install sudo make moh-install 
//sudo make hd-sounds-install    sudo make hd-moh-install
//cd src/mod/applications/mod_av && make && make install 

四、FS,fs_cli运行,模块加载

sudo ./freeswitch -nc -nonat //如果想看日志不加后面两个参数
sudo ./fs_cli
load mod_av
load mod_verto

附录:

1.安装包,FS,编译好的两个浏览器客户端压缩包
2.video-demo和Verto Communicator两个demo github
3.demo相关WIKI
编译参考1
编译2和打电话慢配置
编译参考3
Verto Communicator-WIKI
mod_verto-WIKI
mod_conference(conference.conf.xml–WIKI)
如何在FreeSWITCH中对接SRS
Verto Documentation
FS各种库集合
FS增加h264

扉页

sudo apt-get install gcc-10
sudo apt-get install g+±10
sudo ln -sf /usr/bin/gcc-10 /usr/bin/gcc
sudo ln -sf /usr/bin/g+±10 /usr/bin/g++

freeswitch-1.8.7自带的sip库不匹配源码
v1.10(git clone拉)和libav都是最新的,依然有codecpar和codec问题
git clone https://freeswitch.org/stash/scm/sd/libav.git
v1.10.0/1.8.7配libav11.12有以下问题,但实际libks已装
You must install libks to build mod_signalwire。 停止。

wget -c http://files.freeswitch.org/downloads/libs/libav-12.tar.bz2

freeSWITCH自1.6之后,支持视频MCU了

笔者下载的linphone4.3版本,注册终端(注意使用h264编码) 呼叫 3500 ,再使用不同的账号注册后呼叫3500,这样视频会议就开始了。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/207592.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

word一键接受所有修订并保留修订痕迹

目的:让word修订插入的内容在接受修订后保留痕迹。 文章目录 目的:让word修订插入的内容在接受修订后保留痕迹。1. 打开批注的word文件2. 同时按住:*AltF11*,然后右键:Normal -->插入--> 模块3. 在出现的代码框中…

代码随想录算法训练营第五十九天【单调栈part2】 | 503.下一个更大元素II、42. 接雨水

503.下一个更大元素II 题目链接 力扣(LeetCode)官网 - 全球极客挚爱的技术成长平台 求解思路 重点在如何处理循环数组。 方案一: 直接将两个数组拼接在一起,然后使用单调栈求下一个最大值。 方案二: 在遍历的过…

elementUI中的 “this.$confirm“ 基本用法,“this.$confirm“ 调换 “确认“、“取消“ 按钮的位置

文章目录 前言具体操作总结 前言 elementUI中的 "this.$confirm" 基本用法&#xff0c;"this.$confirm" 调换 "确认"、"取消" 按钮的位置 具体操作 基本用法 <script> this.$confirm(这是数据&#xff08;res.data&#xff0…

使用ASIRequest库进行Objective-C网络爬虫示例

在Objective-C中&#xff0c;ASIHTTPRequest是一个非常受欢迎的库&#xff0c;用于处理HTTP请求。它可用于下载网页内容&#xff0c;处理API请求&#xff0c;甚至进行复杂的网络交互。下面是一个简单的示例&#xff0c;展示了如何使用ASIHTTPRequest库来爬取网页代码。 首先&a…

使用项目管理工具进行新媒体运营管理的策略与方法

使用Zoho Projects项目管理工具&#xff0c;新媒体运营可轻松驾驭从策划选题、撰写到排期发布的全流程。运用项目管理工具对新媒体运营进行精细化管理&#xff0c;助力团队更高效地规划、执行和追踪各项任务与活动。 以下是运用项目管理工具管理新媒体运营的妙招&#xff1a; 1…

oracle 下载java之前版本

登录oracle官网&#xff1a;Oracle | Cloud Applications and Cloud Platform 点击resource 进入该页面 点击这个 出现之前版本

初识Linux:权限(2)

目录 权限 用户&#xff08;角色&#xff09; 文件权限属性 文件的权限属性&#xff1a; 有无权限的区别&#xff1a; 身份匹配&#xff1a; 拥有者、所属组的修改&#xff1a; 八进制的转化&#xff1a; 文件的类型&#xff1a; x可执行权限为什么不能执行&#xf…

03DockerFile

03DockerFile 1.DockerFile的概念 用来构建docker​镜像的构建文件,由一系列参数和命令构成的脚本 大体总览: ​​ ‍ 1.构建过程 要遵循的规则: ​​ 2.执行流程 ‍ ‍ ‍ ‍ ‍ ‍ ‍ ‍ ‍ ‍ ‍ ‍ ‍ ‍ ‍ ‍ ‍ ‍ ‍ ‍

Java并发编程指南:实现高效并发操作

引言&#xff1a; 在当今的软件开发领域&#xff0c;多核处理器的普及使得并发编程成为了一个重要的话题。并发编程是指多个线程同时执行不同的任务&#xff0c;以提高程序的性能和响应能力。然而&#xff0c;并发编程也带来了一系列的挑战&#xff0c;如线程安全、死锁等问题。…

Docker安装postgres最新版

1. postgres数据库 PostgreSQL是一种开源的关系型数据库管理系统&#xff08;RDBMS&#xff09;&#xff0c;它是一种高度可扩展的、可靠的、功能丰富的数据库系统。以下是关于PostgreSQL的一些介绍&#xff1a; 开源性&#xff1a;PostgreSQL是一个开源项目&#xff0c;可以…

如何检查代理和防火墙设置

这样的错误可能会突然出现在个人计算机屏幕上&#xff0c;当访问您喜爱的网站时。这是什么原因&#xff0c;如何快速解决这个问题&#xff1f;我们将弄清楚如何检查。 关于访问问题 对网站的访问受阻实际上是一个非常常见的错误&#xff0c;它既可能是由于物理原因&#xff08…

Linux高级管理-搭建网站服务

在Ihternet 网络环境中&#xff0c;Web 服务无疑是最为流行的应用系统。有了Web站点&#xff0c;企业可以充分 展示自己的产品&#xff0c;宣传企业形象。Web站点还为企业提供了与客户交流、电子商务交易平台等丰富 的网络应用。部署与维护Web 服务是运维工程师必须掌握的一个技…

Launcher3 一键改变Icon Shape 原理浅析

Launcher3 一键改变Icon Shape 原理浅析 在Android O Launcher3 Google 团队增加了一个新特性&#xff0c;可以在设置里面更改 桌面Icon 形状&#xff0c;分别可以改为系统默认、方形、方圆形、圆形、泪珠形。 在Android P Launcher3 Google团队继续保持这一神奇特性&#xff0…

python中的下划线

本文介绍了Python中单下划线和双下划线的5种表现形式&#xff0c;以及一些使用方法。其中有一些含义仅仅是依照约定&#xff0c;被视作是对程序员的提示&#xff0c;而有一些含义是由Python解释器严格执行的。 单前导下划线&#xff1a;_var单末尾下划线&#xff1a;var_双前导…

PHP介绍及安装

一、PHP语言介绍 1. PHP是一种用于创建动态交互性网站的服务器端脚本语言。PHP文件通常包含HTML标签和一些PHP脚本代码,这些PHP代码可以放置在文档的任意位置。 2. PHP文件是什么 PHP文件是一种包含有效的HTML、JavaScript代码和PHP代码的文件。PHP代码在服务器上执行,并将…

《网络弹性法案》协议达成,欧盟立法进一步临近实施

欧盟的《网络弹性法案》规定了所有硬件和软件的强制性网络安全要求 《网络弹性法案》&#xff08;CRA&#xff09;是欧洲议会和欧洲理事会就即将实施的重要立法达成的政治协议。该法案于 2022 年 9 月由欧洲委员会首次提出&#xff0c;旨在提高数字产品的网络安全&#xff0c;造…

离高薪测试你可能只差这个理解:python 内存管理机制

近期有小伙伴跟我反馈 &#xff0c;面试有遇到面试官问 python 内存管理机制相关的问题&#xff0c;因为之前没有特地的去了解过&#xff0c;所以不知道怎么回答。 所以今天就专门写了这篇 python 内存管理机制的文章&#xff0c;来给大家系统的梳理一下内存管理机制的知识点&…

访问控制技术

访问控制是在身份认证的基础上&#xff0c;根据不同身份的用户对用户的访问请求加以限制。身份认证关心的是“你是谁&#xff0c;你是否拥有你所声明的身份”这个问题&#xff1b;而访问控制则关心“你能做什么&#xff0c;不能做什么”的问题。 在访问控制过程中&#xff0c;一…

1.查看表的基本结构,表的详细结构和修改表名

查看表的基本结构,表的详细结构和修改表名 1.查看数据表基本结构 有强迫症或健忘症的小伙伴们在建好数据库和表以后&#xff0c;通常会怀疑自己刚才是不是敲错了&#xff0c;怎么办&#xff1f;如果不是使用图形界面是不是就没法查看啦&#xff1f; 不存在的&#xff0c;这就…

大创项目推荐 医学大数据分析 - 心血管疾病分析

文章目录 1 前言1 课题背景2 数据处理3 数据可视化4 最后 1 前言 &#x1f525; 优质竞赛项目系列&#xff0c;今天要分享的是 &#x1f6a9; 基于大数据的心血管疾病分析 该项目较为新颖&#xff0c;适合作为竞赛课题方向&#xff0c;学长非常推荐&#xff01; &#x1f9…