===== Grundlagen Live-Streaming =====
~~SLIDESHOW~~
\\
am Beispiel einer Free-Software-Lösung
für Anwendungsfälle mit geringem (oder komplett ohne) Budget
===== Live-Streaming ohne Budget =====
Also:
* Standard-Hardware (das, was da ist).
* freie Software (gratis, aber vor allem //quelloffen//)
* freie Codecs (möglichst plattformübergreifend)
===== Unser Anwendungsfall =====
Linux Audio Conference 2012 (CCRMA, Stanford University)
\\
Ziele:
* Die Konferenz auch für Mitglieder der Community zu öffnen, die aus Zeit- oder Kostengründen nicht vor Ort sein können.
* Echte Partizipation, d.h. inkl. Rückkanal
* nachhaltige Dokumentation
===== Unser Anwendungsfall =====
Linux Audio Conference 2012 (CCRMA, Stanford University)
\\
Technik pro Vortragssaal:
* Bildmischer/Stream Operator
* Closeup/Halbtotale mit Kamera-Operator
* Feste Totale (bzw. bedient durch Stream Operator)
* IRC-Rückkanal
===== Signalkette =====
- Quellen: Kameras, Zuspieler, Stills
- Bildregie
- Senken: Aufnahme, Kontrollmonitor, Stream-Encoder
- Codec: aus 20Mbit/s mach 500kbit/s
- Sendeleitung: HTTP-Ausspielung des kodierten Streams
- Das Relay: aus eins mach N.
- Client-Software
===== 1. Quellen =====
* 2x Consumer/Prosumer-Camcorder mit DV-Output per IEEE 1394
* Screen capture VGA->DV
* Cartwall mit Intro-Videos für jeden Beitrag
===== 2. Bildregie =====
* Standard-PC (2 Kerne Core2 2GHz oder besser)
* DVSwitch (http://dvswitch.alioth.debian.org)
* MIDI-Faderbox (z.B. Behringer BCF2k)
===== 2. Bildregie (2) =====
+-------+ +-----------------+
/-->-=* | title | |cGRE Camera(s), |
: meta | video | | Video Projector |
+-=---->| files +---\ /---+ etc.. |
: |cGRE | | | | |
| +-------+ v v +-----------------+
/------\ +-----+-----+ +----------+
| | |cYEL | |cYEL |
| Midi | MIDI | | OSC | |
| +-=------->| dvmctrl +-=------->| dvswitch |
| Desk | | | | |
\------/ +-----------+ +--+----+--+
^ meta | | +----------------+
| *------\ | | | |
| : | \------>| Live Stream(s) |
: v v meta | cBLU |
+----+----+ +-------+ *-=---->| |
|{d} | |{s} | | |
| config | | HDD | +----------------+
| | |cBLU |
+---------+ +-------+
Legend:
-=----> control data +-----------+ +--------+ +------+
|cYEL | |cGRE | |cBLU |
------> video signals (DV) |application| |dvsource| |dvsink|
| | | | | |
+-----------+ +--------+ +------+
===== 3. Senken =====
* Aufnahme DV-Stream (Programmsignal)
* Kontrollmonitor (DVSwitch-GUI)
* Stream-Encoder hohe Bandbreite
* Stream-Encoder niedrige Bandbreite
===== 4. Codec =====
* Container-Format: OGG (http://xiph.org)
* Audio-Stream: Vorbis (http://xiph.org/vorbis)
* Video-Stream: Theora (http://xiph.org/theora)
* optional: Untertitle mit Kate (https://wiki.xiph.org/OggKate)
===== 5. Sendeleitung =====
* HTTP-Stream über beliebigen Port (kein Problem mit Firewalls)
* Kommunikation mit dem Relay über libshout
* Bandbreitenbedarf kann angepasst werden (üblicherweise 200 kbit/s bis 2 Mbit/s)
===== 6. Relay =====
* extern gehosteter Icecast2-Server
* Empfang auf beliebigem Port per HTTP
* Ausgabe auf beliebigem Port per HTTP (keine Probleme mit Firewalls)
* Bandbreitenskalierung über weitere Slave-Relays
===== 7. Client-Software =====
* einfachste Lösung: nativer Browser-Support in Google Chrome/Chromium, Firefox, Opera per HTML5
===== Fazit =====
* komplette Open-Source-Lösung
* nicht ohne Ecken und Kanten
* suboptimale Effizienz
* aber: kostnix und man kann unter die Haube schauen.
* ideal für Open-Source-Projekte :D
===== Setup at CCRMA/LAC'12 =====
{{ :wiki:dvmctrl:lacstreaming2.jpg?800 }}
http://lac.linuxaudio.org/2012/video.php?id=27
===== Ziele =====
* Live Aufnahme von Konferezen oder Konzerten
* Video Mixer - mehrere Quellen
* Leicht bedienbar
* free / open-source Lösung
* erweiterbar - customizations
===== Übersicht (1/2) =====
The system comprises two main applications (yellow in above diagram):
* ''dvswitch'' does the main work or mixing video
* ''dvmctrl'' - controls dvswitch