<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[ddr77的专栏]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/ddr77</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; ddr77]]></copyright><item><title><![CDATA[我眼中的webrtc]]></title><link>https://blog.youkuaiyun.com/ddr77/article/details/105115098</link><guid>https://blog.youkuaiyun.com/ddr77/article/details/105115098</guid><author>ddr77</author><pubDate>Thu, 26 Mar 2020 12:46:45 +0800</pubDate><description><![CDATA[写这篇文章的初衷，是因为这段时间面试，不少面试官一开头就直接问:webrtc是干嘛的？然后就是稀稀拉拉的问一堆问题，相关性都不太大。自己回答也就东一块 西一块，缺乏对webrtc完整的理解。刚好自己趁这个时间整理下，也算个总结

 webrtc是什么概念呢？我认为就一句话：标准化了rtc的通信流程和协议。自从2017年webrtc提交1.0版后，从2018年开始特别是去年，它本身一句成为实时通...]]></description><category></category></item><item><title><![CDATA[rtc中需要哪种拥塞算法]]></title><link>https://blog.youkuaiyun.com/ddr77/article/details/104969714</link><guid>https://blog.youkuaiyun.com/ddr77/article/details/104969714</guid><author>ddr77</author><pubDate>Thu, 19 Mar 2020 16:39:03 +0800</pubDate><description><![CDATA[拥塞控制是网络传输的核心，基本定义就是确定带宽大小。关于带宽的计算，我觉得下面一张图描述的比较准确



这幅图的意思是这样的

1）带宽（BDP）=rtt*btlbw

btlbw 表示在网络中的瓶颈带宽，就是最小带宽

2）inflight data表示正在传输的数数据 btlbuffsize 表示网络中所有路由器缓存大小总和

3）数据传输消耗的带宽可以分为三个阶段

inflight d...]]></description><category></category></item><item><title><![CDATA[这段时间打算写的博客]]></title><link>https://blog.youkuaiyun.com/ddr77/article/details/104267886</link><guid>https://blog.youkuaiyun.com/ddr77/article/details/104267886</guid><author>ddr77</author><pubDate>Tue, 11 Feb 2020 18:58:32 +0800</pubDate><description><![CDATA[疫情呆在家刚好总结下这一年的经验教训，打算写完下面几篇文章 列个提供先督促一下自己

1）MCU的设计方案

2) SFU的设计方案

3）网络拥塞的几种方案对比

4）SDP内容咋子WEBRTC里的具体对应


...]]></description><category></category></item><item><title><![CDATA[MCU设计方案]]></title><link>https://blog.youkuaiyun.com/ddr77/article/details/104194151</link><guid>https://blog.youkuaiyun.com/ddr77/article/details/104194151</guid><author>ddr77</author><pubDate>Thu, 06 Feb 2020 12:24:38 +0800</pubDate><description><![CDATA[今天读到一篇关于音视频边缘计算的帖子

音视频合成的云边缘计算实现

文章里有两个要点

1）边缘计算 具体功能有：流合成 录像 水印 送审等功能 这些多数设计到需要对媒体数据做处理

2）作者再部署的部署方案是自己搭建IDC 这样会面临多线的问题 多线机房比单线机房要贵很多 ，所以核心就是吧计算节点放在单线机房 多线主机尽量只承担SFU的功能

3）有个核心的问题：就是媒体数据怎么路由到MCU...]]></description><category></category></item><item><title><![CDATA[某网校媒体后台实现猜测]]></title><link>https://blog.youkuaiyun.com/ddr77/article/details/104165825</link><guid>https://blog.youkuaiyun.com/ddr77/article/details/104165825</guid><author>ddr77</author><pubDate>Tue, 04 Feb 2020 10:14:25 +0800</pubDate><description><![CDATA[疫情期间陪儿子上网课 顺道猜测了下后台的大概架构

先上张网校截图，我标注了界面上大概的功能分区





从界面分析，后台大概的数据分为以下几种

1 主流 一般是代课老师的摄像头流

2 辅助流 一般是带课老师电脑上课区的截屏 ，

3 聊天区

4 跨房价PK区

5 其他富媒体 包括各种小游戏

6 连麦 现在实现的连麦 只有音频连麦功能 完全能满足这种场景的需求

7 答题

网校...]]></description><category></category></item><item><title><![CDATA[licode中大小流方案]]></title><link>https://blog.youkuaiyun.com/ddr77/article/details/97398312</link><guid>https://blog.youkuaiyun.com/ddr77/article/details/97398312</guid><author>ddr77</author><pubDate>Fri, 26 Jul 2019 17:39:27 +0800</pubDate><description><![CDATA[总体方案图如下



大小流解决的核心是需要改造oneTomany，改造点如下

publiser增加多个，并且要有角色之分，比如下
Publiser m_BigPub;

Publishe m_SmallPub;

需要主要。在下面三个队列中，处于第一第二队列的一律用BIg的ssrc 赋值

