
WebRTC入门与实战
文章平均质量分 75
webrtc owt ios android windows licode ,实时音视频互动直播前后端技术 学习
优惠券已抵扣
余额抵扣
还需支付
¥49.90
¥99.00
购买须知?
本专栏为图文内容,最终完结不会低于15篇文章。
订阅专栏,享有专栏所有文章阅读权限。
本专栏为虚拟商品,基于网络商品和虚拟商品的性质和特征,专栏一经购买无正当理由不予退款,不支持升级,敬请谅解。
等风来不如迎风去
AI领域初学者,AI+实时语音,AI+2/3D动画生成;AI+UE表演,AI+游戏NPC;音视频行业深耕多年,熟悉会议、直播、RTC,对在线教育、娱乐秀场等音视频端到端技术及系统架构有深入研究
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
owt native ios sdk 构建
owt native ios sdkwindows 的构建有些问题,回公司再看我的macbook 256g的,勉为其难的构建一番ios的把之前下周了webrtc,至少消耗了20g, 现在owt 也会下webrtc不知道够不够用在路径 ~/tet/webrtc_build/owt-native/src 下面新建一个 .glient 文件,写入owt native 的git仓库地...原创 2020-01-27 17:20:47 · 2253 阅读 · 1 评论 -
【MediaSoup】MS_DUMP打印转换为PLOGI的形式
摘要:代码展示了如何将多行的MS_DUMP调试信息合并为单行的PLOGI日志输出。原代码使用多个MS_DUMP语句分别打印PacketFeedback结构体的各个字段,修改后采用PLOGI的单行输出方式,将所有字段信息合并为一个更简洁的日志条目。这种改进保持了调试信息的完整性,同时使日志输出更加紧凑和易读,最终日志格式显示为包含所有关键字段的单行记录。原创 2025-07-12 19:32:49 · 113 阅读 · 0 评论 -
【webrtc】gcc当前可用码率1:怎么决策的
WebRTC的最大码率决策机制分析:默认采用无限大值(kInfinity),但实际会通过TargetRateConstraints进行约束。初始阶段由GoogCcNetworkController加载配置,后续可能通过RTP流控制协议(如REMB)或外部设置动态调整。TransportCongestionControlClient会综合考虑初始可用带宽、期望码率趋势和最大输出限制等因素,采用平滑算法防止频繁波动。当检测到网络条件变化时,会通过SetMinMaxBitrate接口更新配置值,如日志中出现的60原创 2025-07-10 10:41:16 · 83 阅读 · 0 评论 -
【webrtc】CapBitrateToThresholds:对带宽估算值进行多重阈值限制,确保最终的比特率在合理范围内
多重阈值限制的原因是不同的带宽估算算法反映了网络的不同方面,需要综合考虑以获得最优的发送策略。原创 2025-07-10 09:40:35 · 94 阅读 · 0 评论 -
【webrtc】码率设定中的 int64_t 的无限大
摘要:64位有符号整数(Int64)的最大值为0x7FFFFFFFFFFFFFFF(十六进制),对应十进制值为9,223,372,036,854,775,807(2^63-1)。在编程实现中,这个最大值常被用作"无限大"的默认值。当数值未设定时,会将此最大值作为预设值使用,表示无限大的概念。代码示例展示了通过std::numeric_limits获取该最大值的方法。原创 2025-07-10 08:30:27 · 75 阅读 · 0 评论 -
【RTP】十进制的ssrc如何写入header并读取
本文分析了SSRC在RTP协议中的字节序转换问题。通过具体案例说明:原始SSRC值0x8469F109(2221535497)经htonl()转换后应为0x09F16984(166816132)。文章指出常见错误包括:1)未初始化变量导致出现调试值0xCDCDCDCD(3452816845);2)读取时忘记使用ntohl()转换;3)结构体未正确打包导致偏移错位。强调正确做法是:写入时用htonl()转为网络字节序,读取时用ntohl()转回主机序,并需确保内存正确初始化和结构体对齐。调试时可通过抓包工具验原创 2025-06-22 09:31:57 · 43 阅读 · 0 评论 -
【RTP】基于mediasoup的RtpPacket的H.264打包、解包和demo 1:不含扩展
本文介绍了H.264视频流的RTP打包与解包测试结果。测试生成了6个H.264帧(1个I帧和5个P帧),成功分割为9个RTP包,但在解包时重建出8个帧,出现帧数不匹配问题。测试显示了RTP包的详细结构,包括序列号、时间戳、负载大小等关键信息,并分析了RTP封装1.93%的开销。后续测试验证了大型帧分割(5005字节分为5个包)和不同类型NALU(SPS、PPS、IDR等)的封装处理。测试结果表明当前的RTP打包器实现了基本功能,但在帧重建和关键帧标记方面仍需改进优化。原创 2025-06-21 19:32:44 · 108 阅读 · 0 评论 -
【Fargo】mediasoup发送1:控制与数据分离的分层设计和原理
本文分析了两部分WebRTC传输控制相关的代码实现: PacedSender模块被证实是一个简化版本,缺乏标准实现中的RTP包缓存与平滑发送能力。其核心功能仅限带宽探测(通过prober模块)、发送填充包和基础统计管理,媒体包发送由其他模块直接处理。 RtpTransportControllerSend模块作为高层控制器,完整实现了拥塞控制算法(GCC)、带宽估计和码率分配功能,但同样不包含包缓存机制。它与简化版PacedSender配合使用时,需要依赖PacketRouter实现实际发送。 最终确认Tra原创 2025-06-21 17:31:59 · 50 阅读 · 0 评论 -
【python】演示实现ACE(Adaptive Echo Cancellation)回声消除
本文演示了自适应回声消除(ACE)算法的实现与验证。代码实现了基于LMS的自适应滤波器,通过参考信号消除输入信号中的回声。测试结果显示,算法在100次随机测试中平均信噪比为14.34dB,平均均方误差为0.000058。验证方法包括:波形可视化对比、信噪比(SNR)和均方误差(MSE)计算统计,以及结果分布的可视化分析。该算法可以有效消除信号中的回声干扰,且在不同测试条件下表现稳定,适用于实时音频处理场景。原创 2025-06-17 16:53:23 · 58 阅读 · 0 评论 -
【RTP】Intra-Refresh模式下的 H.264 输出,RTP打包的方式和普通 H.264 流并没有本质区别
【RTP】Intra-Refresh模式下的 H.264 输出,RTP打包的方式和普通 H.264 流并没有本质区别原创 2025-06-08 23:32:18 · 195 阅读 · 0 评论 -
【mediasoup】MS_xxx 日志形式转PLOG输出缩短长度
本文针对mediasoup日志输出过长的问题提出优化方案。原始日志包含完整文件路径、类名等信息,导致输出冗长。解决方案包括:1)修改_MS_FILE宏只提取文件名,支持Windows路径;2)精简日志格式,移除冗余信息;3)自定义简洁版日志宏MS_DEBUG_SHORT。优化后日志从显示完整路径变为仅文件名+行号+关键信息,大幅缩短日志长度。通过调整日志宏定义,有效解决了日志可读性问题,同时保留了必要的调试信息。原创 2025-06-01 01:16:04 · 58 阅读 · 0 评论 -
【mediasoup】MS_DEBUG_DEV 等日志形式转PLOG输出
• 保持 std::snprintf 格式化风格,使用 printf 占位符(如 %d、%u)。原创 2025-05-24 18:54:53 · 159 阅读 · 0 评论 -
【razor】pacing平滑发送及发送调度机制分析
pacing 机制本质上是抑制应用层突发,适应网络带宽,即使网络带宽突然变大,也会逐步加快 pacing 速率,而不是瞬间全部发出,防止网络抖动和拥塞。原创 2025-05-20 20:06:00 · 133 阅读 · 0 评论 -
【razor】回环结构导致的控制信令错位:例如发送端收到 SR的问题
【razor】回环结构导致的控制信令错位:例如发送端收到 SR的问题原创 2025-05-20 11:41:44 · 265 阅读 · 0 评论 -
【GCC】2015: draft-alvestrand-rmcat-congestion-03 机器翻译
2015原创 2024-12-16 17:23:16 · 331 阅读 · 0 评论 -
【webrtc】 mediasoup中m77的IntervalBudget及其在AlrDetector的应用
mediasoup中m77原创 2024-11-26 14:45:35 · 392 阅读 · 0 评论 -
【meidasoup】rtp分发时的延迟克隆
这种直到必要时才进行延迟克隆的方法,以及使用 std::shared_ptr 管理共享数据包数据的方法,是为了高性能和效率而设计的系统中常见的模式,特别是在同一数据可能在多个上下文中并发访问的情况下。原创 2024-11-21 18:38:16 · 106 阅读 · 0 评论 -
【mediasoup】rtp包的发送
WebRtcTransport::SendRtpPacket原创 2024-11-21 12:01:50 · 117 阅读 · 0 评论 -
【MediaSoup】IceServer 是如何存储对端地址生成的tuple的
HandleTuple原创 2024-11-20 16:15:47 · 107 阅读 · 0 评论 -
【MediaSoup】接收端反馈RTCP调用流程
WebRtcTransport::SendRtcpPacket(RTC::RTCP::Packet* packet)原创 2024-11-18 18:12:44 · 268 阅读 · 0 评论 -
【webrtc】CNAME 是rtprtcp中的Canonical Name(规范化名称)
CNAME:用于会话层,保证跨流的同步和唯一标识。- MID:用于流层,标识媒体流类型,支持复杂流传输。原创 2024-11-12 16:27:09 · 126 阅读 · 0 评论 -
【webrtc】RTP扩展里的RID及与MID的区别
两者是互补关系,MID 用于宏观区分媒体流,RID 则用于精细化管理 RTP 流。原创 2024-11-12 16:01:43 · 169 阅读 · 0 评论 -
【webrtc】RTX 重传包和NACK包
总结NACK 是反馈机制,用于告知丢失的具体包,触发发送端的重传行为。RTX 是一种重传实现,以特殊方式重传数据包,便于接收端识别和处理。两者常结合使用:NACK 请求 -> RTX 重传,在 WebRTC 和视频会议中广泛应用。原创 2024-11-12 15:50:51 · 383 阅读 · 0 评论 -
【webrtc】 RTP 中的 MID(Media Stream Identifier)
总结MID 是 RTP 中的扩展头字段,标识媒体流的用途,如音频流或视频流。发送 RTP 时,MID 的值来自 SDP 信令中协商的 a=mid 属性。在多流场景(如 WebRTC)中,MID 是区分流的重要机制,与 RID 互补。原创 2024-11-12 15:43:42 · 574 阅读 · 0 评论 -
【webrtc】RtpToNtpEstimator:将 RTP 时间戳映射到 NTP 时间
rtp 2 ntp 映射原创 2024-05-27 18:07:08 · 380 阅读 · 0 评论 -
【webrtc】rtp扩展:绝对发送时间、绝对采集时间、时间戳插值
绝对采集时间戳原创 2024-05-22 13:01:28 · 465 阅读 · 0 评论 -
【webrtc】内置opus解码器的移植
CreateBuiltinAudioDecoderFactory opus原创 2024-05-20 18:44:13 · 397 阅读 · 0 评论 -
【webrtc】gpt4:webrtc内置的音频解码器介绍
CreateBuiltinAudioDecoderFactory原创 2024-05-20 18:17:49 · 287 阅读 · 0 评论 -
【webrtc】MediaEngine的实现CompositeMediaEngine创建VOE
CompositeMediaEngine原创 2024-05-20 17:54:25 · 278 阅读 · 0 评论 -
【webrtc】m98:Call的创建及Call对音频接收处理
CreateCallFactory原创 2024-05-20 14:20:58 · 353 阅读 · 0 评论 -
【neteq】m98:ChannelReceive 对neteq的调用
neteq原创 2024-05-17 08:49:22 · 104 阅读 · 0 评论 -
【neteq】tgcall的调用、neteq的创建及接收侧ReceiveStatisticsImpl统计
neteq原创 2024-05-03 10:23:02 · 283 阅读 · 0 评论 -
【webrtc】RemoteAudioSource的创建线程
RemoteAudioSource原创 2024-05-01 22:34:14 · 420 阅读 · 0 评论 -
【webrtc】MessageHandler 9: 基于线程的消息处理:执行Port销毁自己
message handler原创 2024-05-01 01:02:36 · 590 阅读 · 0 评论 -
【webrtc】MessageHandler 8: 基于线程的消息处理:处理音频输入输出断开
OnMessage原创 2024-05-01 00:49:53 · 667 阅读 · 0 评论 -
【webrtc】MessageHandler 7: 基于线程的消息处理:切换main线程向observer发出通知
message handler原创 2024-04-30 17:23:35 · 681 阅读 · 0 评论 -
【webrtc】MessageHandler 6: 基于线程的消息处理:StunRequest实现包发送和超时重传
StunRequest原创 2024-04-30 14:59:27 · 469 阅读 · 0 评论 -
【webrtc】MessageHandler 5: 基于线程的消息处理:以PeerConnection信令线程为例
message handler原创 2024-04-30 12:48:17 · 655 阅读 · 0 评论 -
【webrtc】MessageHandler 4: 基于线程的消息处理:以Fake 收发包模拟为例
MessageHandler原创 2024-04-30 12:28:30 · 567 阅读 · 0 评论 -
【webrtc】MessageHandler 3: 基于线程的消息处理:以sctp测试为例
message handler原创 2024-04-30 11:31:04 · 574 阅读 · 0 评论