ios - 如何将核心图像过滤器添加到 OpenTok 视频?

标签 ios swift image opentok tokbox

当我在 iOS 上发布流时,TokBox 使用默认摄像头。有没有办法向发布者添加实时过滤器?

我只想要一些关于如何创建过滤器并将其附加到 opentok 发布者对象 (OTVideoCapture) 的简单示例代码。

或者,如果这不是正确的方法...在订阅者端附加过滤器也可以。

如何轻松做到这一点?

最佳答案

据我了解,您想在发送视频数据之前以及实时应用过滤器。这里没有简单的源代码,但我可以告诉你路径。

对于实时视频过滤器,您可以使用 GPUImage框架。它已经准备好使用相机 GPUImageVideoCamera 类。因此,您需要创建实现 GPUImageInput 的类(它是 GPUImage 的目标),它将根据输入生成 OTVideoFrame 帧并将其添加到管道。

像这样:

videoCamera = [[GPUImageVideoCamera alloc] initWithSessionPreset:AVCaptureSessionPreset640x480 cameraPosition:AVCaptureDevicePositionBack];

videoCamera.outputImageOrientation = UIInterfaceOrientationPortrait;
videoCamera.horizontallyMirrorFrontFacingCamera = NO;
videoCamera.horizontallyMirrorRearFacingCamera = NO;

// filter
filter = [[GPUImageSepiaFilter alloc] init];
[videoCamera addTarget:filter];

// frame producer for OTVideoCapture
frameProducer = [[FrameProducer alloc] init];
[filter addTarget:frameProducer];

// camera view to show what we record
[filter addTarget:filterView];

您还需要为 OpenTok 本身自定义实现 OTVideoCapture 协议(protocol)。您可以使用 Lets-Build-OTPublisher sample 中的 TBExampleVideoCapture作为起点。您需要将相机代码替换为上述 GPUImageVideoCamera 相机代码才能实时使用滤镜。

关于ios - 如何将核心图像过滤器添加到 OpenTok 视频?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32308904/

相关文章:

ios - 从 UITableViewCell 获取 UITableView separatorColor?

ios - 如何为 iOS 创建游戏 map ?

ios - 设备旋转通知未按预期运行 iOS Swift

iOS 根据字符数动态标签宽度

swift - 在scenekit中设置游戏场景时出错

javascript - 使 div 比其容器更宽的更简单的方法

html - 动态插入的img元素的CSS全高

image - 使用灰度图像用matlab创建RGB图像

ios - 音乐在 swift xcode 中相互播放

ios - Sprite 在不正确的位置产卵