Skip to content

DVR streamers

A DVR streamer is a streamer dedicated to recording the archive. It captures no sources and transcodes nothing; it records the archive of the streams that other streamers of its namespace capture. So the ingest streamer needs no archive disks: a server with GPUs transcodes, and the archive is recorded on machines with disks.

Enable a DVR streamer

A DVR streamer starts out as an ordinary streamer with archive storage. Join the machine, set up its disks and turn on the DVR node switch next to the role on the Cluster tab of the streamer page. The switch is only compatible with the Streamer role and does not combine with the Edge node switch: while one is on, the other is unavailable. Once it is on, the streamer gets the dvr badge in the registry.

Cluster tab of a streamer with the "DVR node" switch on

A DVR streamer needs an intra-cluster address — set it in connection and delivery: the ingest streamer and the edges read the recorded archive over it. A public address is not needed: a DVR streamer serves no viewers.

The rest is done by the layouter. For every stream with an archive in the DVR streamer's namespace it creates a dvr record assignment, and the ingest of such a stream records no archive and needs no storage. Turning the switch off on every DVR streamer of the namespace returns recording to the ingest streamers.

Layout tab of a stream: ingest on a diskless streamer, dvr record on a DVR streamer

What changes in the namespace

One DVR streamer changes the placement of every stream with an archive in its namespace: the archive is recorded only on DVR streamers.

  • Diskless ingest. The ingest streamer receives the source and transcodes; its config has no archive section, and it needs no archive storage.
  • Dvr record (dvr_record) — one assignment per stream. The DVR streamer receives the live stream from the ingest streamer as one intra-cluster stream and records it by the stream's retention depth.
  • Backup copies are placed only on DVR streamers. Their number is set by the DVR backup copies field on the stream's Layout tab; every copy needs a separate DVR streamer.
  • Archive recorded earlier on the ingest streamer's disks stays available to viewers until the stream's retention depth expires, then it is erased. No new recording goes to it.

There is no mixed mode: while the namespace has no DVR streamer, the ingest streamers record the archive; with the first DVR streamer, only DVR streamers do. A cluster where some sites record on the ingest machines and others on dedicated ones is divided by namespaces.

Failover

Dvr record is moved and frozen by the ingest rules, backup copies by their own. Without an ingest streamer the record is withdrawn: there is nothing to record. The recorded archive then stays on the DVR streamers as remains and is served to viewers; once ingest returns, the record is created anew.

What the viewer gets

The viewer receives live as before — from the ingest streamer or from an edge. The archive is read from the DVR streamers: the ingest streamer and the edges receive their addresses from central and serve the timeline from their recording. The viewer needs no separate setting.

Troubleshooting

The reasons are shown on the stream's Layout tab; how to read them is in placement status.

  • The dvr record demand is unmet. The DVR streamer has no disks (node has no archive storage), no intra-cluster address (no usable address), its stream limit is reached, or it is offline. Ingest keeps working without an archive: the ingest streamer records none while the namespace has a DVR streamer.
  • Ingest withdrawn with the reason "node is a DVR node". The switch is on on the only machine that could ingest the stream. A DVR streamer does not perform ingest.
  • Ingest withdrawn with the reason "node has no archive storage". No DVR streamers are left in the namespace, and the ingest streamer has no disks. Bring a DVR streamer back or join a streamer with disks.
  • A copy is not created with the reason "node role mismatch". Copies of a stream whose archive is recorded by DVR streamers are placed only on DVR streamers; an ordinary streamer with disks is not a candidate.
  • A copy is withdrawn with the reason "conflicts with the dvr record node". The record has been moved to the copy's machine; the copy is created on another DVR streamer.