今天是6月8号,转眼高考过去十年了,今年因为疫情,高考推迟到7月。十年前的选择真的是改变了命运,选择了感兴趣的计算机类专业,工作后也一直从事感兴趣的方向,现在的自己真要感谢过去十年努力的自己。点一首陈奕迅的《十年》送给自己,希望下一个十年依旧精彩。
今天是6月8号,转眼高考过去十年了,今年因为疫情,高考推迟到7月。十年前的选择真的是改变了命运,选择了感兴趣的计算机类专业,工作后也一直从事感兴趣的方向,现在的自己真要感谢过去十年努力的自己。点一首陈奕迅的《十年》送给自己,希望下一个十年依旧精彩。
之前有个网友问基于时延的带宽预测代码中如下时间转换什么含义: [crayon-682ebd4a1a81b919282027/] 那时因为工作比较忙,没去细看,没回答上。最近重新看了下这个问题,我想现在应该能回答上了(现在看起来其实很简单)。所以本文分析下如上时间转换代码为什么这么写。 绝对发送时间 在WebRTC使用绝对发送时间(Absolute Send Time)记录RTP包发送出去的时间。在GCC拥塞控制中的带宽预测,通过这个发送时间,以及包接收时间,计算带宽增长趋势。在基于接收端的带宽预测中,会在RTP包报…
整理归纳写过的WebRTC系列研究文章。本系列文章专注WebRTC底层技术研究。 版权声明:本系列文章全部原创。欢迎指正文章中的错误。 基础入门 音视频开发入门:音频基础 音视频开发入门:视频基础 WebRTC音视频传输基础:NAT穿透 基础概念 WebRTC研究:MediaStream概念以及定义 Webrtc Glossary:查阅各种WebRTC相关概念 开始放弃。。。 编译 Windows平台WebRTC编译(持续更新) Windows平台WebRTC编译-VS2017 Linux平台WebRTC编译 We…
很多时候Native应用调用WebRTC C++接口时需要查看底层详细日志,目前有两种方法: 编译Debug版本Webrtc 在应用程序入口(例如构造函数中)调用rtc::LogMessage::LogToDebug(rtc::LS_INFO); 对于Windows以及Linux应用,日志将输出到stderr。
Transport-cc指的是Transport-wide Congestion Control。WebRTC最新的拥塞控制算法(Sendside BWE)基于Transport-cc,接收端记录数据包到达时间,构造相关RTCP包,然后反馈给发送端,在发送端做带宽估计,从而进行拥塞控制。之所以基于Transport-cc,放到发送端进行带宽估计,除了方便维护,也增加了相关算法的灵活性,因为大多数处理逻辑都放到了发送端。WebRTC中为了使用Transport-cc,需要RTP报头扩展以及相关RTCP的配套支持。这里…
今天周末稍微放松下,看了下最近很火的龙岭迷窟,由于是腾讯视频独家,所以打开了N年没碰过的腾讯视频,平常都是B站以及Youtube上的多。由于之前联通办了个王卡套餐,送了会员,所以选择1080P画质播放,可是没看多久,画面就出现我再熟悉不过的花屏马赛克了。 我想,这腾讯视频点播难道不是传统的基于TCP的RTMP或者HLS吗,怎么可能花屏,难道基于WebRTC?打开Wireshark看了下,全是加密的UDP数据包,然后打开浏览器的:chrome://webrtc-internals/,可以看到用的是WebRTC中的Da…
如今越来越多的音视频应用场景采用WebRTC技术,例如视频会议,在线教育,云游戏等。WebRTC包含一套强大的点对点(P2P)通信技术方案,用于音视频传输,本文我们来了解下背后的NAT穿透技术。 什么是NAT NAT(Network Address Translation)指的是网络地址转换,常部署在一个组织的网络出口位置。网络分为私网和公网两个部分,NAT网关设置在私网到公网的路由出口位置,私网与公网间的双向数据必须都要经过NAT网关。位于NAT后的是私网IP地址,分配给NAT的是公网IP地址。NAT通过将私网I…
开此文章用于记录自己编译WebRTC安卓Native code遇到的问题。 问题0x01 错误提示如下: [crayon-682ebd4a1e033124890983/] 这个是在我执行build_aar.py --build-dir out --arch "armeabi-v7a" "arm64-v8a"命令编译生成aar文件遇到的。看了下目录, sdk/android/AndroidManifest.xml是存在的。后来发现是路径问题。得切到WebRTC源码/src目录下执行: [crayon-682ebd4a…
为支持原创,创作更好的文章,未经许可,禁止任何形式的转载与抄袭,如需转载请邮件私信!本人保留所有法定权利。违者必究!