Anleitungen/Radio Futro

  • Search
  • Home
  • All
  • Files
  • New
  • Rename
  • Edit
  • History
  • Latest Changes

Navigation

  1. Home
  2. Kalender
    1. 1043nd LTE uplink
    2. Akkubetrieb TP Link WR841n
    3. Antennenbuchsen
    4. Aufkleber bestellen
    5. Best Practices
    6. Blogeintrag verfassen
    7. Checkliste Ausseneinsatz
    8. Firmware Release anlegen
    9. Firmware herausbringen
    10. Firmware signieren
    11. Flyer bestellen
    12. Fritzbox Gastzugang
    13. Gatemon mit Raspberry Pi installieren
    14. Kartierung der Routerfeldstaerke im Aussenbereich
    15. Knotendurchsatz mit iperf3 Messen
    16. Mitmachen
    17. Netzerweiterung Richtfunk
    18. Node Statusseite
    19. Offloader Futro Image
    20. Offloader Futro S900
    21. Offloader Futro
    22. Offloader Ubiquiti ER X
    23. Offloader
    24. Outdoorboxen
    25. Poster A3 bestellen
    26. ProviderSteering
    27. Radio Futro
    28. Raspberry Hacks
    29. Raspi mit Batman ins Mesh
    30. SIP im ffhb nutzen
    31. SSH Node Verwaltung
    32. Selbstbauantennen
    33. ServiceFastd
    34. Solar Node
    35. Tipps und Tricks in Linux
    36. Unbrick
    37. VPN Setup
    38. WAN auf allen LAN Ports
    39. WinSCP Sitzung Exportieren
    40. X86 Sysupgrade fix and recover
    41. X86 VM VDMK Image
    42. ZNC IRC Bouncer
      1. Debugging
      2. FAQ
      1. Firmware Mirror
      2. Firmware sysupgrade
      3. Flashen
      4. Home
      5. Testen
      1. Befehlsuebersicht Willie Original
      2. HowToStatusBot
      3. Pruefen Voraussetzung fuer Willie
    1. Buildserver
    2. DNS
    3. Download Server
    4. Freifunkmanager
    5. Home
    6. Ticketsystem
    1. Freifunk erklaert
    2. Richtfunk
    3. UBNT M2 Loco Flashen wenn signierte AirOS Firmware
    1. 2015_06 Freifunk fur Findorff
    2. Referenzen
    1. 25 Computer Boerse Bremen
    2. 36C3
      1. Allgemein
      2. Finanzierungen
      3. Inventur
      4. Material
      5. Netz
      6. Netzwerk und LeistungsTests
      7. Portalseite und Services
      8. Programmhefttext
      9. Promotion
      10. Termine
        1. Alles
        2. Ideen zur Breminale
        3. Material
        4. NocPad
        5. OrgaPad
        6. Termine
        7. ToDo_Transport
        1. Alles
        1. Alles
        1. Freifunk Bremen auf der Breminale 2019
        1. 2015_04_22 Treffen mit Sternkultur
        2. 2015_05_25
        3. 2015_06_01
        4. 2015_06_08 Personal Orga
        5. 2015_06_15 viertes Breminale Treffen
        6. 2015_06_22 konkrete Netzplanung
        7. 2015_06_29 Unterstuetzung
        8. 2015_08_17 Breminale Nachtreffen
      1. Allgemein
      2. Toern 2016
    1. Changelog
    2. Funktionen
    3. Varianten
    1. Ansprechpartner
    2. Datenschutz
    3. Kosten
    4. Netzwerk
    5. Oeffentlichtkeitsarbeit
    6. Server
    1. Flyer Redesign
    2. Projekte
      1. Dokumentation
      2. Hardware
    1. Empfehlungen
    2. Richtwirkung von Sektorantennen
    3. Routerabholstandorte
    1. 00_Treffen
    2. 2013_12_20
    3. 2014_01_10
    4. 2014_02_10
    5. 2014_03_14
    6. 2014_04_18
    7. 2014_05_16
    8. 2014_06_20
    9. 2014_07_18
    10. 2014_08_15
    11. 2014_09_19
    12. 2014_10_17
    13. 2014_11_21
    14. 2014_12_19
    15. 2015_01_16
    16. 2015_02_20
    17. 2015_03_20
    18. 2015_04_17
    19. 2015_05_15
    20. 2015_06_05
    21. 2015_06_19
    22. 2015_07_03
    23. 2015_08_07
    24. 2015_09_04
    25. 2015_09_17
    26. 2015_10_02
    27. 2015_10_15
    28. 2015_11_06
    29. 2015_11_19
    30. 2015_12_04
    31. 2015_12_17
    32. 2016_01_08
    33. 2016_01_22
    34. 2016_02_05
    35. 2016_02_19
    36. 2016_03_04
    37. 2016_03_18
    38. 2016_04_01
    39. 2016_04_15
    40. 2016_05_06
    41. 2016_05_20
    42. 2016_06_03
    43. 2016_06_17
    44. 2016_07_01
    45. 2016_07_15
    46. 2016_07_22
    47. 2016_08_05
    48. 2016_08_19
    49. 2016_09_02
    50. 2016_09_09 Arbeitstreffen Website
    51. 2016_09_16
    52. 2016_09_23 Vereinsgruendungstreffen
    53. 2016_10_07
    54. 2016_10_21
    55. 2016_11_04
    56. 2016_11_18
    57. 2016_12_02
    58. 2016_12_16
    59. 2017_01_06
    60. 2017_01_20
    61. 2017_01_24 backbone
    62. 2017_02_03
    63. 2017_02_17
    64. 2017_03_03
    65. 2017_03_17
    66. 2017_04_07
    67. 2017_04_21
    68. 2017_05_05
    69. 2017_05_14 Breminale
    70. 2017_05_19
    71. 2017_05_30 Breminale
    72. 2017_06_02
    73. 2017_06_11 Breminale
    74. 2017_06_16
    75. 2017_06_25 Breminale
    76. 2017_07_21
    77. 2017_08_04
    78. 2017_08_18
    79. 2017_09_01
    80. 2017_09_15
    81. 2017_10_06
    82. 2017_10_20
    83. 2017_11_03
    84. 2017_11_17
    85. 2017_12_01
    86. 2017_12_15
    87. 2018_01_05
    88. 2018_01_19
    89. 2018_02_02
    90. 2018_02_16
    91. 2018_03_02
    92. 2018_03_16
    93. 2018_04_06
    94. 2018_04_20
    95. 2018_05_04
    96. 2018_05_18
    97. 2018_06_01
    98. 2018_06_15
    99. 2018_06_29 Breminale
    100. 2018_07_06
    101. 2018_07_20
    102. 2018_08_03
    103. 2018_08_17
    104. 2018_09_07
    105. 2018_09_21
    106. 2018_10_05
    107. 2018_10_19
    108. 2018_11_02
    109. 2018_11_16
    110. 2018_12_07
    111. 2018_12_21
    112. 2019_01_04
    113. 2019_01_18
    114. 2019_02_01
    115. 2019_02_15
    116. 2019_03_01
    117. 2019_03_15
    118. 2019_04_05
    119. 2019_04_19
    120. 2019_05_03
    121. 2019_05_17
    122. 2019_06_07
    123. 2019_06_21
    124. 2019_07_19
    125. 2019_08_02
    126. 2019_08_16
    127. 2019_09_06
    128. 2019_09_20
    129. 2019_10_04
    130. 2019_10_18
    131. 2019_11_01
    132. 2019_11_15
    133. 2019_11_18
    134. 2019_12_06
    135. 2019_12_20
    1. Dokumentation
    2. Themensammlung

