O arquivo DVR¶
O arquivo transforma um canal de «só ao vivo» em um nPVR: o espectador retrocede, alcança o início do programa, assiste ao episódio de ontem. A gravação é feita pelo streamer onde o canal roda; esta página prepara os discos, liga a gravação e mostra como conferir que o arquivo está mesmo sendo gravado e tocado.
Prepare os discos do streamer¶
O armazenamento do arquivo é uma configuração do streamer, não do canal. Abra o streamer no registro, o bloco DVR das configurações dele:
- Raiz do arquivo — o diretório onde os discos do arquivo estão montados.
- Discos — um por dispositivo físico: diretórios filhos da raiz.
- Verificar montagens antes de gravar — ligado por padrão: um diretório sem montagem própria é reportado como «não montado», e o streamer se recusa a gravar o arquivo na partição raiz do sistema — um jeito garantido de derrubar a máquina junto com o arquivo. Desligue só de forma consciente.
Os discos se montam assim: monte cada disco como diretório filho de um diretório comum — /storage/dvr/disk1, /storage/dvr/disk2, /storage/dvr/disk3 —, indique o diretório comum como Raiz do arquivo e inclua cada disco na lista de discos como seu diretório filho:

Pressione Salvar alterações — o central entrega o armazenamento ao streamer, e os indicadores de aplicação mostram quando entrou em vigor. Sem armazenamento configurado a gravação não começa, por mais canais que a peçam.
O streamer local de uma instalação de uma só máquina não é exceção: ele se abre a partir do mesmo registro, e seu armazenamento se configura no mesmo bloco DVR do console.
JBOD em vez de RAID¶
O subsistema de arquivo do Catena é um application RAID: o próprio streamer distribui a gravação entre dispositivos independentes, ele mesmo percebe um disco caído e continua gravando nos restantes. Por isso os discos são entregues a ele separadamente — JBOD: cada um com seu sistema de arquivos e seu ponto de montagem, como na montagem acima. Perder um disco custa exatamente a parte do arquivo daquele disco: os demais continuam gravando, e o indicador DVR fica vermelho no registro de streamers.
Não recomendamos RAID por hardware nem por software sob o arquivo — e prometemos que com essas soluções de engenharia você vai esbarrar em problemas. A gravação do arquivo é um fluxo contínuo para todos os canais da máquina ao mesmo tempo, e sob essa carga um array se comporta pior que a soma dos seus discos: a degradação ou o rebuild de um único disco freia o array inteiro, e os atrasos e omissões de gravação crescem em todos os canais ao mesmo tempo. É exatamente assim que a sobrecarga do arquivo aparece no gráfico de gravação da aba DVR: as curvas de omissões e atrasos sobem em todos os canais da máquina de uma vez.
Ligue a gravação¶
Na página do canal abra a aba DVR:
- Gravar no DVR — liga a gravação.
- Retenção (horas) — quantas horas de transmissão manter; o que sai da profundidade é apagado sozinho.
- Tamanho máx. (bytes) — teto de espaço em disco. Os dois limites atuam juntos: o que chegar primeiro apara o arquivo.
Pressione Salvar. Em um ou dois minutos a mesma aba mostra o Estado atual da gravação: um indicador com o veredicto e a janela do arquivo — do início da gravação até agora. Quando o streamer reporta estatísticas estendidas, aparecem aqui também as horas com dados (com buracos, se a gravação foi interrompida), o tamanho do arquivo, as velocidades de gravação ao vivo e o gráfico de gravação — a história dessas velocidades junto com erros e omissões.

Vigie a gravação¶
Na lista de canais, a coluna DVR de um canal com arquivo mostra quanto está de fato gravado, mais um indicador de saúde:
- Verde — a gravação vai, sem erros.
- Amarelo — a gravação está degradada (fragmentos gravados com atraso ou pulados), ou o DVR está configurado mas não grava.
- Vermelho — erros de gravação: dados estão sendo perdidos agora mesmo.
- Um traço — o canal não tem arquivo configurado.

A saúde dos discos mora do lado do streamer: quando um disco cai ou enche, o indicador DVR do registro de streamers fica vermelho.
O que o espectador recebe¶
O arquivo é servido pelos mesmos endereços HLS que o ao vivo — o reprodutor não precisa de nada especial:
- Retrocesso:
/streaming/v/<nome>/rewind/<segundos>/index.m3u8— o mesmo canal deslocado ao passado pelo número de segundos indicado.rewind/3600é uma hora atrás. - Faixas gravadas:
/streaming/dvr-ranges/<nome>— JSON com a lista de intervalos gravados. Sobre ele se constroem as linhas do tempo de arquivo nos reprodutores: dá para ver o que está gravado e onde há buracos. - Clipe de preview:
/streaming/dvr-preview-mp4/<nome>/<utc_ms>— um MP4 curto ao redor de um momento (UTC em milissegundos). Útil para interfaces editoriais e de moderação: mostrar um pedaço do arquivo sem levantar um reprodutor. É montado das miniaturas gravadas no arquivo — configure os previews com «Guardar miniaturas no DVR» ligado, ou o endereço responderá que não há quadros.
Se a gravação não vai¶
- «DVR configurado mas não está gravando». Ou o canal não está no ar — não há o que gravar — ou o streamer não tem armazenamento de arquivo configurado. Confira o status do canal e o bloco DVR nas configurações do streamer.
- «Erros de gravação do arquivo — dados estão sendo perdidos». O disco está cheio, caiu ou não está montado. Olhe o indicador DVR e as configurações de discos no registro de streamers.
- A janela do arquivo é mais curta que a retenção. É normal logo após ligar: a janela cresce com a gravação e só alcança a profundidade depois dessas horas.