domingo, 12 de junio de 2022

Producción Remota SRTMiniServer, Version 1.9. Testado con cámaras JVC

SRTMini server es un software del que ya he hablado en este blog. Con el se recibe señal en streaming SRT H264 o H265 y se convierte a NDI para poder trabajar con plataformas de producción como Connected Cam Studio, VMix, OBS, etc.

En mi artículo anterior de la version 1.8 destaque el buen funcionamiento con las cámaras JVC ya que SRT Mini server es capaz de leer la información de sincronización VITC del streaming SRT de las cámaras JVC lo que permite que las imágenes queden sincronizadas en SRTMini Server al entregarlas en NDI a la red informática.

La sincronización es algo fundamental para la producción remota REMI. También explique cómo trabajar con cámaras JVC para sacar máximo rendimiento utilizando accesorios como SRTStreamer y el bloque de matriz de SRTMini server para enviar señal de retorno de video SRT a las cámaras JVC.https://cmhtec.blogspot.com/2022/01/srtmini-server-excelente-herramienta.html

Otra de las posibilidades que tiene y comente del software, es extraer la señal decodificada por SDI si se disponía de tarjeta SDI de salida, y es en este punto donde yo hice algún comentario como que estaría muy bien que las señales de salida SDI estuviesen también sincronizadas , ya que el propio desarrollador me confirmó en aquel  momento que estás no salían sincronizadas.

El desarrollador GaraninApps, contacto conmigo y me confirmo que esto iba a cambiar en breve, y así lo ha hecho, y además de cumplir con este punto a mejorado la App en muchos aspectos lanzando la versión 1.9.

GaraningApps con en la nueva version 1.9 no solo se ha añadido la sincronización SDI, si no que ha habido un cambio total del formato o forma de trabajar el tema de sincronización de las imágenes que ahora te indican directamente si estas se encuentran sincronizadas o no.

Antes se abría una aplicación o pluging de sincronización paralela que además no permitía sincronizar señales si una de ellas no disponía de sincronismo.

En esta versión 1.9 esto ha cambiado por completo, ahora no hay que abrir ninguna aplicación, simplemente  hay que seleccionar la funcion de sincronizacion y todas las señales marcadas con "Time Code "   (SEI) se sincronizarán si se encuentran correctamente configuradas y el margen de corrección de SRTMini server lo permite.´

SRTMini Sever con la herramienta de sincronización seleccionada pero en estado apagado, en el momento que se activa el SRTMS se modifica el interface mostrando la informacion de cada streaming y si este está o no sincronizado.



Si ya sabemos que la señal no dispone de VITC simplemente no se selecciona la sincronización con la casilla SEI para evitar que el sistema trabaje buscando algo que no existe, pero en esta versión a diferencia de la anterior si permite sincronizar aquellas señales que si tienen información de tiempo VITC aunque existan más señales y estas no tengan VITC.  Otra circunstancia puede darse si se dispone de señales procedentes de varios lugares que pueden generar problemas con una de ellas que nos desestabilice la sincronización, por tema de latencias, cobertura, etc...ahora en esta versión podemos deseleccionar la casilla se SEI y esa señal no se sincronizará pero el resto de señales, pero el resto sí se podrán sincronizar entre ellas.

Cuatro cámaras en recepción SRT la N5 se desconecta el SEI para que no sincronice simulando un mal funcionamiento ´el resto de cámaras se mantienen sincronizadas entre ellas.

Como ya he comentado se ha añadido la sincronización a las salidas SDI, y no solo eso, también se han añadido las pantallas del PC donde esta corriendo SRTMiniServer como dispositivo de salida SDI, lo que da la oportunidad de ver la señal decodificada a pantalla completa en PC simulando una salida SDI ya sea en la pantalla principal o las secundarias.


Ejemplo: Cuatro cámaras PTZ JVC (KY-PZ200WE/KY-PZ200NBE/KY-PZ410NBE/KY-PZ510NWE) a uns 30 KM de distancia llegan al PC por IP con codificación SRT con VITC, en el PC con SRTMiniServer se sincronizan y se transforman en NDI. En el mismo PC en este caso se produce con OBS  con las señales entrando como señales NDI las cuales ya están sincronizadas.

  


Invito a los usuarios de JVC a probar esta excelente herramienta que seguro les será de gran utilidad.En la página de SRT Mini Server encontrareis la versión 1.9 la cual se puede descargar de forma gratuita.  https://srtminiserver.com/


jueves, 21 de abril de 2022

¿Que diferencia a JVC en sus cámaras PTZ?

En este artículo voy a hablar de las nuevas cámaras PTZ de JVC, en concreto de la KY-PZ200BE/WE que son las más básicas HD y de las versiones superiores: HD KY-PZ200NBE /NWE y 4K KY-PZ400NBE/NWE ambas con NDI/HX con codificación H264 o H265 que es NDI/HX2. Por supuesto el control PTZ vía NDI está activo y permite mover la cámara desde la propia imagen o mediante los controles visibles según nuestra preferencia.