Freifunkradio: Streaming-Server mit Icecast und Ices

Um einen eigenen Internet-Radiosender zu bauen, brauchen wir ca. 2Mb Speicherplatz auf unserem Router, einen USB-Stick für die Medien und etwas Leistungsreserve. Wenn wir VPN-Mesh machen (Normalfall) steht uns dafür kaum Leistung zur Verfügung. In diesem Fall könenn wir einen weiteren Router ohne Verschlüsseung per Kabel meshen oder einen Offloader verwenden. Der Thin Client Fujitsu-Siemens Futro 550 benötigt ca. 1% seiner Leistung für den VPN Tunnel, also genug Reserve zum Spielen.

Die folgende Anleitung ist nicht komplett, es fehlt IP V4, DNS Auflösung, DDNS Unterstützung. Zum Auszuprobieren reicht es aber aus. Pro Audiostream werden 20% Leistung beim 1Ghz Offloader Fujitsu-Siemens Futro verbraucht. Der Abruf eines Streams erfolgt mit der Ipv6 Adresse: http://[2a06:8782:ffbb:usw]:8000/mountpoint

Inhalt:

1.) Allgemeines

2.) Voraussetzungen

3.) Installation Icecast & Ices

4.) Konfiguration Icecast & Ices

5.) FAQ

