martes, 14 de julio de 2020

Analiza el streaming de cámara, compara resoluciones, codificación, protocolo y "bitrate" o ancho de banda.

EL streaming y los eventos en directo son como los bolos en música , cada día es diferente y aquello que en un dia ha ido perfecto en el siguiente es diferente y ya no suena igual.
Por esa razón en ocasiones es fundamental crear un patrón para realizar pruebas y poder comparar. Yo no conozca a nadie que lo haya hecho, así que decidí ponerme manos a la obra, y ahora después de bastantes horas de trabajo ve la luz en este artículo que espero sea una herramienta útil par todo aquel que hace streaming o tiene la intención de hacerlo.

Esta prueba está un poco basada en el artículo anterior que hice sobre el decodificador de streaming BR-DE900  que he utilizado en esta prueba y que he fijado su salida a 1080/50p ( ver artículo en una nueva pestaña). La idea es testar y comparar diferentes protocolos , codificaciones y bitrates que nos aportaran la calidad final del streaming, todo ello sin que cambie la infraestructura de red o existan variaciones en la misma para descartar variables por ello, luego el streaming ya grabado veremos que pueden aparecer algunos inconvenientes que no se mostraron visualmente monitorizando la salida del decodificador. La postproducción o grabación es algo a tener en cuenta muy importante, ya que forma parte del flujo de trabajo y será en muchos casos el destino final de una emisión.

Para el esta prueba he combinado imagen fija con imagen en movimiento. La imagen fija es un set iluminado pobremente con un par de bombillas led de 5W para poder combinar con imagen en movimiento de una pantalla de plasma, reproduciendo un archivo de vídeo alojado en una USB y reproducida con un pequeño reproductor multimedia doméstico. El vídeo hecho con la cámara GY-LS300 lo he descargado de Youtube y es cortesía de Valentín Osorio Areu https://youtu.be/-Y6SM7B0p-4 aunque yo lo he reducido a 1 minuto escaso para ser más efectivos en las pruebas. 

La cámara utilizada para el streaming es la GY-HC550, ha trabajado con colorimetría ITU709 y con shutter en variable a 59,74 frames para eliminar el parpadeo de imagen que produce el refresco del plasma. El balance de blancos lo he establecido en 4100K para tener una imagen, por lo menos coherente al mezclar imagen de plasma y real, ya que la infraestructura en tiempos de confinamiento de COVI-19 no daba para más que un par de bombillas que tenía por casa.

