Подтвердить что ты не робот

Как добавить фильтры изображения ядра к видеороликам OpenTok?

Когда я публикую поток на iOS, TokBox использует камеру по умолчанию. Есть ли способ добавить к издателю фильтры в реальном времени?

Мне просто нужен простой, примерный код о том, как создать фильтр и присоединить его к объекту издателя opentok (OTVideoCapture).

Или, если это не правильный способ сделать это... добавление фильтра на стороне абонента тоже работает.

Как это можно сделать легко?

4b9b3361

Ответ 1

Как я понимаю, вы хотите применять фильтры перед отправкой видеоданных, а также в режиме реального времени. Здесь нет простого исходного кода, но я мог бы рассказать вам путь.

Для видеофильмов реального времени вы можете использовать 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];

Также вам нужна специальная реализация протокола OTVideoCapture для самого OpenTok. Вы можете использовать TBExampleVideoCapture из образец Lets-Build-OTPublisher в качестве начальной точки. Вам нужно заменить код камеры кодом GPUImageVideoCamera камеры, чтобы использовать фильтры в режиме реального времени.