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 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 mediosEl SPC no se aplica mientras los medios fluyen de igual a igual entre dos participantes, pero sí una vez que la sesión pasa a utilizar el enrutador de medios. Véase Enrutador multimedia y modos multimedia para más información.

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, ya que ofrece:

  • 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 separadas, cada una ejecuta su propio algoritmo de control de la congestión, compitiendo con las demás por la misma capacidad de enlace. SPC proporciona al estimador de ancho de banda una visión única y unificada de la red para todos los flujos de medios, lo que se traduce en una adaptación más estable de la tasa de bits y menos oscilaciones de 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 misma sesión.

  • Configuración más rápida de la suscripción: Añadir un nuevo abonado ya no requiere una negociación ICE/DTLS completa desde cero. La conexión existente se reutiliza, por lo que los nuevos flujos aparecen más rápidamente. Esto se nota especialmente en las sesiones en las que los participantes entran y salen 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 medios comparten un único transporte, el ancho de banda se distribuye de forma más equitativa entre los flujos. No hay "conexiones competidoras" que se maten de hambre unas a otras, lo que se traduce en una experiencia más fluida y coherente para todos los participantes.

Casos prácticos

Applications benefit from Single Peer Connection whenever the number of subscribed streams starts to climb. Estos son los escenarios en los que marca la diferencia:

  • Grandes sesiones interactivas: Las aulas virtuales, la colaboración en grupo y las videollamadas multipartitas pueden tener muchos participantes publicando al mismo tiempo. A medida que aumenta el número de editores, cada cliente suscrito abre más conexiones entre pares. SPC mantiene el uso de recursos plano independientemente del número de flujos a los que se suscriba un cliente. Ten en cuenta que tu aplicación debe priorizar qué widgets de vídeo mostrar y gestionar a qué flujos suscribirse, ya que mostrar a todos los participantes en pantalla a la vez rara vez es práctico.

  • Applications diseñadas prioritariamente para dispositivos móviles: Si sus usuarios utilizan teléfonos y tabletas, SPC es muy recomendable. Un menor número de conexiones se traduce en menos uso de la CPU, menos presión sobre la memoria y menor consumo de batería.

  • Redes de ancho de banda limitado o variable: En enlaces Wi-Fi, celulares o por satélite congestionados, un único bucle de control de la congestión asigna el ancho de banda de forma mucho más eficiente que un gran número de conexiones en competencia. Los usuarios obtienen un vídeo más fluido con menos buffering.

  • Redes corporativas y restringidas: Los cortafuegos, proxies y NATs pueden fallar o añadir latencia cuando tienen que seguir muchos flujos UDP simultáneos. Reducir todo a una sola conexión disminuye la posibilidad de problemas de conectividad detrás de 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 con las cámaras, el número total de flujos por abonado se duplica. SPC mantiene la sobrecarga constante, independientemente del número de flujos mixtos que reciba un cliente. Dado que el control de velocidad unificado tiene visibilidad sobre todos los flujos en la misma conexión, dará prioridad de forma inteligente a los flujos de pantalla compartida, asignando más ancho de banda allí donde la nitidez y la legibilidad son 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 este tipo de sesiones cada cliente se conecta directamente con todos los demás clientes en una configuración punto a punto. 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 activar Single Peer Connection, configúrela en el Client SDK al crear o inicializar la sesión. Para obtener una visión general rápida de SPC en el contexto de la creación de sesiones, consulte la sección Sección de conexión entre pares de la guía Crear una sesión. Las siguientes secciones muestran cómo habilitarla en cada SDK compatible.

SDK web

Fije el singlePeerConnection propiedad a true en el objeto de opciones que se pasa 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 puntal 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 entregando capas de calidad múltiple a cada abonado a través de la conexión compartida entre pares. Cada abonado puede recibir una capa de resolución y velocidad de fotogramas diferente según cambien las condiciones de la red, exactamente igual que lo haría con conexiones peer independientes.

Audio Fallback

Alternativa de audio sigue funcionando con normalidad con SPC activado. Si la red de un suscriptor se ve afectada, el enrutador multimedia puede seguir descartando el componente de vídeo y transmitir únicamente 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 la conexión paritaria. La tasa de bits máxima representa la tasa de bits más alta que la conexión entre iguales puede estimar, mientras que la tasa de bits actual refleja la tasa de bits de cada paquete de audio y vídeo. Al evaluar el ancho de banda disponible, calcula la estimación del ancho de banda total sumando las estimaciones de los paquetes individuales.

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 aplicación 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 uso de recursos en general, valide siempre los dispositivos específicos y las condiciones de red que encontrarán sus 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.

Lecturas complementarias