Piasy

NEVER STOP

Hack WebRTC 32599

《WebRTC Native 开发实战》出版快一周年了,书里引用的代码是 #30432(介于 79 和 80 release 之间的一个节点),已经是一年半以前的版本了,虽然 HackWebRTC 有个稍微新一点的 hack_webrtc_30987 分支,不过也有一年多的历史了。刚好今年初 OWT 把 WebRTC 代码 rebase 到了 88 release 上,让我可以省去维护支持 ...

在 WebRTC 项目外单步调试 WebRTC.framework 里的代码

两年半以前我分享了 macOS 下单步调试 WebRTC Android & iOS,说的都是在 WebRTC 项目内进行单步调试,但实际情况中我们显然是要在自己的项目里使用 WebRTC 库,如果这时我们希望能单步调试 WebRTC 库的代码,应该怎么办呢? 今天我再分享下在自己的项目里调试 iOS WebRTC.framework 的方法。 我这边的环境:macOS 10.1...

一、六、十、廿八

往年的年终总结基本就是各个方面随便说几句,最后来个未来展望,19 年状态太差,实在没心思多说,但今年非常特殊,所以要来点章法: 做了哪些重大决定/事? 当时是怎么考虑的? 现在感想如何? 未来如何规划/改进? 除了 2020,我还想再多回顾和反思一些,工作六年、北京十年、人生廿八载。 2020 今年肯定是目前为止转折最大的一年,婚姻、工作、生活,都是我主动寻...

OWT Server 进阶(三):RTCP 流程

原定的「OWT Server 进阶(二)」主题是 OWT Server 各个模块的宏观结构和流程,不过这个主题在 Hack WebRTC 书中已经涵盖,所以就不在博客里发了,此外书中还详细总结了信令和媒体的 JS/C++ 代码调用流程,敬请期待 :) 正如 RTP: Audio and video for the Internet 中文版阅读笔记 中所言,梳理 OWT Server RTC...

RTP:Audio and video for the Internet 中文版阅读笔记

之前发现连接 OWT Server 4.3.x 时,无法获取到 audio sending 相关的 stats,最终定位到是没有收到 Server 的音频 RTCP RR 报文,为了分析这个问题,我决定梳理一下 OWT Server 的 RTCP 流程,于是便有了 VSCode 远程调试 Docker 里的 OWT Server。不过在扎进代码之前,我决定先系统学习一下 RTP 协议,正好今...

WebRTC 只编译 DataChannel

上周一位朋友在知识星球里提问: 博主你好,我们是做 P2P 流媒体的,简单的说就是用 DataChannel 来传输数据,不需要用到音视频那些功能,但发布的 SDK 却不得不打包整个 WebRTC,太大了而且感觉没必要。请问有没有什么办法把 P2P 连接和 DataChannel 模块单独弄出来呢? 看到这个问题,我第一反应就是我曾在 WebRTC 代码库里看到过相关的 gn 选...

VSCode 远程调试 Docker 里的 OWT Server

不久前在群里听说了 VSCode 远程调试很厉害,但一直没试过,其实我认为,对于服务端程序,靠单步调试分析问题应该不是首选,主要还是得通过日志分析。不过如果是为了熟悉代码流程,那还是很有帮助的。之前我是通过静态看代码,再结合少量加日志,理清了音视频数据的完整转发、合成流程,但这次当我试图梳理 RTCP 流程时,代码看起来始终不得要领,于是想着干脆单步起来吧。直接上 gdb 命令行调试,肯定也...

2020 51 Hackathon

自从 HackWebRTC 书稿交给出版社编辑后,很多事情的推进都显得有些劲头不足,「给 AvConf 增加 Linux 平台支持并对服务器做压测」这件事,基本拖了整个四月,但还是没搞定。所以在 51 假期开始前,我就构思了一个 Hackathon,准备在这个出不了门的 51 一口气搞定一个事情。从待办事项列表中看来看去,最后确定了目标:给 AvConf 写一个日志自动处理工具。 这个事情...

OWT Server 集群部署和扩缩容

一转眼 OWT Server 快速入门已经快一年了,最近终于遇到了单台机器无法支撑用户规模的情况,原本我乐观地认为 OWT 自动扩缩容是一件很简单的事情,但实际上这事一点也不简单。 单台机器性能 扩缩容的第一步就是要测量单台机器的性能,为此我按照实际使用场景进行了测试:一个房间两台设备,纯 SFU 模式,视频推流参数为 1280x720 2.5Mbps。 第一次测试是在 AWS m4....

使用 KITE 进行 WebRTC 自动化测试

这两周在着手 OWT Server 的集群部署,为此必须先进行性能测试,原本我只根据一两个房间时的服务器负载情况推算单台机器能抗住多少房间,但忘篱大神一针见血: 一个房间占 6%,不代表三个房间占 18%,这里有个线性能力的问题,几百个线程的,要是能线性了,那也就真的奇迹再现。 但笔记本打开浏览器 tab 或多台手机测试,很容易就触发设备接入网带宽瓶颈,2.5Mbps 推流,实际...