-
Notifications
You must be signed in to change notification settings - Fork 52
Machines
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.