常用流媒体服务器

news2024/11/13 9:32:47

1、Mediasoup

mediasoup是相对比较新的一个WebRTC服务器端的开源项目。它更多是通过集成包方式和其他应用服务器来集成。它支持SFU模式,主要支持视频聊天,媒体流广播等。

 其特点是:

通过底层API实现和第三方集成,安装简单,文档齐全,技术支持相对较弱,功能支持比较单一。2、Jitsi开源视频会议

        Jitsi 平台是非常活跃的开源视频会议平台,其对标的视频会议产品是zoom,Google meet等视频会议平台。其视频会议功能意见非常完善,包括终端,服务器端,会议桥和录像,屏幕共享,即时消息,SIP网关接入/电话入会等功能。

其基本特点:

        功能完整,文档齐全,技术支持完善,提供很多自定义的接口,快速部署,SFU, 开发语言(java, lua)非常庞大,安装的服务和界面管理系统配置文件比较多,源代码安装相对比较复杂。

3、WebRTC媒体服务器

        WebRTC技术最初的使用架构是点对点的(浏览器之间的)通信,这也是其非常强大的一个优势,用户无需安装任何第三方插件自己和对端进行通信。但是,随着技术本身的不断发展和业务场景的复杂程度越来越高,用户场景中就需要一个WebRTC服务器端,媒体服务器或者WebRTC网关来进行媒体,信令管理或者转换处理。因此,市场上逐渐出现了各种针对WebRTC应用场景发布的一些开源的WebRTC服务器端开源项目。

另外,根据视频会议是WebRTC的主要卖点,因此关于WebRTC的处理方式,很多开源媒体服务器的架构有有所不同,有的服务器端支持MCU方式,有的支持SFU方式,还有的WebRTC服务器支持混合方式。

        根据很多数据说明,在浏览器和云平台或者大容量的部署中,很多集成商选择了SFU模式,以便能够充分拓展,降低服务器的处理负载。当然,也有用户选择MCU的方式可以非常方便集中控制其服务器处理流程。两种方式各有其优缺点,这取决于用户使用场景和自己的集成方式。

        除了基于WebRTC的视频会议以外,WebRTC媒体服务器还可以支持各种流媒体的推送服务和直播等场景,还有和SIP对接集成的功能。因此,很多时候,WebRTC服务器端也可以作为一个WebRTC网关来使用,实现和传统PSTN电话系统的集成对接,实现信令转换处理。例如,通过Asterisk/WebRTC/SIP/FXO呼入呼出等场景。

4、Janus

        Janus是比较早期的WebRTC 服务器端的开源项目,官方对其定义是一个WebRTC服务器端,支持的功能比较丰富,通过core模块来支持不同的插件的方式。开发语言(C语言),代码架构比较清晰,支持了SIP 接口(补丁后的sofia)。

其特点是:

        通过强大的core模块实现对插件的拓展,支持SFU模式,客户端集成相对比较简单,团队相对比较小,社区支持较弱。

5、Licode

        Licode是一个开源的WebRTC通信平台,提供了服务器端和客户端完整的产品配套。它支持视频会议,用户房间管理等非常灵活的功能,支持MCU模式。目前没有看到界面管理系统发布。

其特点是:

        安装配置相对比较简单,专注于视频会议,房间功能开发相对比较灵活,完全WebRTC支持。社区支持较弱,视频会议拓展方式实现,目前没有看到无SIP接口

6、其他开源第三方WebRTC网关

        除了以上几种独立的WebRTC媒体服务器以外,比较热门的基于语言的开源平台也逐渐发力,不断增加对WebRTC能力的支持。其中,Asterisk(SFU)和FreeSWITCH(MCU)都已经发布了多个版本支持WebRTC的视频会议功能,很多第三方集成商也在其平台逐渐增加了WebRTC的支持,通过第三方的sip.js 客户端实现企业级的视频会议功能。Kamailio也可以作为一个WebRTC网关服务器端实现WebRTC/SIP之间的信令处理。

        还有另外一种方式是使用WebRTC 媒体服务器集成Asterisk或者FreeSWITCH实现WebRTC的呼叫中心,融合通信跨平台解决方案。

         因为,Asterisk和FreeSWITCH都是实现的媒体服务器功能,因此在WebRTC的实现上没有太多的区别。因为,本身Asterisk或FreeSWITHC可以支持SIP/PSTN,这两个媒体服务器和WebRTC平台集成相对更加简单。

