logo
publist
写文章

简介

该用户还未填写简介

擅长的技术栈

可提供的服务

暂无可提供的服务

webrtc代码走读(十九)-QOS系列11-拥塞算法、Probe探测与码率配置

Probe探测算法摘要 Probe探测算法是解决GCC算法"快降慢升"问题的带宽快速探测机制,包含启动阶段和网络变化阶段两个应用场景。该算法通过发送端发送探测数据包并记录发送时间/序列号,接收端反馈接收码率,最终取发送码率与接收码率的最小值作为实际发送码率。核心由ProbeController等5个模块协同实现,采用指数级探测策略(3倍→6倍起始码率)。算法通过比较发送/接收时

文章图片
#webrtc#算法#c++ +3
webrtc代码走读(十五)-QOS系列7-FEC-ulpfec rfc5109

文章摘要: ULPFEC(非均匀级别保护前向纠错)是WebRTC中提升实时通信质量的关键技术,其核心原理是通过预先发送冗余数据包(FEC包)来应对网络丢包。FEC包采用分层结构:RTP头标识基础信息,FEC头定义保护范围(如掩码标记被保护的媒体包),ULP Level头实现分级保护(Level 0保护少量包,Level 1增强保护)。通过XOR算法生成恢复字段,接收方可在丢包时逆向还原数据。例如,

文章图片
#webrtc#网络#c++
webrtc代码走读(十六)-QOS系列8-FEC-flexfec rfc8627

WebRTC通过三种FEC方案实现媒体传输冗余保护。UlpFEC(RFC5109)仅支持VP8/VP9编码,FlexFEC(RFC8627)兼容性更广,InbandFEC专为Opus音频设计。FEC核心原理是将M个媒体包异或生成N个冗余包,允许丢失不超过N个包时仍能恢复数据。FlexFEC相比UlpFEC优势明显:支持独立SSRC/Sequence、无编码格式限制、避免NACK误触发等。目前Fle

文章图片
#webrtc#c++#网络
webrtc代码走读(十八)-QOS系列10-Sender Side BWE原理

WebRTC 带宽估计(BWE)是决定视频通话质量的关键模块,其算法经历了从基于丢包的被动响应到基于延迟的主动预测的演进。Sender Side BWE 作为最新方案,将计算逻辑迁移至发送端,通过三大核心机制实现动态码率调整:1)兼容旧版本的 REMB 反馈;2)基于丢包率的直接调整(2%-10%丢包率阈值);3)基于延迟的趋势预测(通过 Trendline 滤波器分析包组延迟)。最终采用三者最小

文章图片
#webrtc
webrtc代码走读(十四)-QOS系列6-FEC冗余度配置

WebRTC中FEC冗余度配置的核心逻辑是动态调整冗余包数量以应对网络丢包。其工作流程为:接收端计算当前丢包率并通过RTCP反馈给发送端;发送端根据历史趋势预判未来丢包率(采用指数平滑等算法),通过查表确定关键帧/普通帧的冗余比例;最终按该比例生成FEC包与媒体包一起发送。整个过程通过定时触发和事件驱动的双链路实现:丢包率计算链路周期性处理网络反馈并调整冗余参数,封装链路则按最新参数为编码后的视频

文章图片
#webrtc#c++#网络
webrtc源码走读(九)-QOS系列1-NACK-概述

NACK是ACK的逆向机制,用于通知数据未达。在TCP中,ACK确保可靠传输,而NACK则在丢包时触发重传请求。NACK分为包级重传(RTPFB)和帧级重传(PSFB),后者包括PLI(整帧丢失)、SLI(部分丢失)和RPSI(参考帧丢失)。WebRTC根据丢包程度自动选择策略:优先包级重传,严重时升级为帧级重传。RTCP反馈消息通过包头字段(如FMT、PT)区分类型,RTPFB(PT=205)处

文章图片
#webrtc#网络
mediasoup源码走读(一)概述

Mediasoup源码结构分为C++核心层(worker/)和Node.js控制层(src/),核心功能包括WebRTC传输、生产者/消费者模型及RTP流处理。实时通信场景中,客户端通过ICE候选交换、DTLS连接建立媒体传输,由Router处理RTP包并进行带宽自适应调整。关键文件包括WebRtcTransport.cpp、Producer/Consumer.cpp等核心模块,以及Node层的W

#c++#音视频#服务器
mediasoup源码走读(三)Node.js 控制面

本文分析了WebRTC媒体服务器的架构设计,重点阐述了Node.js控制面与C++数据面的双层架构实现。系统通过Channel和PayloadChannel实现跨进程通信,Router作为媒体流容器管理Producer/Consumer的生命周期。详细展示了信令交互、路由器创建、生产者/消费者管理等核心模块的时序流程与类关系,并提供了关键源码实现说明。架构支持WebRTC、RTP/RTCP等多种协

#c++#音视频
webrtc代码走读(二十二)-QOS系列13-Jitter

本文深入剖析了WebRTC中处理网络抖动的核心机制,重点分析了视频Jitter Buffer的实现原理。主要内容包括:1)Jitter的本质是网络数据包到达时间波动,WebRTC通过动态缓冲区和延时计算来平衡卡顿与延迟;2)详细拆解了视频RTP数据包从接收到组帧的完整流程,涉及15个关键函数调用;3)重点解读了PacketBuffer插入机制、首帧验证及帧参考关系管理等核心代码实现,展示了WebR

文章图片
#webrtc#音视频#服务器 +2
mediasoup源码走读(十三)——Transport

摘要: Mediasoup的Transport模块作为核心网络传输通道,实现了WebRTC/PlainRTP/Pipe等协议的抽象统一,提供ICE/DTLS协商、带宽自适应等能力。其工作流程包含创建、连接、媒体传输三个阶段,通过Worker进程管理Transport实例,与Router协同实现媒体路由。关键交互包括:Transport与Worker的IPC通信、Transport在Router的注

#c++#音视频#服务器
    共 15 条
  • 1
  • 2
  • 请选择