Vídeo en 1080p
Hay una serie de aspectos que hay que tener en cuenta al utilizar vídeo con resolución de 1080p en una sesión de la Video API.
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 admitir 1080p de forma predeterminada
- Cuando las condiciones empeoran y, en consecuencia, es necesario reducir la resolución de 1080p
- Cuando las condiciones mejoren y sea posible 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 en 1080p es no 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 la resolución de 1080p suele ser compatible con las cámaras web adquiridas para videoconferencias, muchas cámaras integradas de serie en los dispositivos (como las de los Mac) no admiten esta resolución. Los dispositivos más antiguos suelen carecer de compatibilidad con 1080p.
-
Recursos informáticos del dispositivo — Para la publicación en 1080p, el dispositivo debe disponer de suficiente potencia de cálculo para soportar la codificación en tiempo real de 1080p y mantener la carga de la CPU mientras dure la transmisión. El codificador VP8 funcionará con normalidad en el software y requerirá una carga sostenida muy elevada de la CPU para seguir publicando transmisiones de vídeo en directo a 1080p. Si se necesita una emisión simultánea, esto requerirá recursos adicionales de la CPU para codificar múltiples calidades de transmisión que puedan distribuirse entre los suscriptores. Es probable que el dispositivo también se suscriba y procese flujos de entrada, por lo que la carga de trabajo global de la CPU será elevada si se habilita la resolución de 1080p.
Es posible que los dispositivos móviles más recientes dispongan de suficiente potencia de CPU para admitir 1080p, pero el rendimiento puede verse rápidamente limitado en cuanto a calidad en cuanto la batería empiece a agotarse con rapidez. Los ordenadores portátiles y de sobremesa son los más adecuados para la publicación en 1080p, pero es probable que requieran conectarse a una fuente de alimentación distinta de la batería para sesiones más prolongadas.
-
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 — La resolución 1080p es compatible con las versiones 2.23.0 de los SDK de cliente de la Video API. Además, en las aplicaciones web, la resolución 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 suscrito puede establecer la resolución preferida del vídeo que está viendo (en una sesión retransmitida) a una resolución inferior:
- Web -
Subscriber.setPreferredResolution() - Android —
SubscriberKit.setPreferredResolution() - iOS -
SubscriberKit.preferredResolution - Windows -
Subscriber.PreferredResolution - Linux —
otc_subscriber_set_preferred_resolution() - macOS —
otc_subscriber_set_preferred_resolution() - React Native -
preferredResolutionpropiedad deOTSubscriber propertiespuntal
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 la opción de transmitir flujos de vídeo de menor calidad a los suscriptores que tengan dificultades para reproducir contenido en 1080p, al tiempo que permitirán ofrecer la capa de máxima calidad en 1080p a los suscriptores que sí puedan reproducir ese formato.
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 OpenTok para iOS (en determinados dispositivos)
- El SDK de OpenTok para Android (en determinados dispositivos)
- El SDK de OpenTok para Windows
- El SDK de OpenTok para Linux
- El SDK de OpenTok para 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 OpenTok para 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.
Cabe señalar que existe una diferencia entre las capas de emisión simultánea para 1080p (FHD) y 720p (HD), que no se solapan, y que esta diferencia debe tenerse en cuenta a la hora de seleccionar la resolución para garantizar una buena experiencia de uso.
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. Las aplicaciones deben tener en cuenta esta disyuntiva si la capa de 1080p no puede llegar a los puntos finales.