Visión general de vídeo 1080p
Hay una serie de consideraciones a tener en cuenta al usar video de resolución 1080p en una sesión de Video API de Vonage.
Publicar un vídeo con una resolución de 1080p (FHD) no garantiza por sí solo una mejor calidad de vídeo. Para poder reproducir vídeo en 1080p se necesita una cámara adecuada, suficiente potencia del dispositivo y el ancho de banda de red necesario.
Para que la experiencia del usuario sea óptima, tu aplicación debe incluir opciones para hacer frente a estas condiciones:
- Un navegador o dispositivo no puede soportar 1080p inicialmente.
- Cuando las condiciones se degradan y, en consecuencia, es necesario reducir la resolución de 1080p.
- Cuando las condiciones mejoren, se podrá volver a aumentar la resolución a 1080p.
Esto puede consistir en proporcionar información al usuario o en añadir indicaciones visuales.
La publicación a 1080p no es ideal para la mayoría de las situaciones
Dado que la publicación en 1080p exige un uso muy elevado de la CPU y del ancho de banda, en la mayoría de los casos resultará más conveniente optar por resoluciones más bajas, como 720p (HD), VGA o incluso QVGA.
Esto es especialmente cierto cuando los clientes pretenden suscribirse y visualizar múltiples flujos publicados. Si ningún suscriptor renderiza el flujo a una resolución de 1080p, entonces es una pérdida de recursos para el editor configurar 1080p.
Por ejemplo, las Applications que tienen más de dos streams simultáneos -como las videoconferencias- pueden no estar optimizadas para que los clientes publiquen 1080p en absoluto. Si los clientes reciben varios flujos, será más beneficioso publicar las resoluciones que se muestren con más frecuencia.
Si el caso de uso es uno a uno (dos clientes se transmiten uno a otro), considere el uso de sesiones retransmitidas para aprovechar las conexiones directas entre los clientes. Si el caso de uso es uno a uno y Si tus dispositivos de destino admiten codificadores H.264 con aceleración por hardware, plantéate utilizar H.264. (Véase Códecs de vídeo.)
Factores que determinan el apoyo a 1080p
Activar la resolución de 1080p no garantiza una alta calidad a menos que se cumplan estos requisitos. Para poder utilizar la resolución de 1080p, necesitas lo siguiente:
- Resolución de la cámara — La cámara de publicación debe ser compatible con 1080p (1920x1080). Si la cámara no es compatible con 1080p, la resolución de publicación se limitará a la resolución de la cámara. Aunque hoy en día las cámaras web adquiridas para el chat de vídeo suelen ser compatibles con 1080p, muchas cámaras integradas en los dispositivos (como las de los Mac) no lo son. Los dispositivos más antiguos suelen carecer de compatibilidad con 1080p.
- Recursos informáticos del dispositivo - Para publicar a 1080p, el dispositivo debe tener suficiente potencia de cálculo para soportar la codificación en tiempo real de 1080p y mantener la carga de la CPU durante todo el tiempo que se publique el flujo. El codificador para VP8 se ejecutará normalmente en software y requerirá una CPU sostenida muy alta para seguir publicando flujos de vídeo en directo a 1080p. Si se necesita emisión simultánea, se necesitará una CPU adicional para codificar múltiples calidades de flujo que puedan distribuirse entre los abonados. Es probable que el dispositivo también esté suscribiendo y procesando flujos de entrada, por lo que la carga total de trabajo de la CPU será elevada si se activa 1080p. Los dispositivos móviles más nuevos de hoy en día pueden tener suficiente CPU para soportar 1080p, pero el procesamiento puede verse rápidamente limitado por la calidad una vez que la energía de la batería empiece a agotarse rápidamente. Los ordenadores portátiles y de sobremesa son los más adecuados para publicar a 1080p, pero es probable que necesiten una fuente de alimentación distinta de la batería para las sesiones más largas.
- Ancho de banda de la red - Para publicar vídeo a 1080p, el cliente debe disponer de una red estable que pueda soportar altas tasas de bits de publicación. Para lograr la publicación de 1080p WebRTC a 30 fotogramas por segundo, el ancho de banda necesario es de aproximadamente 3 a 4,5 Mbps de subida sostenida. Para vídeo escalable, esto requerirá anchos de banda aún mayores —hasta 6 Mbps— para que los proveedores puedan ofrecer hasta tres niveles de calidad codificados y transmitidos desde el dispositivo. Los clientes suscritos deben poder gestionar hasta 4,5 Mbps por cada transmisión suscrita en 1080p.
- Versiones compatibles - 1080p es compatible con las versiones 2.23.0 de los SDK de cliente de la Video API. Además, en las aplicaciones web, 1080p es compatible con Chrome y Firefox (sin embargo, actualmente hay un error en Firefox en MacOS).
Los codificadores de vídeo WebRTC (como el de Chrome) evalúan de forma activa la CPU y el ancho de banda para comprobar si se puede alcanzar la resolución adecuada y se ajustan dinámicamente en función de las capacidades del dispositivo. Esto puede significar que, aunque se haya configurado una resolución deseada de 1080p para la publicación, el codificador tendrá que adaptarse y hacer todo lo posible en función de las capacidades del dispositivo, una CPU con recursos limitados o unas condiciones de ancho de banda reducidas.
El comportamiento del codificador puede variar en función de si existen limitaciones de ancho de banda o de CPU.
El codificador puede reducir la velocidad de fotogramas para hacer frente a la disminución del rendimiento, lo que significará que el vídeo parecerá congelarse, ya que el codificador produce menos fotogramas de vídeo para hacer frente a estas situaciones. (Por ejemplo, si el codificador reduce la velocidad de fotogramas a 5 ó 6 fotogramas por segundo, por falta de recursos, el vídeo puede resultar indeseable).
En función de la indicación de contenido proporcionada para el vídeo, el codificador se orientará a mantener la nitidez o la resolución. Para obtener más información sobre las indicaciones de contenido, consulta el siguiente contenido:
Además, un cliente suscriptor puede establecer la resolución preferida del vídeo consumido (en una sesión retransmitida) en una resolución inferior:
- Web - Subscriber.setPreferredResolution()
- Android — SubscriberKit.setPreferredResolution()
- iOS - SubscriberKit.preferredResolution
- Windows - Resolución preferida del suscriptor
- Linux —
otc_subscriber_set_preferred_resolution()
Vídeo escalable para sesiones enrutadas
La API de Video de Vonage admite vídeo escalable con el códec VP8. Generalmente se prefiere habilitar el vídeo escalable para 1080p en sesiones con un gran número de abonados, aunque requerirá mayores cantidades de CPU y ancho de banda.
Al habilitar el vídeo escalable se evitará que se vea afectada la calidad de la experiencia (QoE) de todos los abonados en caso de que uno o varios de ellos no puedan recibir el nivel de calidad más alto.
Las capas adicionales de emisión simultánea codificadas ofrecerán al enrutador multimedia de la Video API de Vonage la opción de transmitir flujos de vídeo de menor calidad a los suscriptores que tengan dificultades para reproducir 1080p, al tiempo que permitirán ofrecer la capa de máxima calidad (1080p) a los suscriptores que sí puedan reproducir 1080p.
En el caso del vídeo escalable, las transmisiones en 1080p requieren un mayor ancho de banda por parte del editor (se recomienda hasta 6 Mbps) para admitir las múltiples capas de calidad de resolución codificadas y transmitidas desde el dispositivo.
Determinar si se dispone de capas escalables de emisión simultánea de vídeo
Vídeo escalable Soporte de capas de emisión simultánea determinado por el dispositivo cliente o el navegador. El vídeo escalable sólo está disponible en secuencias publicadas por clientes que utilicen:
- El SDK de iOS (en determinados dispositivos)
- El SDK de Android (en determinados dispositivos)
- El SDK de Windows
- El SDK de Linux
- El SDK de Linux
- El SDK de macOS
- OpenTok.js en Chrome, Safari, Samsung Internet, WebView Android y WebView en iOS (con soporte beta en versiones de escritorio de Opera y versiones de Edge basadas en Chromium).
- El SDK de React Native (en determinados dispositivos)
Se admite vídeo escalable para flujos VP8, y hay compatibilidad en fase beta para flujos VP9 (véase esta documentación). No se admite para H.264.
Debe tenerse en cuenta que existe una diferencia entre las capas de emisión simultánea para 1080p (FHD) y 720p (HD), que no se solapan, y esta diferencia debe tenerse en cuenta en la selección de la resolución para la experiencia de la aplicación.
Cuando se selecciona la resolución 720p, se codificarán tres capas basadas en 720p como resolución más alta:
- 1280 x 720
- 640x360
- 320x180
Cuando se selecciona la resolución 1080p, se codificarán tres capas basadas en 1080p como resolución más alta:
- 1920 x 1080
- 960 x 540
- 480x270
Ten en cuenta que, si el dispositivo está configurado con una resolución de 1080p, Generará una capa de vídeo escalable a 540p. La capa de 540p tiene unas dimensiones menores que la capa superior de 720p. Applications should consider this trade off if the 1080p layer cannot reach endpoints.