GPUImage使用OpenGL提供了很多的图像处理算法,包括最常用的美颜处理、水印等功能,这些基本的功能如何添加到WebRTC中,本文以美颜为例子,叙述主要的改造流程;同时也适用于OpenGL等图像处理库;注:以下代码是使用WebRTCm76中的iOS端做分析,其他端处理思路类似。
1. GPUImage 的一些改动
对于摄像头数据的采集WebRTC和GPUImage都提供一个摄像头的封装类,相比之下WebRTC对摄像头的封装做了更多的处理,所以这里的改造,主要是替换掉mGPUImage提供的视频采集封装类,并将WebRTC采集的数据塞给GPUImage处理;同时将处理完的数据返回给WebRTC,相对的也要修改WebRTC的摄像头采集类,这在下一节介绍;
1.1 GPUImage数据输入源
在源码中提供了类GPUImageVideoCamera用户采集摄像头的数据,同时这个类中也提供了外部输入数据的接口:
- (
本文介绍了如何将WebRTC的摄像头数据适配到GPUImage进行处理。首先,改造GPUImage的数据输入源,创建新的类继承自GPUImageVideoCamera,仅保留数据输入接口。接着,修改GPUImage数据输出源,添加数据回调支持。然后,对WebRTC的RTCCameraVideoCapturer进行改造,增加数据回调和处理后的数据返回方法。通过这些改造,可以实现摄像头数据的GPU处理并返回给WebRTC,而无需进行额外的格式转换。
订阅专栏 解锁全文
1373

被折叠的 条评论
为什么被折叠?