6.) Relay-Server


1.) Allgemeines

Ihr wolltet schon immer mal selbst ein WebRadio betreiben oder nur mal über euer WLAN die Musik nach draussen zur Gartenparty streamen? Dann solltet ihr euch dieses HowTo genauer ansehen und bei Erfolg hier die fehlerhaften Angaben Korrigieren. Hier nun ein kleines HowTo um auf OpenWRT mit Icecast und Ices eine Radiostation aufzubauen.

Doch wir brauchen nicht nur einen Server (Icecast), der unsere Musik im Netz verbreitet sondern auch noch ein Programm, welches die Musik z.B. an den Server sendet. Diese Funktion übernimmt Ices. Der Server sendet nur Daten, wenn sich ein Client verbunden hat. Die Verdinung zwischen Streamclient und Streamserver erfolgt über virtuelle Mountpoints, die wir definieren müssen.

Ich werde hierfür ices vorstellen, da es das vielseitigste Tool ist. Ab OpenWRT v2016 will sich Ices nicht mehr direkt installiert lassen, da wird dann der Schalter --force-depends aktiv, hat bei funktioniert.

Mit Icecast wird nun eine erste Konfiguration durchgeführt, die nur die Grundvorraussetzungen erfüllt. Für weitere Informationen bitte die offizielle Doku @ http://www.icecast.org/docs.php oder http://people.xiph.org/~epirat/Icecast/Docs/ aufsuchen.

