WebRTC video pipeline

本文主要从网上收集,贴这里是为自己查看方便。
原文:https://blog.piasy.com/2018/05/24/WebRTC-Video-Native-Journey/index.html

 

 

通过这次的源码分析,我们可以看到 WebRTC 是如何设计 VCM (Video Coding Module) 这个跨平台视频处理模块的结构的。

首先这个模块包括采集、编码、jitter buffer、解码、渲染等功能,还有它们的线程、队列管理,其中采集、(硬件)编解码、渲染都是平台相关的,其他模块以及对平台相关模块的调用和管理,都是平台无关的。

那我们就通过接口 + 回调的形式,将平台相关的模块抽离出去,对它们的操作,VCM 就调用接口,而它们需要把数据交给 VCM,或者需要调用 VCM 的功能时,就通过回调的形式把控制权还给 VCM。

至于怎么把它们关联起来,就需要在构造 VCM 的时候,把接口实现注入进去了,或者利用工厂模式,把 factory 注入进去,VCM 调用 factory 来创建接口的平台相关实现,显然 WebRTC 是用了工厂模式。

 0. capture-->encoder m104

 

1. capture-encoder call stack

 

 

2. Sender call stack

 

 

3. Decoder call stack 

 

4. Render call stack:

 

5. Receive - Decode call stack

1). VP8 

2) H264

 

posted @ 2022-01-08 20:19  AndyHu518  阅读(163)  评论(0编辑  收藏  举报