Ajustar el audio y el vídeo — macOS
Puedes realizar ajustes de audio y vídeo en publicado y suscrito fuentes:
- Publicar sólo audio o vídeo
- Publicar en una sesión solo de voz
- Uso de un capturador de vídeo personalizado
- Duplicar la visualización local del vídeo de un editor
- Uso de un controlador de audio personalizado
- Ajustar el volumen del audio de un abonado
- Suscribirse solo a contenido de audio o vídeo
- Detectar si un flujo tiene audio o vídeo
- Ajuste de la calidad del audio
Publicar sólo audio o vídeo
Puedes activar o desactivar el audio y el vídeo llamando a la función otc_publisher_set_publish_audio() y otc_publisher_set_publish_video() funciones, pasando como parámetro OTC_FALSE o OTC_FALSE como el publish_audio y publish_audio parámetros. Por ejemplo, el siguiente código desactiva el audio:
otc_publisher_set_publish_audio(publisher, OTC_FALSE);
Publicar en una sesión solo de voz
Para configurar un solo voz sesión, crear una instancia de un otc_publisher_settings struct, llama a la otc_publisher_settings_set_video_track() función, pasando como parámetro OTC_FALSE como el enabled parámetro. A continuación, utiliza el otc_publisher_new_with_settings() función que hay que crear. Por ejemplo, el siguiente código crea un editor para una sesión solo de voz:
otc_publisher_settings publisher_settings = otc_publisher_settings_new();
otc_publisher_settings_set_video_track(publisher_settings, OTC_FALSE);
otc_publisher_callbacks publisher_callbacks = {0};
// Set callbacks for the publisher. Then:
otc_publisher publisher = otc_publisher_new_with_settings(publisher_callbacks, publisher_settings);
Uso de un capturador de vídeo personalizado
El otc_publisher_new() La función incluye un capturer parámetro. Si lo configuras en NULL, el SDK utiliza la cámara predeterminada del sistema como fuente para la transmisión de vídeo publicada. No obstante, puedes utilizar un capturador de vídeo personalizado para el editor definiendo un otc_video_capturer_callbacks struct y pasándola como el capturer del otc_publisher_new() función. En otc_video_capturer_callbacks La estructura incluye punteros a funciones de devolución de llamada que se activan ante eventos relacionados con el vídeo del editor, como cuando el capturador de vídeo necesita un nuevo fotograma de vídeo.
Para ver un ejemplo, consulta el ejemplo «Custom Video Capturer» de la opentok-macos-sdk-ejemplos repo.
Duplicar la visualización local del vídeo de un editor
Por defecto, el renderizador local del vídeo publicado refleja el vídeo. Puede configurar el mirror_on_local_render propiedad del otc_video_capturer_settings que se obtiene llamando a la función get_capture_settings(capturer, settings) función. Configúrala en true para que el vídeo se duplique en el renderizador local del editor. Configúralo en false para que no se refleje.
Esta configuración solo afecta al vídeo reproducido en la aplicación cliente del editor. No tiene ningún efecto sobre el vídeo en los clientes suscritos.
Uso de un controlador de audio personalizado
Puedes definir un dispositivo de audio personalizado para proporcionar audio a todos los emisores del cliente y gestionar el flujo de audio mezclado procedente de todos los flujos a los que el cliente está suscrito.
Un dispositivo de audio personalizado se representa mediante un otc_audio_device struct. Y un otc_audio_device_callbacks La estructura incluye punteros a funciones que actúan como callbacks relacionados con el audio que invoca el SDK de OpenTok para Linux.
Para ver un ejemplo, consulta el ejemplo «Dispositivo de audio personalizado» en el opentok-macos-sdk-ejemplos repo.
Ajustar el volumen del audio de un abonado
Puede ajustar individualmente el volumen de audio para cada abonado llamando a la tecla otc_subscriber_set_audio_volume() función.
Suscribirse solo a contenido de audio o vídeo
De forma predeterminada, un suscriptor se configura para suscribirse al audio y al vídeo, si están disponibles. Puedes activar o desactivar el audio llamando a la función otc_subscriber_set_subscribe_to_audio(otc_subscriber *subscriber, otc_bool subscribe_to_audio) :
// audio off:
otc_subscriber_set_subscribe_to_video(subscriber, OTC_FALSE);
// audio on:
otc_subscriber_set_subscribe_to_video(subscriber, OTC_TRUE);
Puedes activar o desactivar el vídeo llamando al otc_subscriber_set_subscribe_to_video(otc_subscriber *subscriber, otc_bool subscribe_to_video) :
// video off:
otc_subscriber_set_subscribe_to_video(subscriber, OTC_FALSE);
// video on:
otc_subscriber_set_subscribe_to_video(subscriber, OTC_TRUE);
Detectar si un flujo tiene audio o vídeo
Puedes llamar al otc_stream_has_audio() y otc_stream_has_audio() funciones miembro de un otc_stream por ejemplo, para comprobar si tiene audio o vídeo.
Ajuste de la calidad del audio
Para ajustar con precisión la calidad del audio de una transmisión de un editor, se pueden utilizar los siguientes métodos:
Velocidad de transmisión de audio
otc_publisher_set_max_audio_bitrate(otc_publisher* publisher, uint32_t bitrate);
El bitrate deseado para el audio publicado, en bits por segundo. El rango de valores admitido es de 6.000 - 510.000. (Los valores no válidos se ignoran). (Los valores no válidos se ignoran.) Establezca este valor para permitir audio de alta calidad (o para reducir el uso de ancho de banda con audio de menor calidad). Si no establece esta opción, OpenTok asigna automáticamente una tasa de bits de audio para el flujo.
A continuación se indican los ajustes recomendados:
- 8.000 - 12.000 para voz de banda estrecha (NB)
- 16.000 - 20.000 para voz de banda ancha (WB)
- Entre 28 000 y 40 000 para la voz en banda completa (FB)
- 48.000 - 64.000 para música de banda completa (FB)
Desactivar el procesamiento de audio
otc_publisher_settings_set_disable_audio_processing (otc_publisher_settings* settings, otc_bool disabled);
Si desea desactivar la cancelación de eco, el control automático de ganancia y la supresión de ruido para el audio publicado. Es posible que desee establecer esto en true al publicar audio de alta calidad. El valor por defecto es false.
Control automático de ganancia
otc_publisher_settings_set_auto_gain_control(otc_publisher_settings* settings, otc_bool enabled);
Si desea activar el control automático de ganancia para el audio publicado. Es posible que desee establecer esto en false al publicar audio de alta calidad. El valor por defecto es true. Esta configuración no se tiene en cuenta si desactivas el procesamiento de audio.
Cancelación de eco
otc_publisher_settings_set_echo_cancellation(otc_publisher_settings* settings, otc_bool enabled);
Si se desea activar la cancelación de eco para el audio publicado. Quizás te interese configurar esta opción en false al publicar audio de alta calidad. El valor por defecto es true. Esta configuración no se tiene en cuenta si desactivas el procesamiento de audio
Supresión del ruido
otc_publisher_settings_set_noise_suppression(otc_publisher_settings* settings, otc_bool enabled);
Si desea activar la supresión de ruido para el audio publicado. Es posible que desee establecer esto en false al publicar audio de alta calidad. El valor por defecto es true. Este ajuste se ignora si desactiva el procesamiento de audio.
Estéreo
otc_publisher_settings_set_stereo(otc_publisher_settings* settings, otc_bool enabled);
Si se publica audio estéreo. El valor por defecto es false. Un ejemplo práctico ejemplo de implementación