GPUImage使用OpenGL提供了很多的图像处理算法,包括最常用的美颜处理、水印等功能,这些基本的功能如何添加到WebRTC中,本文以美颜为例子,叙述主要的改造流程;同时也适用于OpenGL等图像处理库;注:以下代码是使用WebRTCm76中的iOS端做分析,其他端处理思路类似。
1. GPUImage 的一些改动
对于摄像头数据的采集WebRTC和GPUImage都提供一个摄像头的封装类,相比之下WebRTC对摄像头的封装做了更多的处理,所以这里的改造,主要是替换掉mGPUImage提供的视频采集封装类,并将WebRTC采集的数据塞给GPUImage处理;同时将处理完的数据返回给WebRTC,相对的也要修改WebRTC的摄像头采集类,这在下一节介绍;
1.1 GPUImage数据输入源
在源码中提供了类GPUImageVideoCamera
用户采集摄像头的数据,同时这个类中也提供了外部输入数据的接口:
- (