iOS 对YUV420P数据美颜

最近在弄视频直播的的app,里面就涉及到一对一视频美颜的功能,由于我的项目里面集成的是融云的视频SDK(融云是集成了声网的SDK),但是坑爹的融云sdk不带直播美颜功能,问了客服回复说自己写。。蛋疼,关键我对于美颜这块的算法一无所知啊。。只能找了个第三方的美颜方案解决了(需要付费,首月免费~)。虽然要付费但起码能实现美颜功能了。。

1.首先开启 融云的视频帧监听的功能,在RCCall.mm的文件中的两个方法如下:

一。startSingleCall:(NSString *)targetId mediaType:(RCCallMediaType)mediaType
二。- (void)didReceiveCall:(RCCallSession *)callSession

添加声网的注册监听视频帧的方法 agoraRegisterVideoFrameObserver(RCDVideoFrameObserver::sharedObserver(), false, true);

 

 

二。RCDVideoFrameObserver.mm文件中如果上述方法中添加了监听那么这个方法就可以捕捉到视频帧,视频帧数据格式是yuv420p格式的。 

 

三。对捕捉的视频帧处理。

使用了AiyaEffectSDK的sdk地址:https://gitee.com/wangyng/AiyaEffectsWithAgoraIOS/tree/master ,这个sdk需要去官网注册一个 license才能使用美颜,不然没效果哟。

这个sdk大概的处理是先对 yuv420P->ARGB->美颜处理->ARGB->420P

代码大致如下图: 

该库提供了 美颜,瘦脸 ,大眼,特效等功能。。ok就这样吧。如果谁有免费的美颜方法麻烦提供下 多谢了。

 

posted @ 2018-04-19 15:38  激动的马  阅读(414)  评论(0编辑  收藏  举报