增加的subscreber要区分开，三个队列：大流 小流 大小流
map&lt;string,sub...]]></description><category></category></item><item><title><![CDATA[licode 的singlepc 模式是怎么回事？]]></title><link>https://blog.youkuaiyun.com/ddr77/article/details/90065302</link><guid>https://blog.youkuaiyun.com/ddr77/article/details/90065302</guid><author>ddr77</author><pubDate>Fri, 10 May 2019 15:32:07 +0800</pubDate><description><![CDATA[最近在摸索webrtc 单机多流的情况，webrtc给出了标准planb的解决方法，在licode的forum中查找，已经明确表示不支持

https://discourse.lynckia.com/t/typical-questions-for-licode/728

第六条，表示在wip （work in progress）

同时，licode提供了singlepc的模式，链接如下

htt...]]></description><category></category></item><item><title><![CDATA[一个licode比较好的博客]]></title><link>https://blog.youkuaiyun.com/ddr77/article/details/87374511</link><guid>https://blog.youkuaiyun.com/ddr77/article/details/87374511</guid><author>ddr77</author><pubDate>Fri, 15 Feb 2019 17:40:30 +0800</pubDate><description><![CDATA[licode博客]]></description><category></category></item><item><title><![CDATA[Centos7升级gcc学习笔记]]></title><link>https://blog.youkuaiyun.com/ddr77/article/details/87282574</link><guid>https://blog.youkuaiyun.com/ddr77/article/details/87282574</guid><author>ddr77</author><pubDate>Thu, 14 Feb 2019 16:51:59 +0800</pubDate><description><![CDATA[转载文章 Centos7升级gcc学习笔记]]></description><category></category></item><item><title><![CDATA[centos 安装openssl的开发库命令]]></title><link>https://blog.youkuaiyun.com/ddr77/article/details/87256968</link><guid>https://blog.youkuaiyun.com/ddr77/article/details/87256968</guid><author>ddr77</author><pubDate>Thu, 14 Feb 2019 10:43:39 +0800</pubDate><description><![CDATA[RedHat Fedora 平台 
yum -y install openssl-devel 
Debian ,ubunu 平台 
apt-get install libssl-dev

 

 ]]></description><category></category></item><item><title><![CDATA[么理解p2p 打洞 stun ICE SDP rtp 协议之间的关系(四）]]></title><link>https://blog.youkuaiyun.com/ddr77/article/details/86614061</link><guid>https://blog.youkuaiyun.com/ddr77/article/details/86614061</guid><author>ddr77</author><pubDate>Wed, 23 Jan 2019 17:12:10 +0800</pubDate><description><![CDATA[首先转载一篇文章

webrtc在js层面的信令交互过程

基本流程总结如下：

 ]]></description><category></category></item><item><title><![CDATA[怎么理解p2p 打洞 stun ICE SDP rtp 协议之间的关系(三）]]></title><link>https://blog.youkuaiyun.com/ddr77/article/details/86527738</link><guid>https://blog.youkuaiyun.com/ddr77/article/details/86527738</guid><author>ddr77</author><pubDate>Thu, 17 Jan 2019 17:04:14 +0800</pubDate><description><![CDATA[放一张初步的Licode数据流图：



这个只是数据从底层怎么流到上面的图，那么还有反方向的图

在connection里有个有意思的函数：


bool WebRtcConnection::createOffer(bool video_enabled, bool audioEnabled, bool bundle) {
  boost::mutex::scoped_lock lock(upda...]]></description><category></category></item><item><title><![CDATA[怎么理解p2p 打洞 stun ICE SDP rtp 协议之间的关系(二）]]></title><link>https://blog.youkuaiyun.com/ddr77/article/details/86504618</link><guid>https://blog.youkuaiyun.com/ddr77/article/details/86504618</guid><author>ddr77</author><pubDate>Wed, 16 Jan 2019 17:39:09 +0800</pubDate><description><![CDATA[借用Licdoe的代码来分析下ICE的实现

首先licode 用了两套ice库，不知道为啥，nicer 和Libnicer ，但感觉比较偏重于libnicer，所有着重以Libnice为主

 二者分家的地方在 DtlsTransport类的构造函数中



licode 的底层传输采用了dtls的协议，这块不着重分析，知道就可以了。

下面开始

第一个问题：

ICE的线程模型

ICE代码...]]></description><category></category></item><item><title><![CDATA[怎么理解p2p  打洞  stun  ICE  SDP  rtp 协议之间的关系]]></title><link>https://blog.youkuaiyun.com/ddr77/article/details/86303189</link><guid>https://blog.youkuaiyun.com/ddr77/article/details/86303189</guid><author>ddr77</author><pubDate>Fri, 11 Jan 2019 15:34:48 +0800</pubDate><description><![CDATA[首先推几篇基础文章

什么叫打洞

打洞标准化协议-stun

打洞应用标准化-ice

信令服务-sip

补充协议-turn

