Piasy

NEVER STOP

WebSocket Go

最近工作需要,对 WebSocket 进行了一点研究,今天在这里给大家分享一下我对 WebSocket 协议、WebSocket 的 Go 语言实现,以及 socket.io 服务端库的 Go 语言实现的理解。 WebSocket 简介 WebSocket 旨在实现 Web 应用(例如 IM、游戏等)里和 Server 的双向通信(两端称为 peer),以替代 HTTP 轮询等方案。 ...

WebRTC-Native 源码导读(十一):混音

去年十一月份我就打上了 WebRTC 混音模块的主意,并且做了一些尝试,不过最终没有做完,半年多过去了,正好最近工作上对此有了需求,所以这次就趁热打铁,把它彻底吃掉 :) 本文的分析基于 WebRTC 的 #23295 提交。 AudioMixer 的使用 AudioMixer 的使用比较简单,只需要三步: 创建:const auto mixer = AudioMixerImp...

WebRTC Native 源码导读(十):视频数据 native 层之旅

分析完应用上层的视频采集、渲染、编码之后,原本我是打算把完整的 WebRTC 带到 Flutter 的世界里,形成 FlutterRTC 的,但后来仔细想想,这件事没多大意思,做出来了也不能产生多大价值,所以我决定调头深入底层。 本篇算是真正深入底层的第一篇,让我们深究一下之前没有深究的话题:视频数据 native 层之旅,以及 WebRTC 对视频数据的处理。最近对 iOS 上层的分析也...

WebRTC Native 源码导读(九):iOS 视频硬编码实现分析

和对 WebRTC Android 的分析一样,继采集和渲染之后,现在让我们分析一下 WebRTC iOS 的视频硬编码实现。 iOS 的视频硬编码用到的是 VideoToolbox 库,除了编码,VideoToolbox 还提供了解码、转码等功能。我们先了解一下 VideoToolbox 编码的基本工作流程,再看看 WebRTC 对它的使用。 本文的分析基于 WebRTC 的 #232...

WebRTC Native 源码导读(八):iOS 视频渲染实现分析

前面我们已经知道,相机数据采集之后,会通过 RTCVideoCapturerDelegate 的 capturer:didCaptureVideoFrame 回调抛出。在 WebRTC iOS 工程中,这个 delegate 只有一个实现,它就是 RTCVideoSource。 视频数据采集之后的处理,iOS 和 Android 有一个很大的差别。iOS 的本地视频预览没有使用自定义渲染,...

WebRTC Native 源码导读(七):iOS 相机采集实现分析

从上一篇开始,我们这个系列就进入了 iOS 的世界,接下来我打算先熟悉一下 iOS 相机相关的内容,包括采集、预览、编码等,本篇重点是采集。 WebRTC-iOS 的相机采集主要涉及到以下几个类:AVCaptureSession, RTCCameraVideoCapturer, RTCVideoFrame。 AVCaptureSession 是 iOS 和 macOS 系统提供的采集管理...

YUV 数据格式完全解析

从事多媒体开发的朋友,对 YUV 绝对不陌生,但大家真的能把 YUV 彻底讲清楚吗?这次,让我们彻底揭开 YUV 的「不神秘」面纱。 采样比 人类视觉系统对亮度(luma)的敏感度高于对色度(chroma)的敏感度,因此可以对色度数据进行下采样; 采样比通常表示为 J:a:b,以表示一个宽为 J 像素、高为 2 像素的采样区域内 Y Cb Cr 的采样比: ...

WebRTC Native 源码导读(六):iOS P2P 连接过程和 DataChannel 使用

今天给大家带来 WebRTC iOS demo 的工作流程分析(P2P 连接过程),以及 DataChannel 的使用示例。最后,我把 WebRTC iOS demo 的代码从 WebRTC 代码库中摘了出来,并使用 CocoaPods 上 Google 发布的预编译库,GitHub 传送门。 另外,从本篇开始,「WebRTC Android 源码导读」系列正式升级为「WebRTC Na...

谈谈软件开发管理

——读《卓有成效的管理者》、《人月神话》、《软件随想录》有感 以前我一直觉得自己读书慢,但在 17 年底、18 年初的一个月里,我也读了四本书,其实挺快的。主要还是得肯花时间,以前总想把时间花在写代码、做开源项目上。实践很好,但实践之余看看前人的经验总结,印证、校正自己的实践,也很重要。 看完《卓有成效的管理者》,我开始记录自己的时间用在了哪里,并认真思考「知人善用」;看完《人月神话》,...

我在鼎点这一年

2017 转瞬即逝,去年此刻,我还正手捧《程序员面试金典》,一点一点地安抚焦虑的内心呢,不过感谢上苍,再次给了我好运气,让 2016 顺利收官。 去年总结时,我唯一感到遗憾的,就是下面三点了: 2016 年,锻炼身体有点少,书看得有点少,安卓之外的技术了解得太少,这是最大的不足。 好在今年有了不少改进。 今年踢了不少场球,虽然都是瞎踢,但也算运动不是? 从大年初一凌晨开...