Multi-Site DVR - Open Source
Note: this article is a work in progress
Code available at https://github.com/eutychus/multisite-dvp . Hosted service available from https://www.lightcastmedia.com/
Many of our clients are churches and groups running large live or partially delayed events across multiple locations. In some circumstances, a simple normal remote video stream works great... but it's not ideal.
A common scenario
A multi-site church runs multiple services at each location. The music and announcements are local to each campus, but the sermon is broadcast from a central location.
Internet connections aren't always consistent, and in some occasions, remote sites are connected over unreliable links (e.g. rural wifi based internet, cellular).
Our solution allows local downloading of video segments, scheduling and cueing playback. It also allows playback when the destination locations internet can be slow or unreliable.
This works regardless of whether the client site was online when the broadcast began (server side dvr) and would even allow playback at a site without internet (sneakernet – all necessary segments downloaded while live and moved to the destination location).
Interface
In the top left is an indicator showing whether there is a a current live broadcast. It will also indicate if the net connection or connection to the dvr server has failed.
Video controls are available on hover. Below the video are timecodes and seek options. This allows you to seek to a specific clock time, rather than just an offset in the video.
Storage gives you an overview of information about video available on the server. White blocks are on the server, but not on the client, green blocks are downloaded segments. Purple is the current playback position. Black blocks indicate discontinuity / transitions between multiple recordings. The amount of local storage is configurable and the system automatically purges oldest first when storage gets low.
A simple scheduling tool allows you to automatically download sections of video. In our church service scenario, you might want to skip the first 20-30 minutes (announcements, music) but download the next 45min.
The system is designed for multi-monitor use (one display for command and control, another output sent to a projector or video distribution system) and can be controlled using only the numeric keypad.
Purpose | Shortcut |
---|---|
Toggle full screen | Enter, F |
Toggle play/pause | Space, Keypad 5 |
Begin recording | R, * |
Seek +10 minutes | +, Up Arrow |
Seek -10 minutes | -, Down Arrow |
Seek +1 minute | Right Arrow |
Seek -1 minute | Left Arrow |
Set focus to seek input | Keypad dot |