我眼中的webrtc 写这篇文章的初衷,是因为这段时间面试,不少面试官一开头就直接问:webrtc是干嘛的?然后就是稀稀拉拉的问一堆问题,相关性都不太大。自己回答也就东一块 西一块,缺乏对webrtc完整的理解。刚好自己趁这个时间整理下,也算个总结 webrtc是什么概念呢?我认为就一句话:标准化了rtc的通信流程和协议。自从2017年webrtc提交1.0版后,从2018年开始特别是去年,它本身一句成为实时通...
rtc中需要哪种拥塞算法 拥塞控制是网络传输的核心,基本定义就是确定带宽大小。关于带宽的计算,我觉得下面一张图描述的比较准确这幅图的意思是这样的1)带宽(BDP)=rtt*btlbwbtlbw 表示在网络中的瓶颈带宽,就是最小带宽2)inflight data表示正在传输的数数据 btlbuffsize 表示网络中所有路由器缓存大小总和3)数据传输消耗的带宽可以分为三个阶段inflight d...
这段时间打算写的博客 疫情呆在家刚好总结下这一年的经验教训,打算写完下面几篇文章 列个提供先督促一下自己1)MCU的设计方案2) SFU的设计方案3)网络拥塞的几种方案对比4)SDP内容咋子WEBRTC里的具体对应...
MCU设计方案 今天读到一篇关于音视频边缘计算的帖子音视频合成的云边缘计算实现文章里有两个要点1)边缘计算 具体功能有:流合成 录像 水印 送审等功能 这些多数设计到需要对媒体数据做处理2)作者再部署的部署方案是自己搭建IDC 这样会面临多线的问题 多线机房比单线机房要贵很多 ,所以核心就是吧计算节点放在单线机房 多线主机尽量只承担SFU的功能3)有个核心的问题:就是媒体数据怎么路由到MCU...
某网校媒体后台实现猜测 疫情期间陪儿子上网课 顺道猜测了下后台的大概架构先上张网校截图,我标注了界面上大概的功能分区从界面分析,后台大概的数据分为以下几种1 主流 一般是代课老师的摄像头流2 辅助流 一般是带课老师电脑上课区的截屏 ,3 聊天区4 跨房价PK区5 其他富媒体 包括各种小游戏6 连麦 现在实现的连麦 只有音频连麦功能 完全能满足这种场景的需求7 答题网校...
licode中大小流方案 总体方案图如下大小流解决的核心是需要改造oneTomany,改造点如下publiser增加多个,并且要有角色之分,比如下Publiser m_BigPub;Publishe m_SmallPub;需要主要。在下面三个队列中,处于第一第二队列的一律用BIg的ssrc 赋值增加的subscreber要区分开,三个队列:大流 小流 大小流map<string,sub...
licode 的singlepc 模式是怎么回事? 最近在摸索webrtc 单机多流的情况,webrtc给出了标准planb的解决方法,在licode的forum中查找,已经明确表示不支持https://discourse.lynckia.com/t/typical-questions-for-licode/728第六条,表示在wip (work in progress)同时,licode提供了singlepc的模式,链接如下htt...
centos 安装openssl的开发库命令 RedHat Fedora 平台 yum -y install openssl-devel Debian ,ubunu 平台 apt-get install libssl-dev
怎么理解p2p 打洞 stun ICE SDP rtp 协议之间的关系(三) 放一张初步的Licode数据流图:这个只是数据从底层怎么流到上面的图,那么还有反方向的图在connection里有个有意思的函数:bool WebRtcConnection::createOffer(bool video_enabled, bool audioEnabled, bool bundle) { boost::mutex::scoped_lock lock(upda...
怎么理解p2p 打洞 stun ICE SDP rtp 协议之间的关系(二) 借用Licdoe的代码来分析下ICE的实现首先licode 用了两套ice库,不知道为啥,nicer 和Libnicer ,但感觉比较偏重于libnicer,所有着重以Libnice为主 二者分家的地方在 DtlsTransport类的构造函数中licode 的底层传输采用了dtls的协议,这块不着重分析,知道就可以了。下面开始第一个问题:ICE的线程模型ICE代码...
怎么理解p2p 打洞 stun ICE SDP rtp 协议之间的关系 首先推几篇基础文章什么叫打洞打洞标准化协议-stun打洞应用标准化-ice信令服务-sip补充协议-turn总体来讲,ICE协议是个整合了各个以上各种协议的一个大集合,如果需要传输媒体数据,就是在数据阶段来封装对应的rtp流,具体如下1)ICE会收集备用的地址,包括三类host: 本地地址server reflect addreess: stun 服务器发出...
licode(三):流媒体数据怎么转发 前端时间安装stun服务器,由于公司没有开外网的端口映射,所以没有搭建成功。但是单纯的stun服务器搭建成功了现在有两个问题:1)stun服务扮演什么角色?2)流媒体数据的传输方式3)erizo-controler的作用?首先回答问题2),上传一张wireshark的截图在这张图中,10.2.31.80是我搭建的Licode服务器,10.134.244.200是我本地的...
licode(二):安装stun和turn服务器 webrtc本身需要搭建stun和turn服务器,经过挑选后选择stunman和coturn 两个服务器,安装步骤对应如下coturn服务器安装boost库安装STUN服务安装安装coturn服务的时候需要注意1)需要外网ip,如果没有外网ip ,我现在都无法安装成功,一直出现端口绑定错误,好像是和这个有关系,还没有最后确认2)conturn本身包括了stun 服务,如果不...
licode(一) 调研了一个多月的webrtc 多人会议实现方式,最后选择Licode ,原因有二1)Licode的架构和我们视频通话的架构基本一致 nuve---controler----agent三级,中间通过mongodb来统一数据,实现分布式管理,和我们视频通话不同的是,它用了消息队列做微服务化,比我们现在的模型要先进。 2)licode相对是比较简单的,只有三次,mcu使用c++实现,这样就有可能...
raknet 发送数据时 最近使用raknet 发送流媒体数据。发现在采用RELIABLE_ORDERED模式下,仍然有丢包发生,特别是在网络不好的情况下,测试了几天。猜测是由于底层拆包造成的。同事搜索这个问题,发现这个帖子http://blog.csdn.net/ycf8788/article/details/52817902果然是个坑。最简单的方法是上层拆小包发送。那么mtu选多大呢?raknet提
tcpdump的两个抓包命令 总是忘记。记一下首先ifconfig获取网卡tcpdump -i eth0 host 127.0.0.1 and port 1935 -s 0 -w 1.captcudump udp port 19350