Skip to main content
“O que aconteceu às 3h12?” tem duas respostas, e elas vêm de acervos diferentes. Escolher o errado devolve 404 numa câmera que tem o vídeo.
Os dois acervos são independentes. Uma câmera pode ter clipe de alarme e não gravar continuamente, e o contrário também. Se a primeira rota não achou, tente a segunda antes de dizer ao operador que não há vídeo.

1. O que o alarme mandou guardar

Cada linha já vem tocável: playback_url é um endereço assinado, sem segunda chamada e sem você saber nada do armazenamento. Três campos que enganam:
  • alarm ausente significa que a gravação não nasceu de um evento (manual, agendada). A ausência é a informação.
  • partial: true significa que a gravação não fechou limpa: o vídeo pode truncar no fim. Mostre isso antes de o operador concluir que “acabou aí”.
  • camera_ref vazio acontece quando a câmera foi apagada do cadastro. A gravação sobrevive à câmera; o identificador que casa com o seu lado, não.

Buscar por texto

q alcança nome de câmera, local, cliente, descrição do evento e conta:

Abrir uma, e achar os outros ângulos

Peça esta rota quando o operador for de fato abrir o vídeo: a assinatura sai nova, com prazo cheio. Ela traz related, as outras gravações do mesmo alarme:
Desenhe related na tela. Um evento num local com oito câmeras produz oito gravações, e sem essa lista quem abre uma não sabe que as outras sete existem. Varrer os ângulos do mesmo instante é o que resolve o atendimento.

2. Voltar a fita

Para câmera que grava sem parar, peça a janela direto:
A resposta é a playlist HLS (application/x-mpegURL), pronta para o player:
start e end são ISO 8601 com fuso. Sem vídeo guardado na janela, 404, que aqui quer dizer as duas coisas ao mesmo tempo (“não há vídeo” e “não é desta chave”), de propósito.

O prazo

Todo endereço de vídeo aqui é assinado e vence (quem arquiva, arquiva os bytes).