7、red5pro

        Red5 Pro专注于视频直播和媒体流转发处理的WebRTC媒体服务器,支持服务器端和客户端SDK开发,支持的编码方式比较多。

         其特点是:流媒体直播功能比较丰富,支持多种客户端文档和社区支持相对较弱。

8、Ant-媒体服务器

        Ant-Media-Server是从red5pro 克隆出来的开源项目,也支持了一个企业版的项目,它目前支持两个不同的版本:开源版本和企业版本。它支持SFU模式,目前支持了比较多的应用功能,并且支持了很多非常灵活的针对拓展功能,带宽调整优化,低延时等功能。更多应用在视频直播等场景中。

其特点是:

        支持拓展方式,支持对各种编码,环境进行调整优化,实时录像支持(MP4和HLS),支持对社交媒体平台的媒体推送等,企业版本支持了很多非常实用的功能。

        社区版本支持的功能有限,企业版本功能相对比较多,用户选择操作困难。

        以上这些服务器端本身都有各自的特点和开发的目标,因此有一些服务器端不一定完全能够满足用户自己的需求,用户需要根据其特性和自己的场景来加以取舍,最终需要用户根据WebRTC 服务器端的产品定位,功能,支持能力和自己的需求来决定选用哪种服务器。

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

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

相关文章

java自学第一天

