Videovigilancia (servidor RTSP)¶
Importante
Versión beta 2.1. Lo que se describe aquí solo existe en la versión beta 2.1: se instala desde el repositorio beta y solo con una licencia; la versión estable 2.0.2 y la versión de demostración no lo incluyen. La versión beta se suministra sin garantías y el soporte se presta en la medida de lo posible (Programa de pruebas beta).
Desde la versión 2.1.0.485, un nodo puede servir sus flujos SPTS por RTSP a sistemas de gestión de vídeo (VMS) y reproductores, por ejemplo VLC y ffmpeg. Desde la versión 2.1.0.493, en la misma dirección se reproduce también el archivo del flujo. El servidor se configura en la pantalla «Videovigilancia» (Videovigilancia); la versión de demostración no lo tiene.
En directo¶
Por defecto el servidor RTSP está desactivado: mientras lo está, el nodo no abre el puerto RTSP. Activado, el servidor sirve cada flujo SPTS del nodo; no hay un interruptor ni una lista de acceso por flujo. Los flujos MPTS no se sirven.
Dirección del flujo:
rtsp://<host>:<puerto>/<flujo>
Aquí <flujo> es el nombre OTT del flujo (el mismo que en sus direcciones HLS, aunque el OTT esté desactivado) o su número. El puerto por defecto es 554.
El vídeo H.264 o H.265 con audio AAC o AC-3 se transmite como flujos RTP separados; el audio en otros códecs no se transmite.
Un flujo cuyo vídeo no es H.264 ni H.265 (por ejemplo, MPEG-2), o que no tiene vídeo, se transmite completo como MPEG-TS sobre RTP.
El RTP va dentro de la conexión TCP de RTSP o, desde la versión 2.1.0.494, por UDP. Por UDP el vídeo se envía solo a la dirección del propio cliente; no se ofrece multicast. Un cliente detrás de NAT necesita TCP: la mayoría de los reproductores pasan a él por sí solos. El archivo por UDP siempre va en tiempo real. Antes de la versión 2.1.0.494, el servidor rechazaba una solicitud por UDP, y VLC y ffmpeg pasaban a TCP por sí solos.
La reproducción empieza en el siguiente fotograma clave.
Nota
ffmpeg como cliente de grabación (-c copy) no puede poner marca de tiempo al primer fotograma de una fuente H.264 con fotogramas B. Un reproductor muestra y graba esa fuente.
RTSPS (RTSP sobre TLS)¶
Desde la versión 2.1.0.494, el servidor acepta también RTSPS, es decir, RTSP en una conexión TLS cifrada, en un puerto aparte:
rtsps://<host>:<puerto RTSPS>/<flujo>
RTSPS se activa en la pantalla «Videovigilancia» con el interruptor «RTSPS (RTSP sobre TLS)»; allí está también «Puerto RTSPS», 322 por defecto (Videovigilancia). En los ajustes del nodo son las claves rtsps-enable y rtsps-port de la sección surveillance.
El servidor necesita un certificado y una clave en formato PEM: los archivos surveillance.crt y surveillance.key en el directorio /opt/pss/config/cert. Sin ellos RTSPS no arranca: el nodo informa del error en el estado del servidor en la API HTTP (/data/surveillance) y lo reintenta cada 10 s.
Por RTSPS el vídeo siempre va dentro de la conexión cifrada: el servidor rechaza una solicitud por UDP, y el cliente pasa a TCP. No se transmite nada en texto claro.
Cuentas del directorio¶
Desde la versión 2.1.0.497, al servidor RTSP también pueden conectarse cuentas de un directorio LDAP o de Active Directory. Para ello, en la pantalla «Videovigilancia» elija en «Autenticación» «Digest para usuarios, Basic para el directorio (solo RTSPS)» (la clave rtsp-auth con el valor 3) y active RTSPS (RTSPS (RTSP sobre TLS)). Las cuentas del directorio entran solo por RTSPS y por Basic, dentro de TLS. Por RTSP normal, Basic no se ofrece ni se acepta: allí solo entran los logins RTSP locales, por Digest. Desde la versión 2.1.1.502, por RTSPS en este modo también los logins locales entran por Basic (dentro de TLS); a un cliente que solo sabe Digest le queda el RTSP normal con un login local. Qué grupos tienen permitido RTSP y cuántas sesiones simultáneas se define en «Acceso RTSP por grupo» (Espectadores y RTSP por el directorio). Desde la versión 2.1.0.499, los sistemas de videovigilancia y los reproductores basados en live555 (VLC, openRTSP y muchos VMS) también inician sesión por RTSPS con una cuenta del directorio.
Reproducción del archivo¶
Desde la versión 2.1.0.493, el archivo del flujo se reproduce en la misma dirección RTSP que el directo. Hace falta un flujo que grabe archivo, es decir, con un «Almacenamiento DVR» definido (DVR: el archivo del flujo); sin almacenamiento no hay reproducción del archivo.
Los sistemas de gestión de vídeo solicitan un intervalo de tiempo en UTC (según las reglas de ONVIF):
cada fotograma llega con su propia hora de grabación;
el archivo se envía en tiempo real o, si el cliente lo pide, tan rápido como lo permita la red;
funcionan la pausa, la reanudación y el salto a otro momento.
Los reproductores (VLC, ffmpeg) abren la dirección con parámetros:
rtsp://<host>:<puerto>/<flujo>?t=<hora Unix>[&d=<segundos>]
t es el inicio, en segundos Unix (UTC). La barra de búsqueda funciona. Con d la reproducción termina al cabo del número de segundos indicado.
Inicio. La reproducción empieza en un fotograma clave en el momento solicitado o antes, hasta un segmento de archivo antes. Si el momento solicitado es anterior al inicio del archivo, la reproducción empieza al inicio del archivo.
Fin.
Si se indica el fin del intervalo (o
d), la reproducción se detiene ahí.Si no se indica el fin, la reproducción pasa al directo cuando alcanza la grabación.
Si la grabación se detuvo (por ejemplo, la cámara no funciona), la reproducción termina en el último fotograma grabado.
Cámara detenida. Un flujo del que no llegan datos se puede abrir igualmente y reproducir su archivo.
Limitaciones:
Solo velocidad normal: no hay reproducción acelerada ni ralentizada.
Un flujo que se transmite completo como MPEG-TS (sin vídeo H.264 o H.265) solo está disponible en directo.
Las sesiones abiertas se ven en la pantalla «Videovigilancia» (Videovigilancia) y en la API HTTP (/data/surveillance, Gestión mediante la API HTTP): para cada una se ve si es directo o archivo y, para el archivo, el momento del último fotograma enviado.