DVR Replication
Flussonic Media Server offers a unique feature — the automatic replication of an archive of a video stream between servers. Replication means that a DVR archive is stored on two (or more) Flussonic servers. After establishing a connection between a source and a secondary server, the secondary server will automatically use the missing video from the source.
The secondary server can limit the total speed of replication in order not to interrupt the live broadcast or reduce its quality. The live broadcast can be affected because replication of a large archive can take up server bandwidth for a long time or overload the disk subsystem, which will lead to a denial of service.
Replication is useful in the following cases:
- Copying an archive to other servers for reliability, with auto-recovery after failures.
- Broadcasting with a time shift in another time zone, with reliable automatic delivery of a missing video.
To enable replication, use the replicate
keyword in a dvr
configuration of the source server, which you configure on the secondary server. You can configure replication for all streams or for a certain stream.
In the following example, the replication server will replicate all the streams configured on the primary server:
cluster_key abcd;
source streamer:8081 {
dvr /storage 20d replicate;
}
You can enable replication for a specific stream:
stream repl_example1 {
input m4f://streamer:8081/fake2;
dvr /storage 7d replicate;
}
With this configuration, only the primary server connects to the stream source, and the secondary can only pick up the archive from the primary one.
Note
It is not recommended using the dvr_offline
option (which turns off the recording) instead of dvr
because the replicate
keyword enables recording automatically.
Protocol
Replication works only via the internal Flussonic protocol — M4F. In general, we recommend using M4F when transmitting video between Flussonic servers. You can read more about the benefits of the M4F protocol here.
Port
By default, replication is enabled on the port specified when configuring the M4F source. You can specify a separate port for replication:
stream repl_example2 {
input m4f://streamer:8081/fake2;
dvr /storage 7d replicate replication_port=8002;