Videovigilância (servidor RTSP)

Importante

Versão beta 2.1. O que está descrito aqui existe apenas na versão beta 2.1: ela é instalada a partir do repositório beta e somente com uma licença; a versão estável 2.0.2 e a versão de demonstração não têm isso. A versão beta é fornecida sem garantias, e o suporte é prestado na medida do possível (Programa de testes beta).

Desde a versão 2.1.0.485, um nó pode entregar os seus fluxos SPTS por RTSP a sistemas de gerenciamento de vídeo (VMS) e players, por exemplo VLC e ffmpeg. Desde a versão 2.1.0.493, no mesmo endereço também é reproduzido o arquivo do fluxo. O servidor é configurado na tela «Videovigilância» (Videovigilância); a versão de demonstração não o tem.

Ao vivo

Por padrão o servidor RTSP fica desligado: enquanto está desligado, o nó não abre a porta RTSP. Ligado, o servidor entrega cada fluxo SPTS do nó; não há chave nem lista de acesso própria por fluxo. Fluxos MPTS não são entregues.

Endereço do fluxo:

rtsp://<host>:<porta>/<fluxo>

Aqui <fluxo> é o nome OTT do fluxo (o mesmo dos seus endereços HLS, mesmo que o OTT esteja desligado) ou o seu número. A porta padrão é 554.

  • Vídeo H.264 ou H.265 com áudio AAC ou AC-3 é transmitido em fluxos RTP separados; áudio em outros codecs não é transmitido.

  • Um fluxo cujo vídeo não é H.264 nem H.265 (por exemplo, MPEG-2), ou que não tem vídeo, é transmitido inteiro como MPEG-TS sobre RTP.

  • O RTP vai dentro da conexão TCP do RTSP ou, desde a versão 2.1.0.494, por UDP. Por UDP o vídeo é enviado somente para o endereço do próprio cliente; multicast não é oferecido. Um cliente atrás de NAT precisa de TCP: a maioria dos players passa para ele sozinha. O arquivo por UDP sempre vai em tempo real. Antes da versão 2.1.0.494, o servidor recusava uma solicitação por UDP, e o VLC e o ffmpeg passavam para TCP sozinhos.

  • A reprodução começa no próximo quadro-chave.

Nota

O ffmpeg como cliente de gravação (-c copy) não consegue dar carimbo de tempo ao primeiro quadro de uma fonte H.264 com quadros B. Um player exibe e grava essa fonte.

RTSPS (RTSP sobre TLS)

Desde a versão 2.1.0.494, o servidor também aceita RTSPS — RTSP em uma conexão TLS criptografada, em uma porta separada:

rtsps://<host>:<porta RTSPS>/<fluxo>

O RTSPS é ligado na tela «Videovigilância» pelo interruptor «RTSPS (RTSP sobre TLS)»; ali também fica «Porta RTSPS», 322 por padrão (Videovigilância). Nas configurações do nó, são as chaves rtsps-enable e rtsps-port da seção surveillance.

O servidor precisa de um certificado e de uma chave no formato PEM: os arquivos surveillance.crt e surveillance.key no diretório /opt/pss/config/cert. Sem eles o RTSPS não inicia: o nó informa o erro no estado do servidor na API HTTP (/data/surveillance) e tenta de novo a cada 10 s.

Por RTSPS o vídeo sempre vai dentro da conexão criptografada: o servidor recusa uma solicitação por UDP, e o cliente passa para TCP. Nada é transmitido em texto aberto.

Contas do diretório

Desde a versão 2.1.0.497, contas de um diretório LDAP ou do Active Directory também podem se conectar ao servidor RTSP. Para isso, na tela «Videovigilância», escolha em «Autenticação» «Digest para logins, Basic para o diretório (só RTSPS)» (a chave rtsp-auth com o valor 3) e ligue o RTSPS (RTSPS (RTSP sobre TLS)). As contas do diretório entram apenas por RTSPS e por Basic, dentro do TLS. Pelo RTSP comum, o Basic não é oferecido nem aceito: lá só entram os logins RTSP locais, por Digest. Desde a versão 2.1.1.502, por RTSPS neste modo também os logins locais entram por Basic (dentro do TLS); a um cliente que só sabe Digest resta o RTSP comum com um login local. Quais grupos têm RTSP permitido e quantas sessões simultâneas é definido em «Acesso RTSP por grupo» (Espectadores e RTSP pelo diretório). Desde a versão 2.1.0.499, os sistemas de videovigilância e os players baseados em live555 (VLC, openRTSP e muitos VMS) também entram por RTSPS com uma conta do diretório.

Reprodução do arquivo

Desde a versão 2.1.0.493, o arquivo do fluxo é reproduzido no mesmo endereço RTSP que o ao vivo. É preciso um fluxo que grave arquivo, ou seja, com um «Armazenamento DVR» definido (DVR: arquivo do fluxo); sem armazenamento não há reprodução do arquivo.

Os sistemas de gerenciamento de vídeo solicitam um intervalo de tempo em UTC (pelas regras do ONVIF):

  • cada quadro chega com o seu próprio horário de gravação;

  • o arquivo é enviado em tempo real ou, se o cliente pedir, na velocidade que a rede suportar;

  • funcionam a pausa, a retomada e o salto para outro momento.

Os players (VLC, ffmpeg) abrem o endereço com parâmetros:

rtsp://<host>:<porta>/<fluxo>?t=<hora Unix>[&d=<segundos>]

t é o início, em segundos Unix (UTC). A barra de busca funciona. Com d a reprodução termina após o número de segundos indicado.

Início. A reprodução começa em um quadro-chave no momento solicitado ou antes dele — até um segmento de arquivo antes. Se o momento solicitado for anterior ao início do arquivo, a reprodução começa no início do arquivo.

Fim.

  • Se o fim do intervalo (ou d) for definido, a reprodução para nele.

  • Se o fim não for definido, a reprodução, ao alcançar a gravação, passa para o ao vivo.

  • Se a gravação parou (por exemplo, a câmera não funciona), a reprodução termina no último quadro gravado.

Câmera parada. Um fluxo do qual não chegam dados ainda pode ser aberto, e o seu arquivo reproduzido.

Limitações:

  • Somente velocidade normal: não há reprodução acelerada nem em câmera lenta.

  • Um fluxo transmitido inteiro como MPEG-TS (sem vídeo H.264 ou H.265) está disponível somente ao vivo.

As sessões abertas aparecem na tela «Videovigilância» (Videovigilância) e na API HTTP (/data/surveillance, Gerenciamento pela API HTTP): para cada uma, vê-se se é ao vivo ou arquivo e, para o arquivo, o momento do último quadro entregue.