Changes between Version 5 and Version 6 of free-video-streaming-technology


Ignore:
Timestamp:
Aug 16, 2011, 4:57:11 PM (13 years ago)
Author:
Nat Meysenburg
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • free-video-streaming-technology

    v5 v6  
    33
    44= Video streaming with free software =
    5 The method and tool set that we are now using and recommending was first developed for streaming the annual [http://debconf.org/ Debian Developers Conference]. It should work on other GNU/Linux distributions as well.
     5The method and tool set that we are now using and recommending was first developed for streaming the annual [http://debconf.org/ Debian Developers Conference], and has since been used to stream other events and conferences such as FOSDEM and Linux Conf Australia. These tools should work on all GNU/Linux distributions.
    66
    7 Many of the notes, and background information comes from steady reference to the [http://dvswitch.alioth.debian.org/wiki/ DVswitch Wiki], particularly the [http://dvswitch.alioth.debian.org/wiki/component_interaction/ component interaction].
     7Many of the notes, and background information come from steady reference to the [http://dvswitch.alioth.debian.org/wiki/ DVswitch Wiki], particularly the [http://dvswitch.alioth.debian.org/wiki/component_interaction/ component interaction], as well as other resources supplied by the developers.
    88
    99== Basic Software Components ==
    1010
    11  * [http://dvswitch.alioth.debian.org/wiki/ dvswitch, dvsource, and dvsink]
    12  * [http://v2v.cc/~j/ffmpeg2theora/ ffmpeg2theora]
    13  * [http://v2v.cc/~j/oggfwd/ oggfwd]
    14  * [http://www.icecast.org/ icecast2]
     11 * [http://dvswitch.alioth.debian.org/wiki/ dvswitch] (GPLv2)
     12   * dvsource (ships with dvswitch but can be installed independently, and is packaged independently in some GNU/Linux distros)
     13   * dvsink (ships with dvswitch but can be installed independently, and is packaged independently in some GNU/Linux distros)
     14 * [http://v2v.cc/~j/ffmpeg2theora/ ffmpeg2theora]  (GPLv3)
     15 * [http://v2v.cc/~j/oggfwd/ oggfwd] (GPLv2)
     16 * [http://www.icecast.org/ icecast2] (GPLv2)
    1517
    1618== Hardware ==
     
    2426 * Ideally a gigabyte switch, with gigabyte NICs on all of the computers should be used on the LAN to cut down on latency, but it should work on a 10/100 LAN just fine.
    2527
    26 The three computers running dvsource, dvswitch and dvsink is an ideal setup. In a pinch all three pieces can be run on fewer machines. We have successfully run all three on an x61 Thinkpad, but the machine ran '''hot'''. Dvsource is very lightweight, and can be run on an old machine with little RAM. DVswitch can be moderately CPU intensive and depending on how many dvsources you are using that scales up. DVsink is processor intesnive, mainly because ffmpeg has to convert the dv stream to ogg. If using two machines, it is best to split the sink from the switch.
     28There are additional pieces of hardware that can be obtained to increase the quality of your stream.
    2729
    28 You can add more cameras and source computers.
     30 * A USB audio device that can take inputs. This is helpful as most laptops expect microphone input and so do odd things with gain, reducing audio quality. There are many mixers and other simpler devices available. As long as it works on your version of GNU/Linux with ALSA, it can be used as a source. Thinking about the sound is important, as poor sound quality is more distracting than poor video quality.
     31 * A VGA converter, such as the TwinPact100 (a model recommended by the DVswitch developers that runs ~$500USD). This will allow you to turn a presenters computer into a video source for the stream.
     32
     33The three computers running dvsource, dvswitch and dvsink is an ideal setup. In a pinch all three pieces can be run on fewer machines. We have successfully run all three on an x61 Thinkpad, but the machine ran '''hot'''. Dvsource is very lightweight, and can be run on an old machine with little RAM. DVswitch can be moderately CPU intensive and depending on how many dvsources you are using that scales up. DVsink is processor intensive, mainly because ffmpeg has to convert the dv stream to ogg. If using two machines, it is best to split the sink from the switch.
    2934
    3035== Networking and Bandwidth ==
    3136There are multiple layers of bandwidth and networking in this setup. On site you will need two things, a functional LAN (preferably wired), and at least one connection to the Internet that can be used for forwarding the stream to a server. This connection does not need to be astonishingly fast to achieve a quality stream. It is more important to attempt establishing a stable route to the server than a high bandwidth one.
    3237
    33 Depending on your expected audience size, the bandwidth needs of your Icecast server may vary. In our limited testing, the Icecast software can handle several thousand streams at once, without a huge impact on the hardware, so it is likely that you will hit bandwidth limits before you hit a hardware bottleneck. For MFPL's streams, we have Icecast running from data center connections.
     38Depending on your expected audience size, the bandwidth needs of your Icecast server may vary. In our limited testing, the Icecast software can handle several thousand streams at once, without a huge impact on the hardware, so it is likely that you will hit bandwidth limits before you hit a hardware bottleneck. For MFPL's streams, we have Icecast running from data center connections. If you are anticipating a large audience of stream viewers from within your LAN, it may be worthwhile to set up and Icecast server locally to conserve onsite bandwidth (particularly if you need that space to publish the stream to other servers).
    3439
    3540== Formats and Protocols ==
     
    3742
    3843== Embedding streams onto web sites ==
    39 Once you have an ogg stream running, it is important to make it easy to find and view. Embedding it into the browser is the common choice. There has been a significant  growth of support for the HTML5 video tag as well as in browser support for ogg/theora. Firefox/Iceweasel, Chrome/Chromium, Opera will all embed a video player with just a video tag and functional stream.
     44Once you have an ogg stream running, it is important to make it easy to find and view. Embedding it into the browser is the common choice. There has been a significant  growth of support for the HTML5 video tag as well as in browser support for ogg/theora. Firefox/Iceweasel, Chrome/Chromium, Opera will all embed a video player with just a video tag pointing to a functional stream.
    4045
    41 However, there is still the looming problem of proprietary browsers refusing to support ogg/theora. This problem has been addressed by [http://www.theora.org/cortado/ cortado], which uses a Java applet to supply oggs to browsers that don't support HTML5.
     46However, there is still the looming problem of proprietary browsers refusing to support ogg/theora. This problem has been addressed by [http://www.theora.org/cortado/ cortado], which uses a Java applet to supply oggs to browsers that don't support HTML5 video tags and/or ogg/theora.
    4247
    4348[http://current.workingdirectory.net/pages/jxiph/ jxiph] is a simple javascript library that attempts to auto-detect whether a browser should be served the cortado java app or html 5.
     
    4651Here is a simple set up, with some commands to illustrate how the flow of stream works; there are of course different ways to do this.
    4752
    48 Again we are assuming that there is a functional LAN and functional connection to the Internet. All of which are out of scope for this example.
     53Again we are assuming that there is a functional LAN and functional connection to the Internet, and all machines are running functional versions of GNU/Linux with appropriate software installed. All of which are out of scope for this example.
    4954
    5055=== On the Icecast server ===