各webrtc sfu对比

licode 是mcu的优秀方案,官方规定只能在Ubuntu14.04上部署,或者docker环境。最好使用它官方的docker不然编译大把问题,但是docker本身也增加性能损耗 对licode二次开发比较困难 代码笨重

janus sfu 音视频会议 双人端到端 直播推拉流 文字群聊 录制与播放 可以把音视频会议录制下来,也可以播放一个视频文件让大家看到 它的模块是插件化的,可以自己实现一个插件放进去 它比licode要轻量很多,插件可以随时弹出插入,常用的插件实现完备,满足一般需求,缺点:c语言+glic 不太好阅读,并发不是epoll,高并发性能有待考量

medooze 可以mcu和sfu,mcu商用看不到源码,sfu部分开源,node.js实现信令交互,c++实现服务器部分 使用poll作为异步处理,因此测试结果比janus并发性能弱(Linux端常见的select epoll poll,最高效的是epoll,window和Mac不同),使用客户端进行测试时会有卡顿情况,因为他的带宽评估做的不好

mediasoup node.js做信令 c++作为媒体服务器,两者之间使用管道进行通信 epoll处理 它会检测CPU有多少核充分负载平衡,是以上对性能做的最好的 它底层有个媒体库,有一个demo实现多人会议,如果要实现商用的话,需要自己根据媒体库实现,前提是有充分的人才理解他的媒体库,根据媒体库开发出自己的业务 因此他的完备性最不好,完备性licode最好,性能不错完备性不错的是janus

srs webrtc不支持aac
所以zlmediakit的webrtc不限制codec 支持264 265 aac 711 opus

补:
SIMcst 要上传三路分辨率 下行一路 声网用,一般用这个
SVC也有用的,zim,思科之类 分为核心层,扩展层,边缘层,有依赖关系,第一层码率很低也很模糊,同时它的分辨率也很小,每多来一层就更清晰一点,sfu发现接收端带宽不够就少发外层,再不够就再少发一层
两种方案不能混用

设备硬编解码不支持opus,软编解码耗资源
Opus支持编译可选浮点运算,可以根据cpu调整策略

猜你喜欢

转载自blog.csdn.net/weixin_43466192/article/details/125495371