iOS 云信视频通话 +滤镜效果

本文介绍如何使用云信SDK进行视频采集,并通过Core Image滤镜实现实时视频效果增强。文章详细展示了如何获取视频样本缓冲区,应用即时照片滤镜,并将处理后的数据返回给SDK。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

云信SDK会把采集数据 回调出来

NIMNetCallVideoCaptureParam *param = [[NIMNetCallVideoCaptureParamalloc]init];

    param.videoHandler = ^(CMSampleBufferRef _Nonnull sampleBuffer) {

//1- 添加回调


    };

    [selffillVideoCaptureSetting:param];

    option.videoCaptureParam = param;


//以上回调 添加以下方法

- (void)processVideoSampleBuffer:(CMSampleBufferRef)sampleBuffer

{

    CVPixelBufferRef pixelBuffer =CMSampleBufferGetImageBuffer(sampleBuffer);

    

    size_t bufferWidth = 0;

    size_t bufferHeight = 0;

    

    if (CVPixelBufferIsPlanar(pixelBuffer)) {

        bufferHeight = CVPixelBufferGetHeightOfPlane(pixelBuffer,0);

        bufferWidth = CVPixelBufferGetWidthOfPlane(pixelBuffer,0);

    } else {

        bufferWidth = CVPixelBufferGetWidth(pixelBuffer);

        bufferHeight = CVPixelBufferGetHeight(pixelBuffer);

    }


//加滤镜代码  测试

CFAbsoluteTime elapsedTime, startTime =CFAbsoluteTimeGetCurrent();

        CIImage *inputImage = [CIImage imageWithCVPixelBuffer:pixelBuffer];

        

        // 创建滤镜

        CIFilter *fiter = [CIFilter filterWithName:@"CIPhotoEffectInstant"];

        

        [fiter setValue:inputImage forKey:@"inputImage"];

        CIImage *outputImage = [fiter outputImage];

        elapsedTime = CFAbsoluteTimeGetCurrent() - startTime;

        NSLog(@"Core Image frame time: %f", elapsedTime *1000.0);

        

        EAGLContext *openglCtx = [[EAGLContext alloc]initWithAPI:kEAGLRenderingAPIOpenGLES2];

        CIContext *ctx = [CIContext contextWithEAGLContext:openglCtx];

        [ctx render:outputImage toCVPixelBuffer:pixelBuffer];


// 处理完的数据 塞回云信

    [[NIMAVChatSDKsharedSDK].netCallManagersendVideoSampleBuffer:sampleBuffer];

}



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值