美文网首页直播
LFLiveKit支持自定义filter

LFLiveKit支持自定义filter

作者: 迅时邮 | 来源:发表于2017-02-15 17:51 被阅读414次

    最近在研究直播过程中动态在在主播人脸上添加贴纸,之前推流端使用的是VideoCore,底层是C++实现,其Mixer不大好扩展,于是把推流端改用LFLiveKit,因为LFLiveKit支持GPUImage,GPUImage的好处是图片的处理灵活,可以使用多个滤镜组合来完成最终的图片合成。

    使用的过程中发现滤镜不好扩展,图片处理在LFVideoCapture中,如果自定义Filter需要修改LFLiveKit的源代码。于是对源代码做了一些改动,LFLiveSession提供filter接口,通过设置filter改变直播中使用的滤镜。并且提供一个支持水印和任何filter合成的filterGroup——LFFilterWithWaterMaskFilter。

    /**

    ** A filter to process Video from Camera

    */

    @property(nonatomic,strong, nullable) GPUImageOutput *filter;

    美颜和水印可以通过LFFilterWithWaterMaskFilter 滤镜合成一个滤镜,使用方法如下:

    - (GPUImageOutput *)myFilter {

    if(_myFilter ==nil) {

    UIImageView*imageview = [[UIImageViewalloc]initWithFrame:CGRectMake(60,100,65,22)];

    imageview.image= [UIImageimageNamed:@"huzi.png"];

    LFGPUImageBeautyFilter*beauty = [[LFGPUImageBeautyFilteralloc]init];

    LFFilterWithWaterMaskFilter *filter = [[LFFilterWithWaterMaskFilter alloc]initWithWaterMaskView:imageview filter:beauty];

    filter.videoSize=self.frame.size;

    _myFilter = filter;

    }

    return_myFilter;

    }

    具体的使用方法可以看源代码

    BPLiveKitTestDemo

    改动后就可以自定义滤镜了,后续写一个检测人脸,并且根据眼睛,鼻子,嘴巴位置贴图的滤镜,实现类似FaceU的功能。

    相关文章

      网友评论

      本文标题:LFLiveKit支持自定义filter

      本文链接:https://www.haomeiwen.com/subject/vpixtttx.html