Skip to content
Carl Karsten edited this page Dec 30, 2013 · 4 revisions

The basic path: camera -> video mixer -> collector -> encoder -> player. The camera and video mixer are not part of the streaming system, and the player is embedded in a web page that also hosts nice UX things like twitter fall and IRC client.

  • the VideoMixer creates the stream content. It is a whole different system, and not part of the streaming system.
  • Collector - Linux box, runs flumotion. It is the system running inside the venue which does a very light encode of the video/audio into a 1 or 2mbit FLV stream. This stream is sent up to the other box that I call the "encoder". This is normally one of Carl's machines that is not doing video mixing (Normally the one connected to the TwinPac). It connects to the VideoMixer and Encoder.
  • Encoder - This is a system that runs in the cloud (get some AWS credits from Amazon!). It's a very beefy machine (normally an large or x-large) machine. This takes the FLV stream and encodes it into the different formats that are needed by the clients (such as WebM, H264, etc). A script on the server runs which tells the website that this machine exists (register.py). It listens for connections from a Collector and players.
  • Player - users machine that plays the video stream. We hope to support all OSs, browsers, CPUs, bandwidths, apps, phones, etc. For some reasonable value of all.

There are a bunch of things to make this set up.

  • Set up scripts - this is a bunch of shell scripts which sets up an encoder or collector machine. It basically just gets all the required dependencies and then installs flumotion.
  • Configuration pusher (flumotion-config directory) - When you have multiple rooms it sucks when you have to make a change on each on individually. This config pusher takes a template and populates it with values and then scp's it to the machines. Makes making a change on every machine quicker. You don't need this if you are only streaming 1 room (as it's easier to SSH into it).
  • Watchdog - This runs on each of the collectors and encoders. It restarts any of the flumotion components which die.
  • Register - This basically tells the Website that the encoder is up and running and how many clients are connected.
Clone this wiki locally