source-client_darkice

 

4.3 Übertragungslösung bei Proton

4.3.1 Der Source-Client von Proton, 'darkice'

Bei Proton ist der Live-Feed lediglich ein Software-Modul. Die Anforderungen dafür sind:

  • Kompatibilität mit der Software 'jackd' Audio-Server; denn das Eingangssignal kann darüber abgegriffen werden

  • Zulieferung zum Streaming-Server 'icecast2' implementiert/ eingebaut. (Das ist der verwendete Streaming-Server, der im nächsten Kapitel genauer behandelt wird.)

Damit war die Auswahl sehr beschränkt, so dass die Wahl auf die gängige, leicht verfügbare Open-Source-Komponente fiel, die auch in den Debian-Paketquellen bereit liegt: 'darkice'.

Wie bei vielen Linux-Programmen üblich, gibt es bei 'darkice' eine Konfigurationsdatei, in der mit Texteinträgen Parameter gesetzt werden können. Diese wird beim Starten von 'darkice' in der Kommando-Zeile mit angegeben. Beim Hochstarten wird die hinterlegte Konfiguration angewandt. (Die verwendete Datei ist in der Anlage 'darkice.cfg; Konfigurationsdatei für Live-Feed SW 'Darkice'' zu finden.)

Bei Proton werden dem Server 3 Streams zugeliefert, die in der Konfigurationsdatei beschrieben sind:

    1. der Stream für die UKW-Sender

    2. ein Ogg-Stream mit einer guten Qualität für die Proton-Online-Hörer und

    3. ein MP3-Stream mit nicht der besten Qualität

    Der MP3-Stream ist für Hörer gedacht, die Probleme haben, den Ogg-Stream abzuspielen, weil ihr Endgerät bzw. die Abspiel-Software Ogg-Vorbis-Streams nicht unterstützt (wie z.B. das 'Terratec NOXON iRadio 460+'1 oder der Apple-eigene Audio-player iTunes2).

    Alle diese Zuliefer-Streams bleiben im Streaming-Rechner und werden an den dort eingerichteten Streaming-Server weiter gereicht. „Um den Rechner mit sich selbst kommunizieren zu lassen, wird ein virtuelles Interface, also eine Schnittstelle, die sich wie eine virtuelle Netzwerkkarte verhält, erstellt3 - bzw. ist das standardmäßig eingerichtet und muss nur noch adressiert werden. Diese Schnittstelle wird auch 'loopback-device' genannt. Die 'loopback-device'-Adresse ist 127.0.0.1 oder 'localhost'4; was somit auch die Zieladresse für den Live-Feed ist.

    [icecast2-0]
    # fuern internen Server - FETTER VERSORGUNSSTREAM
    format = vorbis
    bitrateMode = vbr # constant bit rate
    quality = 0.6
    maxBitrate = 206 # geht nur fuer ogg
    server = localhost 

    Beispiel aus der verwendeten 'darkice.cfg; Konfigurationsdatei für Live-Feed SW 'Darkice' ' (die vollständig in den Anlagen einzusehen ist; siehe unten ... :-)

     

    Anlage 8: darkice.cfg; Konfigurationsdatei für Live-Feed SW 'Darkice'

    # Das ist die verwendete Datei von 'Proton – das freie Radio' für die
    # Konfiguration von darkice;
    # Nicht alle Kommentare sind aktuell und zeitgemäß! ;-)
    
    # sample DarkIce configuration file, edit for your needs before using
    # see the darkice.cfg man page for details
    
    # this section describes general aspects of the live streaming session
    [general]
    duration = 0 # duration of encoding, in seconds. 0 means forever
    bufferSecs = 10 # Buffer-Speicher in Sec, von Soundkarte bis zum
    # Encoder
    reconnect = yes # soll sich wieder verbinden; ist aber eigentlich
    # eh default
    realtime = yes # Use POSIX realtime scheduling, "yes" or "no".
    # (optional parameter, defaults to "yes")
    
    # this section describes the audio input that will be streamed
    [input]
    device = jack # jack_auto to automatically make Jack connect
    # to the first source.
    sampleRate = 44100 # sample rate in Hz. try 11025, 22050 or 44100
    bitsPerSample = 16 # bits per sample. try 16
    channel = 2 # channels. 1 = mono, 2 = stereo
    jackClientName = StreamerDarkice
    
    # this section describes a streaming connection to an IceCast2 server
    # there may be up to 8 of these sections, named [icecast2-0] ... [icecast2-7]
    # these can be mixed with [icecast-x] and [shoutcast-x] sections
    [icecast2-0]
    # fuern internen Server - FETTER VERSORGUNSSTREAM
    format = vorbis
    bitrateMode = vbr # constant bit rate
    quality = 0.6
    maxBitrate = 206 # geht nur fuer ogg
    server = localhost # IP und Port
    port = 7998 # port of the IceCast2 server, usually 8000
    password = … # source password to the IceCast2 server
    mountPoint = fett.ogg # mount point of this stream on the IceCast2
    
    [icecast2-1]
    # fuer med-user
    format = mp3 # format of the stream: mp3
    bitrateMode = cbr # constant bit rate
    bitrate = 96 # bitrate of the stream sent to the server; 
    # GEAENDERT am 17.Maerz2014 von 64 (gespeichert 14Aug2012) auf 96
    server = localhost # IP und Port
    port = 7998 # port of the IceCast2 server, usually 8000
    password = … # source password to the IceCast2 server
    mountPoint = proton # mount point of this stream on the IceCast2
    # server
    # optional values fuer diesen Stream
    sampleRate = 44100 # fuer andere Werte als Input
    channel = 2 # fuer andere Werte als Input
    lowpass = 17500 # lame encoder filter settings, mit 0
    # defaults used
    # highpass = 400 # sinnlos, weil erst f ueber 500 Hz akivierbar
    name = Proton - das freie Radio # name of the stream
    description = oeffentlicher Stream von Proton - das freie Radio 
    # description of the stream
    url = http://www.radioproton.at # URL related to the stream
    genre = freies Radio | community radio # genre of the stream
    public = yes # advertise this stream?
    
    [icecast2-2]
    # fuer den med-user.net
    format = vorbis
    bitrateMode = vbr # constant bit rate
    quality = 0.3 # 86kbps =0.4, 91kbps=0.45, 83kbps=0.35, 0.3=80kbps, 0.2=70kbps
    maxBitrate = 160 # geht nur fuer ogg
    server = localhost # IP und Port
    port = 7998 # port of the IceCast2 server, usually 8000
    password = … # source password to the IceCast2 server
    mountPoint = protonquality.ogg # mount point of this stream on the IceCast2 
    # server
    # optional values fuer diesen Stream
    channel = 2 # geht nur fuer mp3s; fuer andere Werte als # Input
    name = Proton - das freie Radio # name of the stream
    description = Qualitaets-Stream von Proton - das freie Radio 
    # description of the stream
    url = http://www.radioproton.at # URL related to the stream
    genre = freies Radio | community radio # genre of the stream
    public = yes # advertise this stream?

     

    2 Vgl. https://xiph.org/quicktime/faq.html#faq_itunes_stream „Does XiphQT allow one to listen to ogg network streams in iTunes?“ , 2015-02-16

    3 http://www.informationsarchiv.net/articles/1117/ „Bedeutung der IP-Adresse 127.0.0.1“, 2015-02-16

    4 Vgl. http://www.informationsarchiv.net/articles/1117/ „Bedeutung der IP-Adresse 127.0.0.1“, 2015-02-16

    Add new comment