2018-05-24 Piasy
分析完应用上层的视频采集、渲染、编码之后,原本我是打算把完整的 WebRTC 带到 Flutter 的世界里,形成 FlutterRTC 的,但后来仔细想想,这件事没多大意思,做出来了也不能产生多大价值,所以我决定调头深入底层。 本篇算是真正深入底层的第一篇,让我们深究一下之前没有深究的话题:视频数据 native 层之旅,以及 WebRTC 对视频数据的处理。最近对 iOS 上层的分析也不算白费,毕竟在 iOS 平台深入底层,无论是编译还是调试都更方便。 继续阅读 »
2018-08-18 jude
初次尝试 React Native 开发需要注意的几点 继续阅读 »
2017-08-26 Piasy
有时候我们需要在 APP 运行时验证当前 APP 是否被篡改,而 SDK 提供方通常也需要验证 APP 是否被授权,今天我们就来探讨一下如何在 native 层实现这一功能,以及在这个过程中的一些要点和技巧。 认证方案 我们先探讨一下有哪些认证方案。 继续阅读 »
2018-04-05 Piasy
今天给大家带来 WebRTC iOS demo 的工作流程分析(P2P 连接过程),以及 DataChannel 的使用示例。最后,我把 WebRTC iOS demo 的代码从 WebRTC 代码库中摘了出来,并使用 CocoaPods 上 Google 发布的预编译库,GitHub 传送门。 继续阅读 »
2017-07-24 Piasy
前面分享了一套开箱即用的 WebRTC 开发环境,希望能给对 WebRTC 感兴趣的朋友带来帮助。不过有了开发环境只是迈出了万里长征第一步,后面的事情还得仔细研读源码才行,所以这里给大家先带来 WebRTC 的安卓 demo 工程—— AppRTC-Native 的源码导读系列。(十个月前说好的拆 Dagger2 看来又要等等了,海涵海涵...) 继续阅读 »
2018-05-02 Piasy
前面我们已经知道,相机数据采集之后,会通过 RTCVideoCapturerDelegate 的 capturer:didCaptureVideoFrame 回调抛出。在 WebRTC iOS 工程中,这个 delegate 只有一个实现,它就是 RTCVideoSource。 继续阅读 »
2018-06-05 Piasy
去年十一月份我就打上了 WebRTC 混音模块的主意,并且做了一些尝试,不过最终没有做完,半年多过去了,正好最近工作上对此有了需求,所以这次就趁热打铁,把它彻底吃掉 :) 本文的分析基于 WebRTC 的 #23295 提交。 AudioMixer 的使用 继续阅读 »
2018-05-04 Piasy
和对 WebRTC Android 的分析一样,继采集和渲染之后,现在让我们分析一下 WebRTC iOS 的视频硬编码实现。 iOS 的视频硬编码用到的是 VideoToolbox 库,除了编码,VideoToolbox 还提供了解码、转码等功能。我们先了解一下 VideoToolbox 编码的基本工作流程,再看看 WebRTC 对它的使用。 继续阅读 »
2018-09-14 Piasy
我真正接触 WebRTC 的 ADM 是在做 iOS 混音的时候,iOS 的音频采集、播放之前没有做过,所以想着从 WebRTC 的音频采集播放代码里借鉴一下 AudioUnit 的使用,结果折腾了半天愣是没搞定,后来索性直接使用了 ADM,为混音项目草草地画上了句号。 继续阅读 »
2017-08-30 Piasy
前面四篇里,我们分别分析了 WebRTC Android 的视频采集、视频渲染和视频硬编码,最后把相关代码剥离出来形成了一个独立的模块:VideoCRE,并对其进行了极大地内存抖动优化。从本篇起,我们将迈入新的领域:网络传输。首先我们看看 P2P 连接的建立过程,以及 DataChannel 的使用,最终我们会利用 DataChannel 实现一个 P2P 的文字聊天功能。 继续阅读 »