
流媒体系列 -- WebRTC
文章平均质量分 75
流媒体系列 -- WebRTC
奋斗企鹅CopperSun
这个作者很懒,什么都没留下…
展开
-
【网络通信 -- WebRTC】FlexFec 基本知识点总结概述
在对应分组的源数据包中仅存在一个数据包丢失时,可以对丢失的数据包进行恢复处理,换言之若对应分组的源数据包的丢包数量大于 1 则恢复处理会失败。至少存在两个按行分组的源数据包/FEC数据包丢包两个以上,并且丢失的数据包在列维度上是对齐的,则恢复失败。至少存在两个按列分组的源数据包/FEC数据包丢包两个以上,并且丢失的数据包在行维度上是对齐的,则恢复失败。在同一行的分组的源数据包中出现两个以上的丢包则恢复失败。原创 2023-09-07 13:15:58 · 1351 阅读 · 0 评论 -
【项目实战】Chrome 浏览器编译
配置环境变量 vs2019_install,其值为 Visual Studio 2019 安装路径,如 D:\Program Files (x86)\Microsoft Visual Studio\2019\Professional。chrome 的编译需要确保网络环境稳定,可以正常访问 google 对应的仓库,建议可以在云服务器上进行构建,然后再将编译结果打包下载下来。原创 2023-05-11 16:42:50 · 2440 阅读 · 0 评论 -
【网络通信 -- WebRTC】WebRTC 源码分析 -- 总述
WebRTC 关键模块大致可分为如下几类。原创 2022-11-18 11:24:52 · 1164 阅读 · 0 评论 -
【网络通信 -- WebRTC】WebRTC 基础知识 -- 基础知识总结
【网络通信 -- 直播】WebRTC -- 基础知识总结【1】WebRTC 简介WebRTC (Web RealTime Communication,网页实时通信) 是 Google 于 2010 以 6829 万美元从 Global IP Solutions 公司购买,并于 2011 年将其开源,旨在建立一个互联网浏览器间的实时通信的平台,让 WebRTC 技术成为 H5 标准之一;WebRTC 是一个基于浏览器的实时多媒体通信技术,该项技术旨在使 Web 浏览器具备实时通信能力;同时,通过将原创 2021-07-26 10:53:22 · 806 阅读 · 0 评论 -
【网络通信 -- WebRTC】WebRTC 基础知识 -- 多人音视频通讯架构与主流服务器简介
【网络通信 -- 直播】WebRTC -- 多人音视频通讯架构与主流服务器简介【1】多人音视频通讯架构WebRTC 本身提供的是 1 对 1 的通信模型,在 STUN/TURN 的辅助下,若能实现 NAT 穿越,那么两个浏览器便可以直接进行媒体数据交换;若不能实现 NAT 穿越,那么只能通过 TURN 服务器进行数据转发的方式实现通信;在 1 对 1 通信中,WebRTC 首先尝试两个终端之间是否可以通过 P2P 直接进行通信,若终端之间无法直接通信,则会通过 STUN/TURN 服务器进行原创 2021-02-04 19:05:24 · 1327 阅读 · 0 评论 -
【网络通信 -- WebRTC】WebRTC 基础知识 -- ICE 交互总结
【网络通信 -- WebRTC】WebRTC 基础知识 -- ICE 交互总结【1】ICE 的一般概念简介ICE 角色 offer (主动发起)的一方为 controlling 角色 answer (被动接受)的一方为 controlled 角色 full ice agent 必须是 controlling role,lite ice agent 是 controlled;srs 仅支持 lite ice ICE 模式 FULL ICE,双方都要进行连通性检查;ice 客户原创 2021-08-09 08:52:48 · 2871 阅读 · 1 评论 -
【网络通信 -- 直播】网络通信协议简介 -- RTP 协议的 WebRTC 扩展
【网络通信 -- 直播】网络通信协议简介 -- RTP 协议的 WebRTC 扩展【1】RTP 首部扩展格式【2】RFC-5285 中 RTP 首部扩展One-byte Header0XBEDE 表示 one-byte 扩展 length = 3 表示 header extension 的总长度为 3 * 32 bit = 96 bit = 12 byte 每个扩展头首先以一个 byte 开始,前 4 位是这个扩展头的 ID, 后四位是 data 的长度 -1 注意,第二个扩展转载 2021-08-25 10:13:36 · 999 阅读 · 0 评论 -
【网络通信 -- 直播】网络通信协议简介 -- RTCP 协议的 WebRTC 扩展
【网络通信 -- 直播】网络通信协议简介 -- RTCP 协议的 WebRTC 扩展参考致谢本博客为博主的学习实践总结,并参考了众多博主的博文,在此表示感谢,博主若有不足之处,请批评指正。【1】WebRTC之RTCP...原创 2021-07-26 10:50:58 · 1097 阅读 · 1 评论 -
【网络通信 -- WebRTC】WebRTC 服务质量 (QoS) -- 综述
【网络通信 -- WebRTC】WebRTC 服务质量 (QoS) -- 综述【1】WebRTC QoS 处理过程简介WebRTC 设计了一套基于延迟和丢包反馈的拥塞机制和带宽调节策略来保证延迟、质量和网路速度之间平衡,该处理循环如下图所示;图示的循环处理流程如下1) estimator 通过 RTCP 的 feedback 反馈过来的包到达延迟增量和丢包率信息计算出网络拥塞状态并评估出适合当前网络传输的码率,根据这个码率改变视频编码器码率,然后改变 pacer 的码率 2) pace原创 2021-07-27 17:00:59 · 830 阅读 · 0 评论 -
【网络通信 -- WebRTC】WebRTC 服务质量 (QoS) -- Sender Side BWE
【网络通信 -- WebRTC】WebRTC 服务质量 (QoS) -- Sender Side BWE、PACER参考致谢本博客为博主的学习实践总结,并参考了众多博主的博文,在此表示感谢,博主若有不足之处,请批评指正。【1】WebRTC的拥塞控制和带宽策略【2】webrtc QOS方法四(Sender Side BWE)【3】webrtc QOS方法十(pacer实现)...转载 2021-07-27 17:00:02 · 764 阅读 · 1 评论 -
【网络通信 -- WebRTC】WebRTC 服务质量 (QoS) -- PACER
【网络通信 -- WebRTC】WebRTC 服务质量 (QoS) -- PACER参考致谢本博客为博主的学习实践总结,并参考了众多博主的博文,在此表示感谢,博主若有不足之处,请批评指正。【1】WebRTC的拥塞控制和带宽策略【2】webrtc QOS方法十(pacer实现)...转载 2021-07-27 17:00:16 · 624 阅读 · 0 评论 -
【网络通信 -- WebRTC】WebRTC 服务质量 (QoS) -- NACK、FEC、IDR 请求
【网络通信 -- WebRTC】WebRTC 服务质量 (QoS)【1】NACKNACK,Negative Acknowledgement 是一种负向反馈,接收方只有在没有收到数据的时候才会通知发送方;【1.1】丢包重传的基本概念接收端判断丢包每一个数据包关联一个序列号 (Seq number),接收端发现序列号跳变 / 缺失,则可以判断数据包丢失;发送端判断丢包1. 停等协议 发送方每次只发送一个数据包,同时启动一个定时器,如果定时器超时依然没有收到该数据包的 ACK,.原创 2021-07-27 17:00:30 · 1330 阅读 · 0 评论 -
【网络通信 -- WebRTC】WebRTC 服务质量 (QoS) -- JitterBuffer
【网络通信 -- WebRTC】WebRTC 服务质量 (QoS) -- JitterBuffer【1】基本概念JitterBuffer 是在收到网络上的 RTP 报文后,不直接进行解码,而是缓存一定个数的 RTP 报文,并按照时间戳或者序列号的顺序进行重排,以消除报文乱序和抖动问题的技术;JitterBuffer 分为动态 JitterBuffer 和静态 JitterBuffer;静态 JitterBuffer 缓存报文个数固定; 动态 JitterBuffer 根据网络环路延时的情况,原创 2021-07-27 17:01:25 · 968 阅读 · 3 评论 -
【网络通信 -- WebRTC】WebRTC 服务质量 (QoS) -- SVC
【网络通信 -- WebRTC】WebRTC 服务质量 (QoS) -- SVC参考致谢本博客为博主的学习实践总结,并参考了众多博主的博文,在此表示感谢,博主若有不足之处,请批评指正。转载 2021-07-28 11:54:58 · 688 阅读 · 0 评论 -
【网络通信 -- WebRTC】WebRTC 源码分析 -- WebRTC 源码结构分析
【网络通信 -- WebRTC】WebRTC 源码分析 -- WebRTC 源码结构分析参考致谢本博客为博主的学习实践总结,并参考了众多博主的博文,在此表示感谢,博主若有不足之处,请批评指正。【1】webRTC源码结构简单分析(一)【2】[WebRTC架构分析]源码目录结构介绍...原创 2021-07-27 17:53:45 · 400 阅读 · 0 评论 -
【网络通信 -- WebRTC】WebRTC 源码分析 -- PeerConnectionClient 示例分析 -- 建立连接
【网络通信 -- WebRTC】WebRTC 源码分析 -- PeerConnectionClient 示例分析【1】WebRTC 中 1 对 1 交互流程图【2】PeerConnectionClient 主要流程图整理【2.1】PeerConnectionClient 主函数流程与相关事件处理流程【2.2】登录注册到服务端的处理流程【2.3】连接对端处理流程【2.4】消息交互处理流程【2.5】主要回调函数的处理流程参考致谢本博客为博主的学......原创 2021-10-07 12:12:06 · 447 阅读 · 1 评论 -
【网络通信 -- WebRTC】WebRTC 源码分析 -- RTC_CHECK
【网络通信 -- WebRTC】WebRTC 源码分析 -- RTC_CHECK【1】RTC_DCHECK(1 != 1) << "hello world " << 100 << 3.14;的执行过程RTC_DCHECK(1 != 1) << "hello world " << 100 << 3.14;的执行过程宏展开结果while (!(1 != 1)) FatalLogCall<false>("main.c转载 2022-02-28 15:39:48 · 433 阅读 · 0 评论 -
【网络通信 -- WebRTC】WebRTC 源码分析 -- 线程相关(综述)
【网络通信 -- WebRTC】WebRTC 源码分析 -- 线程模型【1】WebRTC 线程模型总览信令线程 (Signal Thread) 工作在 PeerConnection 层,用于和应用层交互,默认采用 PeerConnectionFactory 初始化线程作为信令线程 工作线程 (Worker Thread) 工作在媒体引擎层 (media engine),具体工作如下 音频设备初始化 视频设备初始化 流对象的初始化 从网络线程接收数据,传给解码器线转载 2021-11-12 13:25:35 · 322 阅读 · 0 评论 -
【网络通信 -- WebRTC】WebRTC 源码分析 -- 线程相关(线程切换分析)
【网络通信 -- WebRTC】WebRTC 源码分析 -- 线程相关(线程切换分析)【1】线程切换的使用示例【1.1】给定接口类与接口类的具体实现类class TestInterface : public rtc::RefCountInterface { public: std::string FooA() = 0; std::string FooB(bool arg1) const = 0; std::string FooC(bool arg1) = 0; };clas原创 2021-12-03 11:22:21 · 461 阅读 · 0 评论 -
【网络通信 -- WebRTC】WebRTC 源码分析 -- 线程相关(线程切换分析 -- MethodCall / ConstMethodCall 类分析)
【网络通信 -- WebRTC】WebRTC 源码分析 -- 线程相关(线程切换分析 -- MethodCall / ConstMethodCall 类分析)【1】MethodCall 类分析// 类模板// C : 包含方法的类类型// R : 方法的返回值类型// Args : 方法的参数类型template <typename C, typename R, typename... Args>// QueuedTask : 是一个接口类型,提供了 Run()原创 2021-12-03 11:23:12 · 401 阅读 · 0 评论 -
【网络通信 -- WebRTC】WebRTC 源码分析 -- 事件等待与触发(Event 类分析)
【网络通信 -- WebRTC】WebRTC 源码分析 -- 事件等待与触发(Event 类分析)【1】Event 类提供的方法void Set(); 触发事件 bool Wait(int give_up_after_ms); 等待事件触发(具备超时功能) bool Wait(int give_up_after_ms, int warn_after_ms); 等待事件触发(具备超时功能)#ifndef RTC_BASE_EVENT_H_#define RTC_BASE_EVENT_H...原创 2021-12-03 11:23:52 · 695 阅读 · 0 评论 -
【网络通信 -- WebRTC】WebRTC 源码分析 -- GCC 带宽估计 -- 接收端带宽估计
【网络通信 -- WebRTC】WebRTC 源码分析 -- 接收端带宽估计【1】OveruseEstimator 中的卡尔曼滤波公式简介【2】OveruseDetector 中的带宽负载信号的触发与阈值的动态调整阈值动态调整公式为到达时间差,为时刻的延迟,为自适应增益;带宽负载信号触发时机的判断并且持续时间大于 100ms 则判断为带宽过载 则判断为带宽过量 则判断为带宽正常【3】AimdRateControl 中有限状态机的状态转移......转载 2022-06-23 14:25:42 · 862 阅读 · 0 评论 -
【网络通信 -- WebRTC】WebRTC 源码分析 -- PacingController 相关知识点补充
【网络通信 -- WebRTC】WebRTC 源码分析 -- PacingController 相关知识点补充【1】漏桶限流算法简介漏桶算法 (Leaky Bucket) 是网络中流量整形 (Traffic Shaping) 或速率限制 (Rate Limiting) 时经常使用的一种算法,其主要目的是控制数据注入到网络的速率,平滑网络上的突发流量;如图所示,把请求比作是水,水来了都先放进桶里,并以限定出水的速度,当水来得过猛而出水不够快时就会导致水直接溢出,即拒绝服务;漏桶限流算法 -- 主原创 2022-06-23 15:27:05 · 567 阅读 · 0 评论 -
【网络通信 -- WebRTC】项目实战记录 -- WebRTC 源码编译(Windows 版)
【网络通信 -- WebRTC】项目实战记录 -- WebRTC 源码编译(Windows 版)【1】Visual Studio 2019 安装注意,IDE 首选 VS2019,选择 "使用 C++ 的桌面开发" 组件;【2】windows 10 SDK 安装选择 "开始" -> "设置" -> "应用"选择 Windows Software Development Kit - Windows10.0.19041.685配置环境变量depot_tools...原创 2021-07-25 16:51:11 · 759 阅读 · 1 评论 -
【网络通信 -- WebRTC】项目实战记录 -- AppRTC 环境搭建
【网络通信 -- WebRTC】项目实战记录 -- AppRTC 环境搭建参考致谢本博客为博主的学习实践总结,并参考了众多博主的博文,在此表示感谢,博主若有不足之处,请批评指正。【1】原创 2021-06-22 14:48:13 · 237 阅读 · 0 评论 -
【网络通信 -- WebRTC】项目实战记录 -- WebRTC Native SDP 协商没有 H264 载荷问题
【网络通信 -- WebRTC】项目实战记录 -- WebRTC Native SDP 协商没有 H264 载荷问题(华为手机)【1】原因分析华为手机的 H264 硬件编解码器的信息如下图,WebRTC 中没有相关的记录,无法匹配;【2】修改代码记录1.文件路径,org/webrtc/HardwareVideoEncoderFactory.java方法名称,isHardwareSupportedInCurrentSdkH264 private boolean isHardw.原创 2021-07-12 17:17:17 · 697 阅读 · 0 评论 -
【网络通信 -- WebRTC】项目实战记录 (调试工具) -- chrome 与 WebRTC
【网络通信 -- WebRTC】项目实战记录(调试工具) -- chrome 与 WebRTC【1】chrome://webrtc-internals/ 分析工具RTCIceCandidate_XXX -- ICE 候选描述信息timestamp 时间戳 transportId 传输 ID isRemote 是否为远端 networkType 网卡 ip IP 地址 address IP 地址 port 端口 protocol 传输...原创 2021-07-27 17:02:17 · 3654 阅读 · 0 评论 -
【网络通信 -- WebRTC】终端项目实战记录 (Web 端) -- 基于 VSCode 的前端调式环境搭建
【网络通信 -- WebRTC】终端项目实战记录 (Web 端) -- 基于 VSCode 的前端调式环境搭建【1】安装插件安装插件,Debugger for Chrome【2】编辑 launch.json 文件编辑 launch.json 文件,添加相关调试配置Launch 配置{ "type": "chrome", "request": "launch", "name": "WebRTC Sound Record", "url": "E:/Lear转载 2021-11-10 08:32:01 · 387 阅读 · 0 评论 -
【网络通信 -- WebRTC】终端项目实战记录 (Web 端) -- 基于 webrtc 的 音频录制
【网络通信 -- WebRTC】终端项目实战记录 -- 基于 webrtc 的 音频录制 (Web 端)参考致谢本博客为博主的学习实践总结,并参考了众多博主的博文,在此表示感谢,博主若有不足之处,请批评指正。【1】JavaScript基础修炼(14)——WebRTC在浏览器中如何获得指定格式的PCM数据【2】前端webrtc基础 —— 录音篇参考项目链接【1】yuelinghunyu/blog-demo,GitHub - yuelinghunyu/blog-demo: blog-原创 2021-11-10 14:42:00 · 1397 阅读 · 0 评论