Conexión con un único par
Consigue sesiones de vídeo más ligeras, rápidas y escalables canalizando todas las transmisiones de los suscriptores a través de una única conexión entre pares WebRTC.
A medida que aumentan tus sesiones, también lo hace el número de conexiones entre pares WebRTC que cada cliente tiene que mantener (una por cada flujo suscrito). Cada conexión conlleva su propia negociación ICE, su propio protocolo de enlace DTLS y su propio estado de control de congestión. Esa sobrecarga puede acumularse rápidamente, sobre todo en dispositivos móviles.
Conexión entre pares única (SPC) reduce la sobrecarga de establecimiento de la conexión. Cuando está activada, todas las transmisiones de los suscriptores de un cliente se multiplexan a través de una única conexión compartida con el Vonage Video Media Router, independientemente del número de emisores diferentes que haya en la sesión. El resultado es una menor carga en la red, con un menor uso de puertos, una gestión más inteligente del ancho de banda y una mayor escalabilidad en todos los dispositivos.
La función «Conexión con un único par» solo está disponible en sesiones enrutadas (sesiones que utilizan el Vonage Video Media Router). En las sesiones que utilizan enrutamiento adaptable de medios, El SPC no se aplica mientras los datos multimedia circulan de forma directa entre dos participantes, pero sí se aplica una vez que la sesión pasa a utilizar el enrutador de medios. Véase El enrutador de medios de video de Vonage y los modos de medios.
Beneficios
Habilitar la conexión con un único interlocutor es una de las optimizaciones más eficaces que puedes aplicar al vídeo con varios participantes. Estas son las ventajas que obtienes:
-
Consumo de recursos significativamente menor: Cada conexión entre pares cuenta con sus propios puertos, sockets, candidatos ICE, protocolos de establecimiento de conexión DTLS y contextos SRTP. Con docenas de suscriptores, esto aumenta el uso de la CPU, la memoria y los descriptores de archivo. SPC agrupa todo ello en una única conexión, liberando recursos para tu aplicación.
-
Control de tarifas más inteligente y unificado: Con conexiones entre pares independientes, cada una ejecuta su propio algoritmo de control de congestión, compitiendo con las demás por la misma capacidad del enlace. El SPC proporciona al estimador de ancho de banda una visión única y unificada de la red para todos los flujos multimedia, lo que se traduce en una adaptación más estable de la tasa de bits y menos fluctuaciones en la calidad.
-
Compatibilidad con sesiones más largas en dispositivos móviles: Los dispositivos móviles cuentan con recursos limitados de CPU, memoria y red, y iOS, en particular, limita el número de conexiones entre pares simultáneas. Al agrupar todas las transmisiones de los suscriptores en una sola conexión entre pares, SPC permite a los clientes móviles gestionar cómodamente más transmisiones en una sola sesión.
-
Configuración más rápida de la suscripción: Añadir un nuevo suscriptor ya no requiere una negociación completa de ICE/DTLS desde cero. Se reutiliza la conexión existente, por lo que los nuevos flujos aparecen más rápido. Esto se nota especialmente en sesiones en las que los participantes se unen y se retiran con frecuencia.
-
Menor consumo de batería: Un menor número de rutas de red activas supone menos paquetes de mantenimiento de conexión y menos activaciones de la radio en los dispositivos móviles, lo que, en última instancia, se traduce en una mayor duración de la batería para tus usuarios finales.
-
Reducción de la complejidad de la red: Una conexión implica un conjunto de asignaciones NAT, una asignación TURN (si es necesario) y una ruta a través de los cortafuegos corporativos. Esto simplifica la implementación en entornos de red restrictivos y reduce los fallos de conectividad.
-
Calidad más predecible a escala: Dado que todos los contenidos multimedia comparten un único canal de transporte, el ancho de banda se distribuye de forma más equitativa entre las transmisiones. No hay «conexiones que compitan entre sí» y se priven mutuamente de ancho de banda, lo que se traduce en una experiencia más fluida y estable para todos los participantes.
Casos de uso
Las aplicaciones se benefician de la conexión de par único siempre que el número de flujos suscritos comienza a aumentar. Estos son los casos en los que marca la mayor diferencia:
-
Grandes sesiones interactivas: Las aulas virtuales, la colaboración en grupo y las videollamadas con múltiples participantes pueden contar con muchos usuarios emitiendo al mismo tiempo. A medida que aumenta el número de emisores, cada cliente suscrito establece más conexiones entre pares. SPC mantiene el uso de recursos constante, independientemente del número de transmisiones a las que se suscriba un cliente. Ten en cuenta que tu aplicación debe seguir priorizando qué widgets de vídeo mostrar y gestionar a qué transmisiones suscribirse, ya que mostrar a todos los participantes en pantalla a la vez rara vez resulta práctico.
-
Applications diseñadas prioritariamente para dispositivos móviles: Si tus usuarios utilizan teléfonos y tabletas, se recomienda encarecidamente el SPC. Un menor número de conexiones supone menos carga para la CPU, menos presión sobre la memoria y un menor consumo de batería.
-
Redes de ancho de banda limitado o variable: En conexiones Wi-Fi, móviles o por satélite con congestión, un único bucle de control de congestión asigna el ancho de banda de forma mucho más eficiente que un gran número de conexiones que compiten entre sí. Los usuarios disfrutan de un vídeo más fluido con menos almacenamiento en búfer.
-
Redes corporativas y restringidas: Los cortafuegos, los servidores proxy y los NAT pueden fallar o aumentar la latencia cuando tienen que gestionar muchos flujos UDP simultáneos. Reducir todo a una sola conexión disminuye la probabilidad de que se produzcan problemas de conectividad en entornos con políticas de red estrictas.
-
Situaciones de incorporación o baja rápida: En las salas de trabajo en grupo o en cualquier actividad en la que los participantes cambien con frecuencia de grupo, SPC elimina la carga que supone la negociación por cada flujo, lo que hace que las transiciones sean prácticamente instantáneas.
-
Eventos híbridos con pantalla compartida: Cuando los presentadores comparten pantallas junto con las imágenes de la cámara, el número total de transmisiones por suscriptor se duplica. SPC mantiene la sobrecarga constante independientemente del número de transmisiones combinadas que reciba un cliente. Dado que el control de velocidad unificado tiene visibilidad sobre todas las transmisiones de la misma conexión, priorizará de forma inteligente las transmisiones de pantalla compartida, asignando más ancho de banda allí donde la nitidez y la legibilidad sean más importantes.
Requisitos y limitaciones
-
SPC solo es compatible con sesiones enrutadas (sesiones que utilizan el Vonage Video Media Router). No está disponible para sesiones retransmitidas, ya que en una sesión retransmitida cada cliente se conecta directamente con todos los demás clientes en una conexión entre pares. No existe un Media Router central a través del cual multiplexar las transmisiones, por lo que no hay nada que consolidar.
-
SPC está disponible a partir de versión 2.28.0 de los SDK nativos y versión 2.29.0 del SDK web.
-
SPC es desactivado por defecto. Debes habilitarlo explícitamente al inicializar la sesión en el lado del cliente. Consulta Activar la conexión entre pares únicos.
-
El CCP se aplica a sólo conexiones de abonados. El editor sigue utilizando su propia conexión entre pares para enviar contenidos multimedia al Media Router.
Activar la conexión entre pares únicos
Para habilitar la conexión de par único (SPC), configúrala en el Client SDK al crear o inicializar la sesión. Para obtener una breve descripción general de la SPC en el contexto de la creación de sesiones, consulta el Sección de conexión entre pares de la guía «Creación de una sesión». En las siguientes secciones se explica cómo activarla en cada uno de los SDK compatibles.
SDK web
Fije el singlePeerConnection propiedad a true en el objeto de opciones que
pasas a OT.initSession():
var session = OT.initSession(apiKey, sessionId, {
singlePeerConnection: true
});
SDK de Android
Utiliza el Session.Builder.setSinglePeerConnection() método:
Session session = new Session.Builder(context, apiKey, sessionId)
.setSinglePeerConnection(true)
.build();
SDK para iOS
Fije el singlePeerConnection propiedad en OTSessionSettings:
OTSessionSettings *settings = [[OTSessionSettings alloc] init];
settings.singlePeerConnection = YES;
OTSession *session = [[OTSession alloc] initWithApiKey:apiKey
sessionId:sessionId
delegate:self
settings:settings];
SDK de Windows
Fije el SinglePeerConnection de la propiedad Session.Builder clase:
var session = new Session.Builder(Context.Instance, apiKey, sessionId)
{
SinglePeerConnection = true
}.Build();
SDK de macOS
Utiliza el otc_session_settings_set_single_peer_connection() función:
otc_session_settings *settings = otc_session_settings_new();
otc_session_settings_set_single_peer_connection(settings, OTC_TRUE);
otc_session *session = otc_session_new_with_settings(apiKey, sessionId, &callbacks, settings);
SDK para Linux
Utiliza el otc_session_settings_set_single_peer_connection() función:
otc_session_settings *settings = otc_session_settings_new();
otc_session_settings_set_single_peer_connection(settings, OTC_TRUE);
otc_session *session = otc_session_new_with_settings(apiKey, sessionId, &callbacks, settings);
SDK de React Native
Fije el enableSinglePeerConnection propiedad a true en el options apoyo
del OTSession componente:
<OTSession
apiKey={apiKey}
sessionId={sessionId}
token={token}
options={{ enableSinglePeerConnection: true }}
/>
Interacción con otras funciones
Vídeo escalable
La conexión con un único par funciona junto con vídeo escalable. Cuando ambas funciones están activadas, el Media Router sigue proporcionando capas de múltiples calidades a cada abonado a través de la conexión entre pares compartida. Cada abonado puede recibir una capa con una resolución y una frecuencia de fotogramas diferentes a medida que cambian las condiciones de la red, exactamente igual que ocurriría con conexiones entre pares independientes.
Alternativa de audio
Alternativa de audio sigue funcionando con normalidad con SPC activado. Si la red de un suscriptor se ve afectada, el Media Router puede seguir descartando el componente de vídeo y transmitir solo el audio de la transmisión afectada, independientemente de las demás transmisiones que se transporten por la misma conexión entre pares.
Observabilidad del cliente y estadísticas del lado del remitente
Cuando la función SPC está activada, el estadísticas del lado del remitente La estimación del ancho de banda se comparte entre todos los abonados de una misma conexión entre pares. La velocidad de bits máxima representa la velocidad de bits más alta que la conexión entre pares puede estimar, mientras que la velocidad de bits actual refleja la velocidad de bits de cada paquete de audio y vídeo. A la hora de evaluar el ancho de banda disponible, calcula la estimación del ancho de banda total sumando las estimaciones de cada paquete.
Para más información, consulte el guía de observabilidad del cliente.
Cifrado de extremo a extremo
Cifrado de extremo a extremo es compatible con la conexión de par único. Los flujos multimedia se cifran individualmente antes de multiplexarse a través de la conexión compartida entre pares.
Buenas prácticas
-
Activar SPC para sesiones con muchos clientes de publicación: Si tu application suele tener sesiones con más de unos pocos participantes, activar SPC puede reducir notablemente el consumo de recursos y mejorar la estabilidad.
-
Prueba en los dispositivos de destino: Aunque el SPC reduce el consumo de recursos en general, comprueba siempre los dispositivos específicos y las condiciones de red a las que se enfrentarán tus usuarios.
-
Supervise el ancho de banda con estadísticas del lado del remitente: Dado que todos los flujos de los suscriptores comparten un único canal de transporte, utiliza las estadísticas del lado del remitente para conocer el ancho de banda total disponible y adapta tu aplicación en consecuencia.