2.) Voraussetzungen:

  • libogg (www.vorbis.com)
  • libvorbis (www.vorbis.com)
  • libxml2 (http://www.xmlsoft.org)
  • libshout 2 (http://www.icecast.org/download.php)
  • libperl (http://www.perl.org)

3.) Installation

  • icecast (http://www.icecast.org/download.php)
  • ices (http://www.icecast.org/ices.php)
  • Doku (http://people.xiph.org/~epirat/Icecast/Docs/)
  • Doku (http://icecast.org/docs/) Download (http://icecast.org/download/)
  • Doku (https://wiki.ubuntuusers.de/Icecast2/)

Beide Pakete lassen sich im Normalfall mit dem gängigen Linux Pakettools installieren. Bei OpenWRT mit opkg install. Damit auch alle lib´s installiert werden, geben wir dem Install ein --force-depends mit.

opkg install icecast --force-depends

Installing icecast (2.4.2-1) to root...
Downloading http://downloads.openwrt.org/chaos_calmer/15.05/x86/generic/packages/packages/icecast_2.4.2-1_x86.ipk.
Installing libcurl (7.40.0-3.1) to root...
Downloading http://downloads.openwrt.org/chaos_calmer/15.05/x86/generic/packages/base/libcurl_7.40.0-3.1_x86.ipk.
Installing libpolarssl (1.3.14-1) to root...
Downloading http://downloads.openwrt.org/chaos_calmer/15.05/x86/generic/packages/base/libpolarssl_1.3.14-1_x86.ipk.
Installing libxslt (1.1.28-2) to root...
Downloading http://downloads.openwrt.org/chaos_calmer/15.05/x86/generic/packages/packages/libxslt_1.1.28-2_x86.ipk.
Installing libopenssl (1.0.2g-1) to root...
Downloading http://downloads.openwrt.org/chaos_calmer/15.05/x86/generic/packages/base/libopenssl_1.0.2g-1_x86.ipk.
Configuring libpolarssl.
Configuring libcurl.
Configuring libxslt.
Configuring libopenssl.
Configuring icecast.


opkg install ices
Installing ices (2.0.2-1) to root...
Downloading http://downloads.openwrt.org/chaos_calmer/15.05/x86/generic/packages/packages/ices_2.0.2-1_x86.ipk.
Multiple packages (kmod-input-core and kmod-input-core) providing same name marked HOLD or PREFER. Using latest.
Collected errors:
 * satisfy_dependencies_for: Cannot satisfy the following dependencies for ices:
 *      kernel (= 3.18.20-1-8549f8163c15d79b053f26aa0d52e96f) *
 * opkg_install_cmd: Cannot install package ices.


opkg install ices --force-depends
 
Installing ices (2.0.2-1) to root...
Downloading http://downloads.openwrt.org/chaos_calmer/15.05/x86/generic/packages/packages/ices_2.0.2-1_x86.ipk.
Multiple packages (kmod-input-core and kmod-input-core) providing same name marked HOLD or PREFER. Using latest.
Installing libshout (2.3.1-1) to root...
Downloading http://downloads.openwrt.org/chaos_calmer/15.05/x86/generic/packages/packages/libshout_2.3.1-1_x86.ipk.
Installing libspeex (1.2rc1-1) to root...
Downloading http://downloads.openwrt.org/chaos_calmer/15.05/x86/generic/packages/packages/libspeex_1.2rc1-1_x86.ipk.
Installing libtheora (1.1.1-1) to root...
Downloading http://downloads.openwrt.org/chaos_calmer/15.05/x86/generic/packages/packages/libtheora_1.1.1-1_x86.ipk.
Installing libvorbisidec (1.0.3-20150104-1) to root...
Downloading http://downloads.openwrt.org/chaos_calmer/15.05/x86/generic/packages/packages/libvorbisidec_1.0.3-20150104-1_x86.ipk.
Installing libxml2 (2.9.2-3) to root...
Downloading http://downloads.openwrt.org/chaos_calmer/15.05/x86/generic/packages/packages/libxml2_2.9.2-3_x86.ipk.
Installing alsa-lib (1.0.28-1) to root...
Downloading http://downloads.openwrt.org/chaos_calmer/15.05/x86/generic/packages/packages/alsa-lib_1.0.28-1_x86.ipk.
Installing kmod-sound-core (3.18.20-1) to root...
Downloading http://downloads.openwrt.org/chaos_calmer/15.05/x86/generic/packages/base/kmod-sound-core_3.18.20-1_x86.ipk.
Configuring libtheora.
Configuring kmod-sound-core.
Configuring alsa-lib.
Configuring libvorbisidec.
Configuring libspeex.
Configuring libxml2.
Configuring libshout.
Configuring ices.
Collected errors:
 * satisfy_dependencies_for: Cannot satisfy the following dependencies for ices:
 *      kernel (= 3.18.20-1-8549f8163c15d79b053f26aa0d52e96f) *
  
 
opkg install ices --force-depends

Package ices (2.0.2-1) installed in root is up to date.

4.) Konfiguration Icecast

Die im folgenden aufgeführten Konfigurationsdateien sind dazu gedacht, komplett übernommen und lediglich angepasst zu werden. Selbsterversändlich könnt ihr auch die default-configs bearbeiten, jedoch stehen da recht viele, für unsere Zwecke unnötige, Dinge drin, die evtl. verwirren könnten.

Als erstes richten wir den server ein. Dazu editieren wir /etc/icecast.xml, wie folgt:


<icecast>
    <limits> <!--ausser clients kann man in diesem Abschnitt die default-werte lassen-->
        <clients>30</clients> <!--max Zuhörer -->
        <sources>10</sources>
        <threadpool>5</threadpool>
        <queue-size>102400</queue-size>
        <client-timeout>30</client-timeout>
        <header-timeout>15</header-timeout>
        <source-timeout>10</source-timeout>
    </limits>

    <authentication>
        <!-- Wichtig, Der Benutzername um zum server zu connecten ist 'source' der ist fix-->
        <!-- Das Passwort um sich beim server zum streamen einzuloggen, das ist das PW für source -->
        <source-password>dasPasswort</source-password>
        <!-- Solltet ihr Relay-Server zu euch verbinden lassen wollen, hier das pw dafür -->
        <relay-password>RelayPass</relay-password>
        <!-- Admin-Zugangsdaten für Online-Administration -->
        <admin-user>admin</admin-user>
        <admin-password>adminPasswort</admin-password>
    </authentication>

    <!-- Ip oder hostname des Servers -->
    <hostname>localhost</hostname>
    <!-- Port auf den der Server hören soll -->
    <listen-socket>
        <port>8000</port>
    </listen-socket>
   
    <paths><!-- Installationsverzeichnis von icecast -->
        <basedir>/usr/share/icecast</basedir>
        <!--verschiedene Verzeichnisangaben, das Logdir wird später deaktiviert. -->
        <logdir>/var/log/icecast</logdir>
        <webroot>/usr/share/icecast/web</webroot>
        <adminroot>/usr/share/icecast/admin</adminroot>
     </paths>
    
    <logging> <-- Diese Dateien bereiten Probleme, wird später deaktiviert -->
        <accesslog>access.log</accesslog>
        <errorlog>error.log</errorlog>
      	<loglevel>1</loglevel>  <!-- 4 Debug, 3 Info, 2 Warn, 1 Error -->
    </logging>

    <security>
        <chroot>0</chroot>
        <!-- wichtig falls man den server beim booten starten lässt.
             Hier kann man festlegen als welcher Benutzer der server laufen soll
             (muss auf dem System exisiteren) und das bereitet uns Probleme mit den Logdateien s.u.-->
        <changeowner>
            <user>ice</user>
            <group>ice</group>
        </changeowner>
    </security>
</icecast>

WICHTIG: Der User den ihr unter changeowner angegeben habt muss Schreibrechte auf das logdir haben! (chown ice /var/log/icecast && chgrp ice /var/log/icecast). Anm. Neue User können in die /ect/passwd eingefügt werden oder über useradd (Paket shadow-useradd -> opkg install shadow-useradd) angelegt werden.

So, das wäre geschafft. Nun können wir den Server mal testen (als root!):

icecast -b -c /etc/icecast.xml

Wenn ihr alles richtig gemacht habt, sollte lediglich ausgegeben werden, dass der Server nun unter einem anderen Benutzer als root läuft:

Changed groupid to 1001.
Changed userid to 1001.
Ob der Server läuft, sehen wir mit dem Befehl top, in der Prozessliste sollten wir dann icecast sehen.

4.) Konfiguration Ices

Das wäre geschafft. Das war ja gar nicht so schwer. Nun müssen wir unseren Server nur noch irgendwie mit Musik füttern und dazu benutzen wir nun Ices: Auch Ices benutzt eine xml-config-datei. Diese legen wir uns einfach frisch an, z.B. in /etc/ices-playlist.xml oder kopieren die Ices Beispieldateien. Für jeden Stream wird Ices mit einer eigenen Konfig gestartet.

Folgenden Inhalt sollte sie besitzen:


<?xml version="1.0"?>
<ices>
    <background>1</background> <!-- Soll ices im Hintergrund laufen? (1 falls ja) -->
    <logpath>/var/log/ices</logpath> <!-- wo soll hingelogged werden?-->
    <logfile>ices.log</logfile>
    <loglevel>1</loglevel> <!-- 1=error,2=warn,3=info,4=debug -->
    <consolelog>1</consolelog> <!--verbose-mode, alle meldungen werden auf der konsole ausgegebn. Hierbei wird nicht in obige Logdatei gelogged!!-->
    <stream>
        <metadata><!--Gebt eurem Radio einnen Namen etc...-->
            <name>Radio Freifunk</name>
            <genre>Pop</genre>
            <description>Freifunk Radio Community</description> 
        </metadata>
        <input> 
        <!--Aufnahme-Weiterleit-Modul-->
	    <module>playlist</module> 
			<param name="type">basic</param>
            <param name="file">/mnt/sda3/Musik/playlist.txt</param>
            <param name="random">0</param>
            <param name="restart-after-reread">0</param>
            <param name="once">0</param>
            <param name="metadata">1</param><!--Sollen Titeldaten der Songs mitgestreamt werden?-->
            <param name="metadatafilename">/mnt/sda3/Musik/trackinfo.txt</param><!--wenn ja, wo stehen die? --<
        </input>
        <instance>
            <hostname>localhost</hostname><!--wo laeuft der icecast-server?--> 
			<port>8000</port> <!--über welchen Port connecten?-->
            <password>dasPasswort</password> <!--Passwort?-->
            <mount>/radio.ogg</mount> <!--adresse des eigentlichen streams, mein virtueller Mountpoint -->
            <reconnectdelay>2</reconnectdelay>
            <reconnectattempts>5</reconnectattempts>
            <maxqueuelength>80</maxqueuelength>
			<downmix>1</downmix><!--aus stereo mach mono, oder weglassen-->
			<encode>  
                <nominal-bitrate>64000</nominal-bitrate> <!-- bps. e.g. 64000 for 64 kbps -->
                <samplerate>44100</samplerate>
                <channels>2</channels>
            </encode>    
        </instance>
    </stream>
</ices>

So, alles was zwischen den stream-tags steht, beschreibt einen Stream. Ihr könnt auch mehrere Streams definieren, z.B. einen in Stereo, einen mit 128Kbit usw. Diese benötigen dann halt einen anderen virtuellen mount-point, die in Icec & Icecast angegeben werden.

Wie ihr oben gesehen habt, wollen wir ja auch title und artist streamen und haben dazu eine Datei namens trackinfo.txt in der config angegeben. Um diese Datei mit Inhalt zu füllen verwendet ihr ein Musikbearbeitungsprogramm eurer Wahl. Das macht viel Arbeit, ich hab es einfach weggelassen. Evtl. mag es jemand hier Ergänzen.

Nun starten wir unseren Streamplayer ices. Für unterschiedliche Stream lege ich die Playlist und ices-playlist.xml in dem entsprechendem Medienverzeichnis ab.

ices /etc/ices-playlist.xml
Sollte alles glatt gegangen sein, sollten wir auf http://ip-desservers:8000/status.xsl nun sehen, dass ein stream läuft. Nun könnt ihr euch noch von einem Rechner zu eurem Server verbinden und schauen, ob auch wirklich korrekt gestreamt wird.
http://ip-desserver:8000/radio.ogg oder als ipv6 http://[2a06:8782:ffbb:1337:219:99ff:fe7a:7220]:8000/radio.ogg

Das Admin-Webinterface findet ihr unter:

http://ip-desservers:8000/admin/stats.xsl oder http://[ipv6]:8000/admin/stats.xsl

5.) FAQ:

  • Auf dem Webinterface wird kein Mountpoint oder Stream angezeigt.

    Ggf. gibt es Zugriffsprobleme mit den Log Dateien. Sie müssen vorhanden sein, sonst will der Player nicht. Eine Lösungsversuch wäre:

User Ice in /etc/passwd einfügen

ice:x:10:10:ice:/root:/bin/ash

und in /etc/group

ice:x:10:

mkdir -p /var/log/icecast
touch /var/log/icecast/error.log
touch /var/log/icecast/access.log
chmod 777 /var/log/icecast/error.log
chmod 777 /var/log/icecast/access.log

chown ice:ice /var/log/icecast/error.log
chown ice:ice /var/log/icecast/access.log

icecast -b -c /etc/icecast.xml

mkdir -p /var/log/ices
touch /var/log/ices/ices.log
chmod 777 /var/log/ices/ices.log

ices /mnt/sda3/Musik/ices-playlist.xml
  • Mein Musikverzeichnis ist weg. Noch kein Automount konfiguriert.
von Hand:
mount -t vfat /dev/sdb1 /mnt/usb
mount /dev/sda3 /mnt/sda3
  • Wie kann ich meine Medien automatisch einbinden lassen?

In der Datei /etc/config/fstab die zu mountenden devices hinzufügen. Beispiel:

config 'mount'
	option	target	'/mnt/sda3'
	option	uuid	'b0dcc595-86dd-4154-a749-45894b002a18' *Meine neue Partition auf der CF-Card*
	option 'device' '/dev/sda3'
	option 'options' 'rw,sync'
	option 'enabled_fsck' '0'
	option 'enabled' '1'

config 'mount'
	option	target	'/mnt/usb'
	option	uuid	'6633-6536' *Mein USB Stick*
	option 'device' '/dev/sdb1'
	option 'options' 'rw,sync'
	option 'enabled_fsck' '0'
	option 'enabled' '1'
  • Nützliche Befehle:
/etc/init.d/icecast start   # Icecast starten
/etc/init.d/icecast stop    # Icecast stoppen
/etc/init.d/icecast restart # Icecast neu starten
/etc/init.d/icecast reload  # Icecast - Konfigurationsdateien neu laden
  • Terminate Streaming Streams are terminated by killing Ices and/or stop running the Icecast server:
killall ices
/etc/init.d/icecast stop oder kill icecast
  • Mp3 wird nicht gespielt.

Icecast 2.4.2 streamt das freie ogg-vorbis Format. Also einfach von mp3 in ogg Wandeln. Oder unter OpenWRT.org suchen, ob es einen mp3 streamclient wie icegenerator gibt.

  • Werden auch Videos gestreamt?

Ja, in der Dokumentation http://people.xiph.org/~epirat/Icecast/Docs/ ist ein Beispiel enthalten. Wenn es funktioniert, bitte hier Ergänzen.

  • Soooo viele unterschiedliche Parameter, was bedeuten diese?

Mehr Beschreibung wie in der Dokumentation zu finden ist, gibt es leider nicht. Wie an den Parametern zu drehen ist, wissen wohl nur die Entwickler. Ausprobieren und spielen.

  • Streamen über SSL

Derzeit noch nicht getestet, soll aber prinzipiell möglich sein. siehe: (https://www.howtoforge.com/how-to-install-a-streaming-audio-server-with-icecast-2.3.3-on-centos-6.3-x86_64-linux)

6.) Relay-Server aufsetzen:

Was ist denn überhaupt ein Relay-Server? In gewisser Weise ist es vergleichbar mit einem FTP-Mirror oder dem Mirror einer WebSite. Ein Relay-Server verbreitet also genau die gleiche Streams wie sein Masterserver. Hierzu fragt er in regelmäßigen Abständen den Masterserver ab, welche Streams gehostet werden und übernimmt diese Streams dann. So muss man sich um Mount-Point-Konfiguration und encoding bei einem Relay-Server keine Gedanken machen. Die /etc/icecast.xml sieht nun folgendermassen aus:

<icecast>
    <limits><!--ausser clients kann man in diesem Abschnitt die default-werte lassen-->
        <clients>30</clients> <!--max Zuhörer -->
        <sources>10</sources>
        <threadpool>5</threadpool>
        <queue-size>102400</queue-size>
        <client-timeout>30</client-timeout>
        <header-timeout>15</header-timeout>
        <source-timeout>10</source-timeout>
    </limits>

    <authentication>
        <!-- Admin-Zugangsdaten für Online-Administration -->
        <admin-user>admin</admin-user>
        <admin-password>sdminPasswort</admin-password>
    </authentication>

    <!-- Ip oder hostname des Servers -->
    <hostname>localhost</hostname>

    <!-- HIERAUF KOMMT ES NUN AN -->
    <master-server>192.168.169.15</master-server>
    <master-server-port>8000</master-server-port>
    <master-update-interval>120</master-update-interval>
    <master-password>RelayPass</master-password>

    <!-- Port auf den der Server hören soll -->
    <listen-socket>
        <port>8000</port>
    </listen-socket> 
    <paths><!-- Installationsverzeichnis von icecast -->
        <basedir>/usr/share/icecast</basedir>
	<logdir>/var/log/icecast</logdir>
        <webroot>/usr/share/icecast/web</webroot>
        <adminroot>/usr/share/icecast/admin</adminroot>
     </paths>
    
    <logging>
        <accesslog>access.log</accesslog>
        <errorlog>error.log</errorlog>
      	<loglevel>1</loglevel> <!-- 4 Debug, 3 Info, 2 Warn, 1 Error -->
    </logging>

    <security>
        <chroot>0</chroot>
	 <changeowner>
            <user>ice</user>
            <group>ice</group>
	</changeowner>    
    </security>
</icecast>

Auch hier gilt wieder: Der User den ihr unter changeowner angegeben habt muss Schreibrechte auf das logdir haben! (chown ice /var/log/icecast && chgrp ice var/log/icecast). Oder aus der Konfig löschen

Zum Starten des Relay-Servers:

icecast -b -c /etc/icecast/icecast.xml
Nun sollte sich euer Server beim Masterserver als normaler client einloggen, die mountpoints übernehmen und streamen. Der Masterserver bekommt nichts davon mit, da dein Relay-Server wie ein normaler client anmeldet.

Viel Spass beim Radiohören

Dieses Werk ist lizenziert unter einer Creative Commons Namensnennung - Weitergabe unter gleichen Bedingungen 4.0 International Lizenz
Impressum

Last edited by Anonymous, 2016-09-25 20:20:08

Delete this Page