Live Video Stream

This page documents the approach and work being done to handle live video streaming at the conference. Live video streaming means displaying video via the web of activity that is happening as it is happening.

See also the live audio streaming page,

Goals and objectives

The main goal of video streaming is to provide a way for people who cannot come to the forum to experience the forum, as it is happening, including not only people in the United States, but people from all of the world as well. Objectives include:

  • Provide a live stream of one event at a time (to conserve onsite bandwidth), probably the plenary sessions
  • If possible, create a television studio to shoot live-to-web interviews during the day
  • Provide a live stream using free and open source software, formats and codecs whenever possible, with fall back to proprietary formats and codecs to ensure as many people can view the stream as possible without needing to install additional software
  • Recording and making available on-demand all programs streamed

Technology Overview

  • Camera => Video switcher => Video encoder => video server => web site plugin
  • The goal is: encode as OGG/Theora format, send to Icecast2 server. Then, re-encode from Icecast2 server to flash Red5 server.
  • Web site plugin detects if the browser can display OGG/Theora via native video html tag, then display OGG/Theora Icecast feed. Otherwise, display flash

What are we covering

  • Plenaries. These will be in giant rooms, with professional sound and we're expecting jumbotrons - meaning they *may* have their own video crew and switching setups out of which we could expect to get an analog audio (we should be prepared with XLR -> mini cable) and video signal (either RCA or S-Video) ready to go straight to the Internet. We should have cabled Internet access.
  • Cultural/Music Events. There are plans for many cultural events taking place both indoors and outdoors. Could be inside or outside (if outside, we may need to rely on our mesh network for Internet access). Should have professional audio setup from which we could expect to get an analog audio signal.
  • Protest/marches: I'd like us to be prepared to have a fully mobile unit (we have access to cell phone modem usb sticks for Internet). Could be a simple USB camera and microphone attached to a laptop in a backback.
  • Studio: If we constructed a 3 camera studio with an audio soundboard and video switching - I think we could recruit an interviewer and producers to put together several live-to-Internet interview shows.
  • Workshops: no telling what kind of AV we will have. I imagine some of the larger workshops might have audio. Let's face it - most workshops make bad TV, however, I think we need to be prepared because we're expecting some very important workshops to take place.

Server Congiruation

We are using two servers, located in two different colocation centers as our primary back bone.

Both servers are running Debian Squeeze and have red5-server and icecast instaled on both servers:

  • / ( (in XO/Bandcon). Stream password: ussfstream
  • / ( (in Telehouse). Stream password: ussfstream

Learning from Debconf

The DebConf video team has done a similar thing for years now, with a wiki here:

They have a set of debian packages and scripts that in a set of .deb's. This is available here:

It also links to the program dvswitch, which is used to take the different camera feeds and control which one is sent out.

It includes several very useful pages, such as a page that shows how one would setup a room that streams ogg to an icecast server.

DebConf also has a fai system that allows you to easily install all software needed on computers, simply by booting from usb. You clone their svn repository, and edit the files to reflect your setup. You specify what the hostnames are of the computers that will need each part, such as Xorg, encoding software, icecast, etc. You then boot from usb, enter the hostname for the computer, and it will automatically configure the computer to how you specified it.

When testing an install of the computer to dvswitch, I encountered a few problems encountered. When attempting to boot from the usb stick, the vmlinuz in the svn repository was trying to pull modules from the kernel in lenny version 5.0.0. However, the only version of lenny in the debian repository was 5.0.4, and these had different kernel versions. It failed trying to pull modules no longer available in the archive. This was solved by pulling the vmlinuz from the current lenny hdinstall, and using that instead of the supplied vmlinuz.

I also had to track down the username and password. I found it in preseed.cfg. The password for root was fai.

When logging in, it could not get an IP address for the machine. This was because of an odd line in /etc/hosts, "found: selma". I changed this to "selma".

I later able to get two cameras hooked up to the computer. Each camera needs its own firewire bus, so I had to put two firewire cards in. Once they were in, I had to add the the main account to the video and audio groups, as well as create a firewire group and add it to that. One this was done, I ran dvswitch, and two instances of dvsource-firewire. The video sources came up on the screen, and I was able to switch between them.

I tried to run:

dvsink-command mplayer -

but that gave me format errors that I never figured out.

I was able to convert to ogg and play it with:

dvsink-command -- ffmpeg2theora - -f dv -F 25:5 --speedlevel 0 -v 4 -a 0 -c 1 -H 9600 -o -| mplayer -

I'm not entirely sure what all of those arguments do, so I will need to look into that.

Last modified 8 years ago Last modified on 06/18/10 07:50:56