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.
La publicación de vídeo con resolución 1080p (FHD) no se traduce en una mejor calidad de vídeo por sí misma. Se necesita una cámara, una potencia de dispositivo y un ancho de banda de red adecuados para soportar vídeo 1080p.
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 y la resolución pueda volver a 1080p.
Esto puede implicar informar al usuario o añadir pistas visuales.
La publicación a 1080p no es ideal para la mayoría de las situaciones
Dado que la publicación a 1080p requiere una CPU y un ancho de banda muy elevados, para la mayoría de los casos de uso será beneficioso quedarse con resoluciones inferiores, 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 clientes. Si el caso de uso es uno a uno y sus dispositivos de destino admiten codificadores H.264 asistidos por hardware, considere la posibilidad de utilizar H.264. (Véase Códecs de vídeo.)
Factores que determinan el apoyo a 1080p
Habilitar la resolución 1080p no equivale a alta calidad a menos que se cumplan estos factores. Para soportar 1080p se necesita lo siguiente:
- Resolución de la cámara - La cámara de publicación debe soportar 1080p (1920x1080). Si la cámara no admite 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 videochat suelen admitir 1080p, muchas cámaras de dispositivos predeterminados (como en los Mac) no admiten 1080p. Los dispositivos heredados a menudo no admiten 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 escalablePara ello, los editores necesitarán anchos de banda aún mayores -de hasta 6 Mbps- para soportar hasta tres capas de calidad codificadas y transmitidas desde el dispositivo. Los clientes suscriptores deben poder manejar hasta 4,5 Mbps por flujo suscrito a 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 codificador de Chrome) evalúan activamente la CPU y el ancho de banda para ver si se puede lograr la resolución adecuada y ajustarla dinámicamente en función de las capacidades del dispositivo. Esto puede significar que mientras una resolución deseada de 1080p está configurada para la publicación, el codificador tendrá que ajustarse e intentar lo mejor posible basándose en las capacidades del dispositivo, CPU disminuida, o condiciones de ancho de banda disminuidas.
El comportamiento del codificador puede ser diferente 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).
Dependiendo de la pista de contenido proporcionada para el vídeo, el codificador estará sesgado para mantener la viveza o la resolución. Para obtener más información sobre las sugerencias de contenido, consulte 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 - Subscriber.PreferredResolution
- 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.
Habilitar el vídeo escalable evitará penalizar la calidad de la experiencia (QoE) de todos los abonados si uno o más abonados no pueden recibir el nivel de calidad más alto.
Las capas de emisión simultánea codificadas adicionales proporcionarán al router multimedia Video API de Vonage la opción de emitir secuencias de vídeo de menor calidad a los suscriptores que tengan dificultades para soportar 1080p, mientras que permitirán la capa de mayor calidad 1080p a los suscriptores que puedan soportar 1080p.
Para que el vídeo sea escalable, las transmisiones a 1080p requieren mayores anchos de banda del editor (se recomiendan hasta 6 Mbps) para soportar 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)
El vídeo escalable es compatible con secuencias VP8, y existe compatibilidad beta con secuencias 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:
- 1280x720
- 640x360
- 320x180
Cuando se selecciona la resolución 1080p, se codificarán tres capas basadas en 1080p como resolución más alta:
- 1920x1080
- 960x540
- 480x270
Ten en cuenta que si el dispositivo está configurado para una resolución de 1080p, producirá una capa de vídeo escalable a 540p. La capa de 540p tiene una dimensión menor que la capa superior de 720p. Applications should consider this trade off if the 1080p layer cannot reach endpoints.