1.1.体系: JavaSE(J2SE)(Java2 Platform Standard Edition,java平台标准版) JavaEE(J2EE)(Java 2 Platform,Enterprise Edition,java平台企业版) JavaME(J2ME)(Java 2 Platform Micro Edition&a…

如何提高代码交付效率,完成代码交付应用自动化?

为了提高代码交付效率,完成代码交付应用自动化,CoCode旗下Co-Project V2.5.0智能项目管理平台全新发布,新增CI/CD功能:Co-DevOps。 Co-DevOps是 CoCode 全新开发出的一项CI/CD功能,提供持续集成、持续交付(…

六轴工业机器人

连杆原理 符号中文名含义aaa连杆长度两个相邻关节轴之间的公垂线的长度α\alphaα连杆转角两个相邻关节间轴之间形成的角度,右手定则前一个轴到后一个轴ddd连杆偏距两个相邻连杆之间的距离,高度差θ\thetaθ关节角两个相邻杆绕公共关节轴旋转的角度 机…

TypeScript-01基础知识

目录 一、ts与es、js之间的关系 二、TypeScript与JavaScript之间的区别 三、安装TypeScript编译器 四、执行typescript的步骤 五、ts的数据类型 1、类型别名 2、接口 接口 与 类型别名 的区别 3、类型断言 4、文字类型 不常用枚举、bigint、symbol 六、类型缩小 1、…

Linux socket 编程 UDP

套接字:操作系统向上层提供的用于实现网络通信的统称 网络通信其实本质上就是两台主机之间的通信其中一段是客户端,另一端是服务器 客户端:用户的一端,客户端是主动发出请求的一端 服务端:针对用户请求提供服务的一端…

Linux 进程控制

🧑‍💻进程控制 🧑‍💻 文章目录🧑‍💻进程控制 🧑‍💻一、进程创建1. fork函数2. fork常规用法3. fork创建子进程操作系统都做了什么?4. 写时拷贝5. 父子进程代码的共享…

String(二)————迭代器及相关接口使用

目录 string构造接口(Construct string object) string的元素访问(读写) 迭代器 string构造接口(Construct string object) string相比于C语言的字符数组要好用的多,无论是在初始化还是在读写…

排序5:直接选择排序

目录 排序思想: 演示图: 代码实现 总结: 排序思想: 在元素集合array[i]--array[n-1]中选择关键码最大(小)的数据元素 若它不是这组元素中的最后一个(第一个)元素,则将它与这组元素中的最后一个(第一个…

SpringMVC---->自我实现底层机制(吃透springMVC)

目录 配套代码在资源中(免费) maven环境搭配 注解注入的规范: 一.开发HongDisptcherServlet前端控制器 1.说明: 2.配置web.xml文件 3.检查前期工作是否成功 二.完成客户端/浏览器请求控制层 1.创建 自己的 Controller 和…

【HTML+CSS+JS】模仿QQ登录界面

目录前言简介布局思路相关代码颜色渐变动画头像表单区域JS相关总结前言 学了HTML、CSS和JS有了一个月了,JS还未学完,偷懒写一个小项目,用了一个下午,顺便巩固一下所学知识。(内容比较简陋,适合新手&#x…

基于火鹰优化算法的函数寻优算法

文章目录一、理论基础1、火鹰优化算法2、FHO算法伪代码二、仿真实验与结果分析三、参考文献一、理论基础 1、火鹰优化算法 文献[1]提出了火鹰优化算法(Fire Hawk Optimizer, FHO)作为一种新的元启发式算法,该算法基于啸鸢、麻鹰和褐隼的觅食行为,这些鸟…

【网络原理】网络编程Socket套接字基础知识汇总

目录 1.网络初始: 2.网络编程: 3.UDP数据报套接字: 4.TCP流套接字: 1.网络初始: 局域网(LAN)广域网(WAN)IP地址用于定位主机的网络地址。端口号可以标识主机中发送数…

数据结构六:堆

前言:上一篇我们讲了二叉树,你知道吗?堆的底层是一棵完全二叉树。这样说会不会就会觉得熟悉了。 目录 1.堆的概念及存储方式 2:堆的创建 2.1:向下调整 3.堆的插入和删除 3.1:堆的插入 3.2:堆的删除 …

基于Web的商城后台管理系统的设计与实现

🎉精彩专栏推荐 💭文末获取联系 ✍️ 作者简介: 一个热爱把逻辑思维转变为代码的技术博主 💂 作者主页: 【主页——🚀获取更多优质源码】 🎓 web前端期末大作业: 【📚毕设项目精品实战案例 (10…

Oracle和MySQL查询所有的表信息和字段信息

Oracle和MySQL查询所有的表信息和字段信息1. MySQL1.1 查询表1.2 查询字段1.2.1 方式1->SHOW FULL COLUMNS1.2.2 方式2->information_schema.COLUMNS1.3 查表和字段1.4 查表和字段-->转程Oracle需要的数据类型2. Oracle2.1 查表和字段的单表查询2.2 整理查表和字段的s…

超详细的JUnit单元测试介绍

前言 本文为JUnit单元测试相关知识,下边将对JUnit单元测试概念,JUnit优点,JUnit安装与使用,JUnit运行流程与常用注解,JUnit测试套件使用及参数化设置,JUnit断言等进行详尽介绍~ 📌博主主页&…

大数据Hadoop之——Apache Hudi 与 Presto/Trino集成

文章目录一、概述二、Trino 环境部署1)安装JDK2)安装python3)安装Trino1、下载解压并配置环境变量2、修改配置3、启动服务4、测试验证三、在Hive中创建表关联Hudi表1)添加jar包2)创建库表关联Hudi四、Hudi 与 Trino集成…

SpringCloud Alibaba系列 Sentinel(三)

高并发下的微服务容错方案? 限流、熔断、降级 1:限流 在高并发系统中一定要用,高并发的所有请求进来,不是让每个请求都打到后台集群的,后台集群有它的消费能力,应该在它消费能力之内放行请求,…

Hadoop HA集群全是standBy解决办法

文章目录原理解决方案原理 hadoop集群配置HA后,会存在多个namenode,但是同一时间仅有一台NN为Active的状态,其他NN都是StandBy的状态。 上图是hadoop集群配置HA的原理图,从上图我们可以看到多个NN的状态切换,是依靠Z…

linux命令与makefile学习

linux命令与makefile学习文件权限通配符*常用命令makefilegcc与g区别:Linux上有一句话:一切皆文件 普通文件 “-” 目录文件 “d” (directory) 管道文件 “p” (piping) 链接文件“l” (li…