总体来讲，ICE协议是个整合了各个以上各种协议的一个大集合，如果需要传输媒体数据，就是在数据阶段来封装对应的rtp流，具体如下

1）ICE会收集备用的地址，包括三类

host： 本地地址

server reflect addreess: stun 服务器发出

...]]></description><category></category></item><item><title><![CDATA[licode(三）：流媒体数据怎么转发]]></title><link>https://blog.youkuaiyun.com/ddr77/article/details/84583101</link><guid>https://blog.youkuaiyun.com/ddr77/article/details/84583101</guid><author>ddr77</author><pubDate>Wed, 28 Nov 2018 14:07:45 +0800</pubDate><description><![CDATA[前端时间安装stun服务器，由于公司没有开外网的端口映射，所以没有搭建成功。但是单纯的stun服务器搭建成功了

现在有两个问题：

1）stun服务扮演什么角色？

2）流媒体数据的传输方式

3）erizo-controler的作用？

首先回答问题2），上传一张wireshark的截图



在这张图中，10.2.31.80是我搭建的Licode服务器，10.134.244.200是我本地的...]]></description><category></category></item><item><title><![CDATA[licode(二）：安装stun和turn服务器]]></title><link>https://blog.youkuaiyun.com/ddr77/article/details/83856858</link><guid>https://blog.youkuaiyun.com/ddr77/article/details/83856858</guid><author>ddr77</author><pubDate>Thu, 08 Nov 2018 17:03:31 +0800</pubDate><description><![CDATA[webrtc本身需要搭建stun和turn服务器，经过挑选后选择stunman和coturn 两个服务器，安装步骤对应如下

coturn服务器安装

boost库安装

STUN服务安装

安装coturn服务的时候需要注意

1）需要外网ip，如果没有外网ip ，我现在都无法安装成功，一直出现端口绑定错误，好像是和这个有关系，还没有最后确认

2）conturn本身包括了stun 服务，如果不...]]></description><category></category></item><item><title><![CDATA[licode（一）]]></title><link>https://blog.youkuaiyun.com/ddr77/article/details/83781533</link><guid>https://blog.youkuaiyun.com/ddr77/article/details/83781533</guid><author>ddr77</author><pubDate>Tue, 06 Nov 2018 10:05:01 +0800</pubDate><description><![CDATA[调研了一个多月的webrtc 多人会议实现方式，最后选择Licode ,原因有二

1）Licode的架构和我们视频通话的架构基本一致 nuve---controler----agent三级，中间通过mongodb来统一数据，实现分布式管理，和我们视频通话不同的是，它用了消息队列做微服务化，比我们现在的模型要先进。

 2）licode相对是比较简单的，只有三次，mcu使用c++实现，这样就有可能...]]></description><category></category></item><item><title><![CDATA[raknet 发送数据时]]></title><link>https://blog.youkuaiyun.com/ddr77/article/details/76302037</link><guid>https://blog.youkuaiyun.com/ddr77/article/details/76302037</guid><author>ddr77</author><pubDate>Sat, 29 Jul 2017 12:01:49 +0800</pubDate><description><![CDATA[最近使用raknet 发送流媒体数据。发现在采用RELIABLE_ORDERED模式下，仍然有丢包发生，特别是在网络不好的情况下，测试了几天。猜测是由于底层拆包造成的。同事搜索这个问题，发现这个帖子
http://blog.youkuaiyun.com/ycf8788/article/details/52817902

果然是个坑。
最简单的方法是上层拆小包发送。那么mtu选多大呢？
raknet提]]></description><category></category></item><item><title><![CDATA[tcpdump的两个抓包命令]]></title><link>https://blog.youkuaiyun.com/ddr77/article/details/75332878</link><guid>https://blog.youkuaiyun.com/ddr77/article/details/75332878</guid><author>ddr77</author><pubDate>Wed, 19 Jul 2017 08:54:39 +0800</pubDate><description><![CDATA[总是忘记。记一下
首先ifconfig获取网卡
tcpdump -i eth0 host 127.0.0.1 and port 1935 -s 0 -w 1.cap
tcudump udp port 19350]]></description><category></category></item><item><title><![CDATA[storm学习（1）]]></title><link>https://blog.youkuaiyun.com/ddr77/article/details/71550564</link><guid>https://blog.youkuaiyun.com/ddr77/article/details/71550564</guid><author>ddr77</author><pubDate>Wed, 10 May 2017 17:03:30 +0800</pubDate><description><![CDATA[准备在视频分享中引入storm实时分析数据。但是java从来没有学过。头大。记录下每一步。
今天工作
1）LINUX上折腾《storm分布式实时计算模式》里的第一个代码。不成功。主要原因是：代码太老了。用的是storm0.9.1版本，下载慢而且用的maven仓库，一脸黑。完全不知道怎么搞。头文件都找不到，也不知道怎么配置。放弃
2）linux 上实在搞不懂。到ｗｉｎｄｏｗ平台上配置ecpli]]></description><category></category></item></channel></rss>