Existen infinidad de cámaras en el mercado, incluso muchas de ellas son físicamente casi idénticas. Pero al igual que en los vehículos el exterior aparentemente idéntico no revela las enormes diferencias que puede alojar en su interior, que van desde el sensor a las funcionalidades internas, bit rate, protocolos, etc.

No voy a extenderme en todas sus características que podemos encontrar en la pagina web de JVC, y voy a centrar la atención en lo más relevante según mi opinión.

  • Camara Web.
  • Compatibilidad con software abierto VMix, OBS etc. se explica movimiento multicámara con OBS.
  • Transmisión H264/H265,SRT(Opciones profesionales),.
  • Sincronización de streaming NTP con VITC. Sincronización de imagen en recepción.



Cámara Web.
Los modelos KY-PZ200 y KY-PZ200N son las primeras cámaras de JVC en su gama profesional con  un puerto USB (UVC) o conexión como Web Cam. Su conexión al ordenador es vía USB, donde es reconocida de forma automática por el ordenador como Web Cam, para ser integrada en todos aquellos softwares que utilizan una cámara web como puede ser Skipe, Zoom, Teams, OBS, etc. eso si en caso de que ya exista una cámara web integrada o externa deberá seleccionarse mediante el interface del programa que se esté usando.
UVC es un estándar de dispositivo como cámara web que puede controlar los parámetros de la cámara desde el propio sistema del ordenador, incluidos los movimientos PTZ abriendo ventana de propiedades de la misma.
En los modelos KY-PZ200 y KY-PZ200N cuando se utiliza como Web Cam, desaparece la posibilidad de transmitir en streaming aunque el control por IP se mantiene. Esto permite controlar la cámara a distancia si se mantiene conectada por IP con, por ejemplo, el panel multicámara de JVC RM-LP100, mediante su web server, o por http://.


Uso de KYPZ200 con OBS como Cámara Web con control PTZ al abrir características de cámara

Compatibilidad con software abierto VMix, OBS etc. explico movimiento multicámara con software OBS.

El control de cámara en las KY-PZ200 y KY-PZ400 puede realizarse mediante IR (con mando a distancia incluido para 4 cámaras) y como no, a traves de NDI, RS-232 /RS485 e IP. Esto hace que todas estas cámaras sean compatibles con prácticamente todos los softwares de producción del mercado incluidos VMix y OBS muy utilizado en docencia y en producción audiovisual para redes sociales.

Con la version de firmware actual existe otra vía de control para las posiciones de cámara esta vía es desconocida o no mencionada en las características de la cámara y espero se mantenga con futuras actualizaciones ya que es útil, hablamos del control mediante http:// . El control http:// permite llamar una posición de cámara con cualquier navegador sin necesidad de abrir el web server de la cámara y con un software como OBS permite realizar en red local (LAN) o externa/remota (WAN) un control multicámara simultáneo a posiciones ya almacenadas.

El control multicámara simultáneo o por grupos es muy simple con la realización dedicada de JVC KM-IP4100 y KM-IP6000 Connected Cam Studio, que se hace directamente creando grupos donde se selecciona el número de las cámaras y su posición aunque este control es vía IP (API) no http://. 
Esto mismo se puede hacer con OBS gracias a la capacidad de control por http:// ya mencionada donde aunque no es complicado, es un poco más laborioso tal y como describo a continuación.

Con OBS se crean "Escenas", dentro de la Escena se introducen diferentes elementos, fuentes de video, reproducciones, etc.
En nuestro caso se debe introducir un elemento de "Navegador" por cámara y posición, primero se crea nuevo, ejemplo: "Pos1" y se introducen los parámetros correspondientes según la estructura base como se muestra a continuación en la URL.

La estructura es:
http://(usuario de cámara):(contraseña de cámara) @(IP):(puerto de control http de cámara)/cgi-bin/ptzctrl.cgi?ptzcmd&poscall&(numero de posición)
Ejemplo:
http://jvc:1234@xxx.xxx.xxx.xxx:8020/cgi-bin/ptzctrl.cgi?ptzcmd&poscall&1 

Nota: Si se realiza un control a través de internet (WAN) deberemos redirigir en el router donde esta la cámara el puerto HTTP usado por la cámara a la IP de la misma en en router (NAT).
 
Una vez hecho esto, la cámara irá a la posición correspondiente al seleccionar dicha "Escena". Todas las cámaras que tengan movimiento en esa "Escena" tienen que disponer de su entrada o elemento "Navegador" correspondiente. Es fundamental que la casilla (Actualizar navegador al activar la Escena) esté activa cuando se crean los elementos para su correcto funcionamiento.

 Los elementos http de navegador sólo actúan sobre el movimiento. La captación de imagen es otro elemento independiente que se deberá añadir a la "Escena" por cámara, ya que es independiente y puede ser diverso su formato de origen, cámara web, fuente VLC SRT, capturadora SDI o HDMI etc.