Me he limitado a utilizar 3 protocolos de la cámara UDP, RTSP y SRT y solo con la combinación de estos tres protocolos y con sus combinaciones resolución-bitrate he obtenido 137 archivos o grabaciones diferentes. (Faltarían protocolos TCP, Zixi, RTMP, RTMPS con sus combinaciones de resolución-bitrate pero creo que la comparativa con las muestras obtenidas ya es suficientemente representativa, ya que podemos equiparar UDP con TCP, RTSP con RTMP/RTMPS y SRT con ZIXI.

El streaming lo decodifico como ya he mencionado con el BR-DE900 con salida fijada a 1920x1080 50p, que se graba en una GY-HC900 a Quick Time HD a 50Mb, me hubiese gustado grabarlo a 70M que me ofrece la cámara para dar mayor transparencia, pero mi editor no me permite trabajar con esa calidad y me es imprescindible usarlo para hacer el UHD con 4 señales 1080. Finalmente después de visualizar los archivos he hecho una selección y diferentes montajes en 4K de aquellos que encuentro más relevantes a nivel comparativo.

Flujo de trabajo de esta prueba.

De esta forma se reproducen las señales a resolución nativa 1080 dentro del vídeo 4K. Lamentablemente  existe compresión por cambio de formato final, pero al sufrir todo el mismo proceso la comparativa entre ellas mismas cumple su cometido.

Para analizar los vídeos tenemos que tener en cuenta que ...
 
El streaming usa codificación H264  o H265/HEVC  que crea o compone la imagen principal y luego solo se refrescan algunos puntos de referencia y la parte de imagen que cambia. Esto hace que se vea pixelado cuando existen grandes cambios de información de imagen y luego cuando cesan esos cambios se estabiliza y mejora enormemente, este efecto se ve reducido cuanto mayor es el "bitrate" del streaming.
Una imagen o un fondo de cambios constantes dará pixelado sin duda alguna a no ser que se trabaje con anchos de banda de 16-24Mb, y aun así, se aprecian temas de compresión si por ejemplo se está captando una multitud de cientos de personas en marcha .
Las cámaras codifican en H264 y con el KA-EN200 (accesorio)  pueden codificar también en HEVC/H265. El KA-EN200 se integra en cámara formando parte de la misma.

Con este artículo me limito a brindar la posibilidad a quien quiere saber y no tiene posibilidades o tiempo de hacer la prueba de comparar el streaming generado por una cámara JVC y el resultado que va obtener, y espero que se sepa diferenciar entre el cometido de la prueba "ver diferencias de protocolos y ancho de banda" y la calidad de las tomas donde se ha hecho lo que se ha podido.

Con las pruebas finales espero ofrecer una orientación de que anchos de banda, codificación y protocolo debemos utilizar para poder hacer streaming con la calidad que cada uno establezca como mínima.

Puntos a tener en cuenta en este escenario.
.
Resolución/detalle se aprecia en toda la imagen incluso en el moaré generado por los pixels del plasma que se verán anchos de banda grandes, en resoluciones bajas yo me he fijado en la lámpara de fibras ópticas en movimiento y el jardinero cuando riega con agua.
En los fundidos de pantalla se ve claramente la limitación del ancho de banda, ya que se aprecian los cuadros de compresión al existir un cambio relevante en gran parte del contenido de pantalla. 
Un fundido o cambio brusco de iris o diafragma requiere un cambio de toda la información de imagen y necesita un gran ancho de banda, si no queremos ver los artefactos o cuadros de compresión, de hecho requieren mucho más ancho de banda que algo grande que se mueve por la pantalla. 
En el vídeo existen varios fundidos, aunque quizás los más evidentes están al final con las imágenes de la la Alhambra.
El movimiento es bueno prácticamente en cualquier formato excepto en de 300K donde se reduce el frame rate y la resolución es muy baja.


Mi conclusión.
Al no ser una prueba de campo no se aprecia diferencia en la robustez de los protocolos, pero por experiencia práctica personal puedo catalogar la robustez de los protocolos en redes públicas como.

UDP, admite un alto bitrate y es altamente transparente en calidad y resolución, pero es el protocolo más frágil y no existe control  de tráfico con lo cual si el streaming no llega a destino el operador de cámara no lo sabe.

RTSP, es un protocolo más robusto que el UDP, aunque tasa de bits no es tan alta si dispone de control de flujo y el operador sabe si el stream está llegando a destino.

SRT es el más robusto de los testados, su "bitrare" no permite llegar a tráficos de datos altos como el UDP, pero es un protocolo muy eficaz con lo cual con "bitrates" bajos se consigue una alta transparencia.

Respecto a las pruebas realizadas,

Yo descarto hacer cualquier transmisión en resolución SD, ya que la limitación no está en el protocolo o la codificación, si no en la propia resolución que codificamos. El mismo protocolo, codificación y ancho de banda permite trabajar en  1280 x 720 y la diferencia de calidad es espectacular.

En la medida de lo posible no utilizar formato entrelazado en streaming, los formatos entrelazados crean diferentes problemáticas que inicialmente se ven sutilmente , pero que después en la edición o transmisión final se ven agravados creando efectos no deseados.
En mi caso y en estos vídeos he captado la imagen con un shutter o frame rate variable de 1/59,4  para eliminar el parpadeo de imagen pero la luz de las bombillas led (del todo a 0 ,6€) trabajan a 50Hz, y ese pequeño desfase del cual no me percate inicialmente ni durante la edición  (aunque existe si se mira con detalle el original), se ha convertido en la grabación final en un verdadero efecto intermitente que nos haría descartar la grabación si somos mínima mente exigentes o podemos prescindir de ellas. En las grabaciones finales muestra el texto blanco en dos fases y es muy desagradable visualmente, esto se produce solo en formatos 50i mientras que en formatos progresivos este efecto no aparece. El trabajar con formato progresivo también facilita el trabajo de la codificación y decodificación a la hora de predecir o recomponer información lo que evita o reduce fallos por pérdida de datos o interferencias en la transmisión que finalmente se traduce en una mejor calidad de transmisión.

Con imágenes controladas para noticias ( imagen del reportero con un fondo discreto en movimiento y contenido ) con 1,5M se puede ofrecer una imagen de calidad y más si se utiliza codificación HEVC con SRT para una estabilidad alta, Hoy en día en gran parte del territorio español se dispone de este ancho de banda más que suficiente, yo vivo en una pequeña ciudad cerca de Barcelona el ancho de banda del que dispongo en subida en el test es de 8M como se ve en la imagen que corresponde a la captura del móvil,  ,lo que es más que razonable y me permite transmitir directamente desde cámara con un modem 4G.


Yo creo que 1,5M puede ser un buen mínimo y de ahí en adelante podemos utilizar anchos de banda superiores según cobertura y ancho de banda de la red, si no se dispone de anchos  de banda suficiente nos podemos ayudar con otros dispositivos como el SFE-CAM que con un coste de 3000-4000€ ( abrir artículo en una nueva pestaña) aumenta el ancho de banda sumando la capacidad de 2 tarjetas SIM, además se puede sumar una tercera con un modem Mifi dando una suma total de 3 tarjetas SIM,el SFE-CAM también dispone de conexión por ethernet por si disponemos de fibra. De esta forma las conexiones móviles prácticamente se mantendrán como conexión de emergencia, y con un ancho de banda alto se puede conectar más de una cámara.

Por otro y lado afortunadamente el 5G en telefonía , ya está aquí ganando terreno, y un ancho de banda de 1,5M no será una porción mínima de lo que nos ofrecen los operadores de telefonía, ( aunque lamentablemente siguen habiendo lugares donde las velocidades de transferencia o ancho de banda se mantienen muy bajas).

GY-HC550

Puedo seguir escribiendo mis opiniones y comentarios, pero lo mejor y el fin de este artículo es que cada uno valore por sí mismo y decida cuál es su referencia de calidad. El "streaming" se ha hecho como dije con una GY-HC550 pero tanto la GY-HC500 (no grafismo) como las cámaras de estudio y ENG de 2/3" GY-HC900 permiten todas las posibilidades reflejadas en este artículo y los videos. 

GY-HC900
Voy a insistir en que los vídeos están generados en UHD creando la partición de 4 imágenes a 1920x1080 que es la resolución que se han grabado los vídeos y que me entregaba el decodificador BR-DE900 a su salida independientemente de la resolución del streaming.
Los vídeos han sido grabados en diferentes sesiones aunque las condiciones de cámara se han mantenido en todas ellas, menos en la 300K. Por esa razón se puede apreciar diferencias en la posición de algunos elementos.
Los gráficos o títulos para evitar errores de catalogación están directamente incrustados en el streaming de cámara a la hora de grabarlos, he insertado el logo de "LIVE" en las imágenes de streaming  y he omitido las marcas de agua para no interferir en la imagen.
Todas los vídeos contienen el original más tres imágenes, que en algunos están pensados para comparar el "bitrate" con lo cual el protocolo es la mismo, en otros se mezclan protocolos y se mantiene el "bitrate" para comparar entre protocolos su efectividad, Si tienes un televisor 4K smart TV puedes ver las imágenes directamente en en tu televisor.a resolución UHD aunque a simple vista y a una distancia de visualización correcta "2,5x anchura pantalla" las diferencias depende del protocolo y bitrate pueden ser sutiles.
 
Yo personalmente dispongo de un PC con pantalla 4K nativa lo cual me facilita mucho el trabajo, puesto que puedo usar la lupa de Windows que es una excelente herramienta para analizar los detalles como se puede ver en la imagen. donde se compara UDP HEVC a 50p (inferior Izquierda) es ligeramente inferior en detalle que a SRT HEVC 25p (superior derecho) y UDP HD264 50i (inferior derecho) que se queda sin detalle ninguno a los 800K simplemente por la limitación de la codificación H264.

Nota. Las cámaras ofrecen diferentes combinaciones de codificación,protocolos, frame rate que no están siempre disponibles en todos los "bitrate" por esa razón se encuentran combinados en algunos vídeos.  

 Aquí tenéis los vídeos ....para mi los más interesantes los finales que comparan diferentes protocolos y codificación H264/HH265-HEVC al mismo bitrate.
 

 https://youtu.be/U0sOK8OamR0   Se compara el "bitrate" en UDP 576 50i 800K , 3M 8M


https://youtu.be/25tigxr2IRI   Se compara el "bitrate" SRT 576 50i 800K, 3M, 5M


https://youtu.be/mEyDhXzTbWw  Se compara "bitrate " de UDP 1080 50p, 8M, 12M, 24M




https://youtu.be/H0ThgpSJ7V8  Se compara el "bitrate " de UDP 1080 50i, 3M, 8M, 20M


https://youtu.be/6ZHsgQDAoes  Se compara el " bitrate" UDP 720  25p 1,5M, 5M, 8M


https://youtu.be/p_S6IjMb_oI   Se compara el "bitrate" SRT 720 25p 1,5M, 3M,, 8M



https://youtu.be/9kuqC2U-GEo  Se compara el "Bit rate" de RTSP 1080 50i/p 3M, 8M, 12M


https://youtu.be/1Pw2onoQGHA   Se compara el "bitrate " de RTSP 720 25/50p 1,5 M, 3M, 8M



https://youtu.be/wKbkN4U-5wY   Se compara el "bitrate " de RTSP 576 50i 800K, 3M, 8M


https://youtu.be/qf35K8DMTr4    Comparando "bitrate" SRT 1080 25p 3M, 5M, 8M.


https://youtu.be/s1S-r75kDkk  Streaming de emergencia compara "protocolos" SRT, RTSP, UDP, a tan solo 300K Lamento la calidad de las tomas y su baja iluminación. Este formato permite crear una miniatura sobre imágenes de archivo a la hora de transmitir una noticia crítica en directo, sin ancho de banda y sin tiempo de subirla a una FTP.


https://youtu.be/eDIYOdYoSi0 Compara protocolos y codificacion (generica H264 y HEVC (con adaptador KA-EN200) la comparación es de SRT 720/25p HEVC,  UDP 720/50p HEVC, y UDP 576 todos a 800K.




https://youtu.be/rnld7u3ZyIk  Compara protocolo SRT/UDP a 1080 50p + UDP 1080 25p todo ello con codificación HEVC a 3M.

https://youtu.be/fWwx-1cHR7s    Comparando Max calidad, SRT 720 50p, 5M 10 bit 4.2.2 ,  UDP 1080 50p 10bit 4:2:2, 24M, UDP 1080 50p H264 24M 



https://youtu.be/IVxugtmv7m4  Con HEVC a solo 1,5M de bitrate comparo protocolos y calidades  con . UDP 720 50p 4:2:0 contra UDP 720 50p 4:2:2 10 bit y SRT 1080 50p 1,5M.


Si te ha gustado este artículo y valoras el trabajo realizado, te agradeceré lo compartas con tus amigos y en en tus redes sociales.

Gracias por leer este blog.