摘要:
一:拓扑搭建 (一)代码实现 from mininet.topo import Topo from mininet.net import Mininet from mininet.node import RemoteController from mininet.link import TCLink 阅读全文
摘要:
一:场景 openvswitch不同版本编译,可能对linux内核的要求不同,不一致的版本可能导致各种错误,比如:宏定义错误,结构体成员、回调函数缺失... 比如在VM下使用的Ubuntu 16.04.1 LTS系统,默认为下面的4.4.0版本内核。 注意:本文所有图片均是在成功后截图,所以其中的部 阅读全文
摘要:
参考自: http://blog.chinaunix.net/uid-28541347-id-5578403.html https://blog.csdn.net/jasenwan88/article/details/7365060 https://www.cnblogs.com/oracleloy 阅读全文
摘要:
一:视频为什么可以被压缩 视频信息之所以存在大量可以被压缩的空间,是因为其中本身就存在大量的数据冗余。 其主要类型有以下四种: 时间冗余:视频相邻的两帧之间内容相似,或者帧直接存在运动关系 空间冗余:视频的某一帧内部的相邻像素存在相似性,或者变化的相关性 编码冗余:视频中不同数据出现的概率不同(所以 阅读全文
摘要:
一:协议解析 (一)协议格式设计 (二)字段说明 Version(1Byte):版本信息,这里默认0即可 Status(1Byte):协议的状态信息 #define PROTO_LOGIN_REQ 0x01 //登录服务器的请求与响应 #define PROTO_LOGIN_ACK 0x81 #de 阅读全文
摘要:
一:主业务的创建 主要场景是对房间的管理,多方进行音视频互动。 Router代表房间,Transport代表一个传输,每个用户加入房间都会创建一个对应的连接。 Producer生产者,共享的音视频流中,每个音频、视频流都会产生一个生产者 Consumer消费者,对于每个加入房间的用户,都可以消费其他 阅读全文
摘要:
补充:JS部分和C++代码见 WebRTC进阶流媒体服务器开发(三)Mediasoup源码分析之应用层(代码组成、Server.js、Room.js) mediasoup C++:C++部分,用于处理流媒体传输,包括lib与worker两部分 >lib:一些js文件组成,主要用于对mediasoup 阅读全文
摘要:
一:Mediasoup库的JS部分(与C++交互) 整个Mediasoup库通过Nodejs管理,比如整体逻辑、worker、router、producer、consumer...都是通过JS进行管理的。 其底层的数据传输是通过C++部分进行控制的,通过NodeJs来控制C++部分,以实现整体的数据 阅读全文
摘要:
一:Mediasoup Demo分析 了解Mediasoup运行机制,以及如何调用Mediasoup核心库 (一)Mediasoup Demo组成 其中mediasoup-demo为整个代码框架:(包含所有) app应用:提供客户端所需要的应用代码 broadcasters:用于广播使用,用于推流的 阅读全文
摘要:
回顾Mediasoup架构 (一)架构服务分析 服务端提供3个服务: 1.www服务,浏览器通过访问服务器目录获取客户端代码,通过V8引擎,启动底层WebRTC 2.nodejs提供websocket服务和http服务,用于信令交互 3.Mediasoup C++提供的流媒体服务,用于音视频的分享与 阅读全文