===== 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