Transmisión H264/H265,SRT(Opciones profesionales),.

En los modelos KY-PZ200 /200N y KY-PZ400N encontramos diferentes protocolos de transmisión en streaming que además trabajan de forma simultánea rtmp o rtmps y rtsp pero realmente el más importante para mí, es el SRT.

La transmisión puede hacerse con compresión H264 o H265(HEVC). Cuando se transmite en H265 (HEVC) se necesita aproximadamente la mitad del ancho de banda o tasa de bits que con compresión H264. Esto es muy importante cuando se trabaja con anchos de banda limitados.

La tasa de bits puede ser variable VBR o constante CBR y puede situarse entre los 32 y los 61.440Kb lo que asegura una calidad excepcional si se dispone de un buen ancho de banda en la transmisión. Disponer de capacidad de transmitir con tasas de Bits muy altas es fundamental cuando se captan imágenes con constantes cambios de luz, como por ejemplo conciertos o eventos con iluminación espectacular. Es ahí donde la capacidad de compresión con tasa de bits bajas hace imposible evitar la visualización de artefactos por límites de compresión y se debe recurrir a altos Bit Rates.

SRT es un protocolo de transmisión cada vez más popular y extendido del cual existen diferentes opciones. Desde la más básica como simple protocolo de transporte, a otras más complejas como las que encontramos en esta serie de cámaras diseñadas para entornos de transmisión seguros y eficaces a través de internet público.

En la KY-PZ200/200N y 400N actualmente pueden trabajar en SRT modo Listener o Caller (el modo rendezvous, está previsto en nuevas actualizaciones). Con Listener y Caller se puede trabajar con prácticamente cualquier decodificador y si estos disponen también de ambos modos (listener y Caller), se puede dirigir el peso de la transmisión en subida o bajada según las limitaciones (si existen) del ancho de banda que encontramos en nuestra conexión de internet.


En esta serie de cámaras la transmisión en SRT puede ser encriptada (Encryption) con (Password) para garantizar la privacidad (muy importante en algunos entornos) que garantiza que no se nos pueda piratear la transmisión.

Tambien se dispone del control de Bandwith Overhead para optimizar la transmisión que fija el porcentaje de sobrecarga para la transmisión donde se aloja información adicional a la transmisión base, FEC, VITC, etc... entre 5-100%.

La latencia es otro factor importante para nuestro control que en ocasiones es determinante para la calidad de la transmisión, ya que determina el tiempo o retraso máximo de espera del transmisor a recibir peticiones (ARQ) de datos perdidos del receptor. Donde una vez superado este tiempo, se descartan los paquetes perdidos.

ARQ (Automatic Repeat Request), es una de las características relevantes como seguridad de transmisión que incorporan las KY-PZ200/400 en el SRT y que se desarrolla de forma automàtica. Sin embargo, antes de que ARQ deba actuar también se dispone de FEC (Forward Error Correction) que envia información preventiva para reconstruir datos por si existe perdida de los mismos en la transmisión, el tamaño o efectividad de FEC se puede ajustar en la cámara en forma matricial con las opciones 6x6, 8x8, 10x10 o sin FEC.

Finalmente el Stream ID permite trabajar con un único puerto e IP identificando los Streams por el Stream ID lo cual simplifica en gran medida la configuración de la red.

Sincronización de cámara por NTP e insertado VITC en streaming para sincronización de imagen en recepción.

Captura de ventana de SRT MiniServer, en su vesión 1.9 Beta
con salida de streaming sincronizado por NDI y SDI 

La sincronización NTP es muy utilizada en informática y cada vez más en otros muchos entornos como la producción profesional. NTP se utiliza por la mayoría de fabricantes para sincronizar el reloj interno de un equipo respecto a un reloj mundial. De hecho, JVC hace exactamente lo mismo y aprovecha la sincronización para insertar la información de reloj como código de tiempos en el intervalo vertical VITC en la imagen que se envia en streaming.
De esta forma al recibir el streaming de diferentes cámaras en recepción y disponer de la información exacta de cuando ha sido captada se pueden comparar y retardar una señal respecto a la otra para igualarlas y mostrarlas sincronizadas entre si, aunque estas se reciban en tiempos diferentes. Esto se puede hacer algunos decodificadores o softwares como SRTMiniServer (ver articulo)

La capacidad de manejar imágenes con mayor o menor tiempo diferencial entre ellas depende del Buffer de trabajo que suele ser de algunos segundos, esto es suficiente si las configuraciones de latencia y calidad del ancho de banda es buena.  
Esta forma de sincronizar las imágenes recibirlas por streaming permite trabajar con streaming generado en cualquier lugar del mundo, siempre que los relojes estén referenciados en NTP y con la misma diferencia horaria en base a UTC "Tiempo Universal Coordinado" o GMT "Greenwich Mean Time", ya de lo contrario, dará error y será inviable su sincronización debido a que las diferencias locales se basan siempre saltos de 1h o 30'.