Uso de la biblioteca «Vonage Media Processor» y aplicación de transformaciones multimedia
Puedes utilizar los transformadores predefinidos de la biblioteca de Vonage Media Processor o crear tu propio transformador de audio o vídeo personalizado para aplicarlo al vídeo publicado.
Puedes utilizar el OTPublisherKit.audioTransformers y OTPublisherKit.videoTransformers para aplicar transformadores de audio y vídeo a un flujo.
Importante: Las transformaciones multimedia no son compatibles con todos los dispositivos. Consulte Requisitos del cliente.
El SDK de Vonage Video para iOS incluye dos formas de implementar transformadores:
-
Moderado - Para vídeo, puede aplicar los transformadores de vídeo de desenfoque de fondo y de sustitución de fondo incluidos en la función Biblioteca multimedia de Vonage. Véase Aplicación de un transformador de vídeo de la biblioteca multimedia de Vonage. Para el audio, puede aplicar el transformador de audio con supresión de ruido incluido en el Biblioteca multimedia de Vonage. Véase Aplicación de un transformador de audio desde la biblioteca multimedia de Vonage.
-
Avanzado — Puedes crear el tuyo propio transformadores de vídeo personalizados y transformadores de audio personalizados.
Requisitos del cliente
Los transformadores de la biblioteca multimedia de Vonage son compatibles con el chipset Apple A11 Bionic y versiones posteriores, en las siguientes combinaciones de dispositivos y sistemas operativos:
| Dispositivo | Sistemas operativos compatibles |
|---|---|
| iPhone 11 y modelos posteriores | iOS 13 y versiones posteriores |
| iPad Air 4 y superior | iPadOS 14.1 y superior |
| iPad mini de 5.ª generación y posteriores | iPadOS 14 y superior |
| iPad Pro de 5ª generación o superior | iPadOS 14.5 o superior |
| iPhone SE de 2ª generación y superior | iOS 13.4 o superior |
Prueba en otros dispositivos para comprobar la compatibilidad.
Los transformadores requieren un procesador adecuado. Incluso en dispositivos compatibles, los transformadores pueden no ser estables cuando los procesos en segundo plano limitan los recursos de procesamiento disponibles. Las mismas limitaciones pueden aplicarse con transformadores multimedia personalizados además de transformadores de la biblioteca multimedia de Vonage.
Es posible que iOS limite el rendimiento de la CPU para ahorrar energía (por ejemplo, para prolongar la duración de la batería). Esto puede provocar que el rendimiento del transformador no sea óptimo y que aparezcan artefactos de audio o vídeo no deseados. En estos casos, recomendamos desactivar el modo de bajo consumo.
Muchas transformaciones de vídeo (como el desenfoque de fondo) utilizan la segmentación para separar al orador del fondo. Para obtener los mejores resultados, utilice una iluminación adecuada y un fondo liso. La iluminación insuficiente o los fondos complejos pueden provocar artefactos de vídeo (por ejemplo, el orador o un sombrero que lleve puesto pueden aparecer borrosos junto con el fondo).
Debe realizar pruebas comparativas en tantos dispositivos compatibles como sea posible, independientemente de la transformación.
Integración con la biblioteca multimedia de Vonage
Debido al significativo aumento de tamaño al integrar la biblioteca multimedia de Vonage en el SDK, a partir de OpenTok SDK v2.27.4 los transformadores multimedia están disponibles a través de la biblioteca multimedia opcional de Vonage. Esta biblioteca necesita ser añadida explícitamente al proyecto.
La biblioteca multimedia de Vonage se integró inicialmente en el SDK de OpenTok. Si tu versión del SDK de OpenTok es anterior a la 2.27.4, ve directamente a Aplicación de un transformador de vídeo de la biblioteca multimedia de Vonage y Aplicación de un transformador de audio desde la biblioteca multimedia de Vonage.
La biblioteca multimedia de Vonage se puede integrar utilizando Swift Package Manager o CocoaPods.
Gestor de paquetes Swift
Puedes añadir los transformadores de vídeo VonageClientSDK añadiendo el archivo https://github.com/vonag/vonage-client-sdk-video-transformers.git como dependencia de un paquete Swift.
Para añadir una dependencia de paquete a su proyecto Xcode, seleccione Archivo > Paquetes Swift > Añadir dependencia de paquete e introduce la URL de su repositorio.
Cocoapods
La biblioteca multimedia de Vonage está disponible como Pod "VonageClientSDKVideoTransformers", para uso con CocoaPods.
ℹ️
Si se realiza una llamada a [OTVideoTransformer initWithName:properties:] o [OTAudioTransformer initWithName:properties:] Si se realiza sin cargar la biblioteca, el transformador devuelto será nulo. Se generará una excepción con el siguiente código de error 0x0A000006 - OTC_MEDIA_TRANSFORMER_OPENTOK_TRANSFORMERS_LIBRARY_NOT_LOADED.
Aplicación de un transformador de vídeo de la biblioteca multimedia de Vonage
Utiliza el OTVideoTransformer initWithName:properties: Método para crear un transformador de vídeo que utilice un transformador con nombre de la biblioteca multimedia de Vonage.
Se admiten dos transformadores:
-
Desenfoque de fondo. Para este filtro, configura el
nameparámetro a"BackgroundBlur". Y establece unpropertiesa una cadena JSON. El formato del JSON es "{"radius": "None"}". Valores válidos para el parámetroradiusson "Ninguno", "Alto" y "Bajo". Si establece la propiedadradiusa "Personalizado", añada una propiedadcustom_radiusa la propiedad JSON string: "{"radio": "Personalizado", "radio_personalizado": "valor"}" (dondecustom_radiuses un número entero positivo que define el radio de desenfoque).Copiavar backgroundBlur = new OTVideoTransformer() backgroundBlur.init(name: "BackgroundBlur", properties:"{\"radius\":\"High\"}") var myVideoTransformers = [backgroundBlur] publisher.videoTransformers = myVideoTransformers -
Sustitución de antecedentes. Para este filtro, configura el
nameparámetro a"BackgroundReplacement". Y establece unpropertiesa una cadena JSON. El formato del JSON es "{"ruta_archivo_imagen": "ruta/a/imagen"}", dondeimage_file_pathes la ruta absoluta del archivo de una imagen local que se utilizará como fondo virtual. Los formatos de imagen compatibles son PNG y JPEG.Copiavar backgroundReplacement = new OTVideoTransformer() backgroundReplacement.init(name: "BackgroundReplacement", properties:"{\"image_file_path\":\"path-to-image\"}") var myVideoTransformers = [backgroundReplacement] publisher.videoTransformers = myVideoTransformers
Aplicación de un transformador de audio desde la biblioteca multimedia de Vonage
Utiliza el OTAudioTransformer initWithName:properties: Método para crear un transformador de vídeo que utilice un transformador con nombre de la biblioteca multimedia de Vonage.
Se admite un transformador:
-
Supresión de ruido. Para este filtro, configura el
nameparámetro a"NoiseSuppression". Ajuste elpropertiesa una cadena JSON que define las propiedades del transformador. Para el transformador de supresión de ruido, este JSON no incluye ninguna propiedad por el momento. Establézcalo como una cadena vacía"".Copiavar noiseSuppression = new OTAudioTransformer() noiseSuppression.init(name: "NoiseSuppression", properties:"") var myAudioTransformers = [noiseSuppression] publisher.audioTransformers = myAudioTransformers
Creación de un transformador de vídeo personalizado
Crear una clase que implemente el método OTCustomVideoTransformer
protocolo. Aplicar el OTCustomVideoTransformer.transform() aplicando una transformación al OTVideoFrame pasado al método. La dirección OTCustomVideoTransformer.transform() para cada fotograma de vídeo.
A continuación, ajuste el OTPublisherKit.videoTransformers propiedad a una matriz que incluya el objeto que implementa la
interfaz OTCustomVideoTransformer.
Puedes combinar el transformador de la biblioteca multimedia de Vonage (consulta la sección anterior) con transformadores personalizados o aplicar
múltiples transformadores personalizados agregando múltiples objetos OTPublisherKit.VideoTransformer a la matriz utilizada para
para el OTPublisherKit.videoTransformers propiedad.
Creación de un transformador de audio personalizado
Crear una clase que implemente el método OTCustomAudioTransformer
protocolo. Aplicar el OTCustomAudioTransformer.transform() aplicando una transformación al OTAudioData pasado al método. La dirección OTCustomAudioTransformer.transform() para cada fotograma de audio.
A continuación, ajuste el OTPublisherKit.audioTransformers a un array que incluye el objeto que implementa la interfaz
CustomAudioTransformer:
Puede aplicar varios transformadores personalizados añadiendo varios objetos PublisherKit.AudioTransformer a la matriz utilizada para
para el OTPublisherKit.audioTransformers propiedad.
Compensación de transformadores de vídeo para un editor
Para borrar los transformadores de vídeo de un editor, configure la opción OTPublisherKit.videoTransformers a una matriz vacía.
publisher.videoTransformers = [];
Compensación de transformadores de audio para un editor
Para borrar los transformadores de audio de un editor, establezca el parámetro OTPublisherKit.audioTransformers a una matriz vacía.
publisher.audioTransformers = [];
Aplicación de ejemplo
Véase esta muestra en el repositorio «vonage-video-ios-sdk-samples-swift» de GitHub.