El archivo DVR¶
El archivo convierte un stream de «solo directo» en un nPVR: el espectador rebobina, alcanza el inicio del programa, ve el episodio de ayer. La grabación la hace el streamer donde corre el stream; esta página prepara los discos, activa la grabación y muestra cómo comprobar que el archivo de verdad se escribe y se reproduce.
Prepare los discos del streamer¶
El almacenamiento del archivo es una configuración del streamer, no del stream. Abra el streamer desde el registro, el bloque DVR de su configuración:
- Raíz del archivo — el directorio donde están montados los discos del archivo.
- Discos — uno por dispositivo físico: directorios hijos de la raíz.
- Verificar montajes antes de grabar — activado por defecto: un directorio sin montaje propio se reporta como «no montado», y el streamer se niega a escribir el archivo en la partición raíz del sistema — una forma segura de tumbar la máquina junto con el archivo. Desactívelo solo a conciencia.
Los discos se ensamblan así: monte cada disco como directorio hijo de un directorio común — /storage/dvr/disk1, /storage/dvr/disk2, /storage/dvr/disk3 —, indique el directorio común como Raíz del archivo y añada cada disco a la lista de discos como su directorio hijo:

Pulse Guardar cambios — central entrega el almacenamiento al streamer, y los indicadores de aplicación muestran cuándo entró en vigor. Sin almacenamiento configurado la grabación no arranca, por muchos streams que la pidan.
El streamer local de una instalación de una sola máquina no es una excepción: se abre desde el mismo registro y su almacenamiento se configura en el mismo bloque DVR de la consola.
JBOD en vez de RAID¶
El subsistema de archivo de Catena es un application RAID: el propio streamer reparte la grabación entre dispositivos independientes, él mismo nota un disco caído y sigue escribiendo en los restantes. Por eso los discos se le entregan por separado — JBOD: cada uno con su sistema de archivos y su punto de montaje, como en el ensamblaje de arriba. Perder un disco cuesta exactamente la parte del archivo de ese disco: los demás siguen escribiendo, y el indicador DVR se pone rojo en el registro de streamers.
No recomendamos RAID por hardware ni por software bajo el archivo — y prometemos que con esas soluciones de ingeniería se topará con problemas. La escritura del archivo es un flujo continuo para todos los streams de la máquina a la vez, y bajo esa carga un array se comporta peor que la suma de sus discos: la degradación o el rebuild de un solo disco frena el array entero, y los retrasos y omisiones de escritura crecen en todos los streams al mismo tiempo. Exactamente así se ve la sobrecarga del archivo en el gráfico de escritura de la pestaña DVR: las curvas de omisiones y retrasos suben en todos los streams de la máquina a la vez.
Active la grabación¶
En la página del stream abra la pestaña DVR:
- Grabar en DVR — activa la grabación.
- Retención (horas) — cuántas horas de emisión conservar; lo que sale de la profundidad se borra solo.
- Tamaño máximo (bytes) — techo de espacio en disco. Ambos límites actúan a la vez: el que llegue primero recorta el archivo.
Pulse Guardar. En uno o dos minutos la misma pestaña muestra el Estado actual de la grabación: un indicador con el veredicto y la ventana del archivo — desde el inicio de la grabación hasta ahora. Cuando el streamer reporta estadísticas extendidas, aquí también aparecen las horas con datos (con huecos, si la grabación se interrumpió), el tamaño del archivo, las velocidades de escritura en vivo y el gráfico de escritura — la historia de esas velocidades junto con errores y omisiones.

Cachee el archivo de otro¶
En la misma pestaña hay un segundo interruptor — Cachear el archivo. No es un ajuste de la grabación sino una propiedad independiente: las lecturas del archivo del stream se asientan en los discos de caché del streamer, y una solicitud repetida de la misma parte se sirve localmente, sin ir a la fuente.

No hace falta activar la grabación para esto, y ahí está todo el sentido: un edge cachea el archivo de otro sin grabar el propio. El reparto típico es un origin que graba el archivo y edges más cerca de los espectadores que guardan lo que de verdad se ve.
El cacheo solo funciona donde el streamer tiene discos de caché configurados. Un stream con la caché activada en un streamer sin ellos no es un error: la caché simplemente no funciona y va un aviso al log. Eso es normal en un clúster, donde un mismo documento de stream se reparte entre máquinas distintas.
Cuánto ha ocupado la caché y qué proporción de solicitudes atiende — en la sección DVR del clúster.
Vigile la grabación¶
En la lista de streams, la columna DVR de un stream con archivo muestra cuánto hay realmente grabado, más un indicador de salud:
- Verde — la grabación va, sin errores.
- Amarillo — la grabación está degradada (fragmentos escritos con retraso u omitidos), o el DVR está configurado pero no graba.
- Rojo — errores de escritura: se están perdiendo datos ahora mismo.
- Un guion — el stream no tiene archivo configurado.

La salud de los discos vive del lado del streamer: cuando un disco se cae o se llena, el indicador DVR del registro de streamers se pone rojo.
Qué recibe el espectador¶
El archivo se sirve por las mismas direcciones HLS que el directo — el reproductor no necesita nada especial:
- Rebobinado:
/streaming/v/<nombre>/rewind/<segundos>/index.m3u8— el mismo stream desplazado al pasado el número de segundos indicado.rewind/3600es hace una hora. - Rangos grabados:
/streaming/dvr-ranges/<nombre>— JSON con la lista de intervalos grabados. Sobre él se construyen las líneas de tiempo de archivo en los reproductores: se ve qué está grabado y dónde hay huecos. - Clip de preview:
/streaming/dvr-preview-mp4/<nombre>/<utc_ms>— un MP4 corto alrededor de un momento (UTC en milisegundos). Útil para interfaces editoriales y de moderación: mostrar un trozo del archivo sin levantar un reproductor. Se ensambla de las miniaturas escritas en el archivo — configure los previews con «Guardar miniaturas en el DVR» activado, o la dirección responderá que no hay cuadros.
Si la grabación no va¶
- «DVR configurado pero no está grabando». O el stream no está al aire — no hay nada que escribir — o el streamer no tiene almacenamiento de archivo configurado. Compruebe el estado del stream y el bloque DVR en la configuración del streamer.
- «Errores de escritura del archivo — se pierden datos». El disco está lleno, caído o sin montar. Mire el indicador DVR y la configuración de discos en el registro de streamers.
- La ventana del archivo es más corta que la retención. Es normal justo tras activar: la ventana crece con la grabación y solo alcanza la profundidad tras esas horas.
Cuánto espacio se usa en el clúster¶
La capacidad de archivo de todos los streamers a la vez, el desglose del espacio ocupado en archivo activo y huérfano, y la reconstrucción del índice están en la página DVR del clúster.