Come si configura un server Icecast per la trasmissione audio nella mia rete?


63

Trasmettere l'output della scheda audio come flusso radio Internet è un modo affidabile per trasmettere l'audio in una rete. Questo può essere usato per esempio per trasmettere l'audio in una LAN wireless a un altro computer o qualsiasi altro dispositivo in grado di riprodurre flussi di radio Internet.

Tuttavia, non ho trovato una guida passo-passo semplice su come configurarlo.

Risposte:


75

Trasmetti l'audio con Icecast2


1. Installa Icecast2 Installa icecast2


2. Modifica la configurazione Icecast2

Apri il file /etc/icecast2/icecast.xmlcome root in un editor. Per motivi di sicurezza è necessario impostare le password nella <authentication>sezione:

<admin-user>admin</admin-user>
<admin-password>hackme</admin-password> 

Se è stato modificato <source-password>o <relay-password>è necessario farlo anche sul lato sorgente o relè. Ciò significa che lascialo predefinito o modificalo anche nel file ices2.xml (vedi sotto). Lo stesso dovrà essere fatto nei file di configurazione di Ices o Darkice.

Devi anche definire il nome host da cui è possibile raggiungere il tuo stream:

<hostname>localhost</hostname>

Lascialo come localhost (non è necessario fornire un IP risolto lì) quando desideri solo eseguire lo streaming nella tua rete locale. La porta predefinita da ascoltare è 8000. Modificarla solo quando necessario.


3. Modifica impostazioni predefinite

Apri il /etc/default/icecast2file come root in un editor. L'ultima riga deve essere cambiata in

ENABLE=true

Questo è tutto per Icecast2. Ovviamente ci sono molte altre impostazioni con cui puoi giocare. Nei file di configurazione ci sono note esplicative sui parametri.

4. Avvia / Ferma Icecast

Il server viene avviato e arrestato dai seguenti comandi:

/etc/init.d/icecast2 start
/etc/init.d/icecast2 stop

Durante l'esecuzione del server Icecast può essere amministrato da qualsiasi browser http://localhost:8000/admin/dopo aver immesso le credenziali di amministratore definite nel passaggio 1. Ulteriore documentazione è disponibile su Icecast.org .

Stream2ip è un frontend grafico per avviare e arrestare rapidamente i flussi in cui è già stata eseguita una configurazione di base per Ices2, Ices o Darkice.


Ices2 Installa ghiacci2 per lo streaming audio OGG Vorbis da una scheda audio locale

Per impostare pulseaudio per abilitare la registrazione dalla scheda audio, vedere la nota per Darkice di seguito.

Crea directory per Ices2

mkdir /var/log/ices   # in case you need logfiles.  
mkdir /etc/ices2      # for putting ices stuff in.  

Modifica la configurazione di Ices2 .xml

Ices2 verrà eseguito utilizzando un file .xml per le impostazioni. È possibile trovare esempi completi di configurazioni /usr/share/doc/ices2/examples/. Questi file devono essere modificati per soddisfare le tue esigenze e possono essere copiati ovunque, meglio nella tua home directory. A seconda del file di configurazione, Ices2 utilizza una playlist in formato Ogg Vorbis ( ices-playlist.xml) o l'output della scheda audio ( ices-alsa.xml) come sorgente di streaming per Icecast2.

Nella sezione <input>potrebbe essere necessario sostituire il dispositivo se il sistema audio è stato impostato su PulseAudio. Per fare ciò, modifica la riga corrispondente in:

<param name="device">pulse</param>

Il nome del flusso per il client ricevente è definito nella sezione seguente.

<mount>/example1.ogg</mount>

Inizia lo streaming

Gli stream dalla tua scheda audio verranno avviati eseguendo prima il server Icecast2, quindi Ices2 utilizzando i seguenti comandi:

/etc/init.d/icecast2 start
ices2 /home/user/somewhere/ices-pulse.xml # or any other name from .xml file

Setup Receiver

Sul lato ricevitore la tua "stazione" radio si sintonizza: <serverIP>:8000/example1.oggdov'è <serverIP>l'IP del tuo server di streaming seguito dalla porta che hai definito nel file icecast.xml (predefinito 8000).

Termina lo streaming

Gli stream vengono terminati uccidendo Ices2 e / o interrompendo l'esecuzione del server Icecast2:

killall ices2
/etc/init.d/icecast2 stop

Ghiaccio per la trasmissione di playlist mp3

La trasmissione di una playlist contenente file mp3 non può essere eseguita con Ices2. Dobbiamo installare IceS , che dobbiamo installare dal sorgente .

Dopo aver impostato il file di configurazione con l'indirizzo del server, la password e le proprietà di streaming (si troverà l'esempio ben documentato in /usr/share/doc/ices/examples), possiamo eseguire lo streaming di file audio mp3 dalle playlist (ad es. In formato .m3u) su un server Icecast2:

/etc/init.d/icecast2 start
ices -c <path_to_config_file> -F <path_to_playlist>

Per ulteriori opzioni leggi la documentazione nella pagina man abbastanza elaborata da man ices.


Darkice Installa Darkice per lo streaming live

Possiamo trasmettere in streaming l'output della scheda audio locale come OGG Vorbis o come flusso mp3 utilizzando Darkice . Per abilitare lo streaming della scheda audio locale, potrebbe essere necessario definire prima il dispositivo di registrazione per Darkice in pulseaudio. Questo può essere fatto con pavucontrol Installa pavucontrol . Nella registrazione scheda scegliere Monitor of <your soundcard>per il "ALSA plug-in [darkice]" .

Il file di configurazione (esempio ben documentato fornito in /usr/share/doc/darkice/examples) deve essere adattato al server Icecast e all'ambiente sonoro locale:

[general]
duration        = 0      # duration in s, 0 forever
bufferSecs      = 1      # buffer, in seconds
reconnect       = yes    # reconnect if disconnected

[input]
device          = default # or `pulse' for Pulseaudio
sampleRate      = 44100   # sample rate 11025, 22050 or 44100
bitsPerSample   = 16      # bits
channel         = 2       # 2 = stereo

[icecast2-0]
bitrateMode     = vbr       # variable bit rate (`cbr' constant, `abr' average)
quality         = 1.0       # 1.0 is best quality
format          = mp3       # format. Choose `vorbis' for OGG Vorbis
bitrate         = 256       # bitrate
server          = localhost # or IP
port            = 8000      # port for IceCast2 access
password        = hackme    # source password to the IceCast2 server
mountPoint      = mystream.mp3  # mount point on the IceCast2 server .mp3 or .ogg
name            = mystream

Dopo aver salvato questa configurazione (ad es., In ~/music/darkice.cfg) eseguiamo prima il server Icecast e siamo quindi in grado di trasmettere l'output pulseaudio dalla scheda audio locale invocando:

/etc/init.d/icecast2 start
darkice -c ~/music/darkice.cfg

Sul ricevitore ci sintonizziamo http://<localhost>:8000/mystream.mp3per l'ascolto. <localhost>è l'IP del server Icecast.


3
Per quanto riguarda la parte "Lascialo come localhost quando desideri eseguire lo streaming solo nella tua rete locale", non è necessario che questo sia un IP o un'interfaccia raggiungibile dalla rete per consentire ad altri utenti deviati di connettersi?
Oli

l'utente admin e la password admin sono correlati all'utente / password della macchina?
Charbel,

1
@Charbel: no, non sono correlati. Scegli la password che ti piace. È necessario, ad esempio, per accedere all'interfaccia web di amministrazione di icecast ( localhost: 8000 / admin ).
Takkat,

Questa è un'ottima risposta, grazie. In moltissimi tutorial, vedo icecast e mpd menzionati insieme, che lavorano insieme. Non capisco la relazione tra icecast e mpd - saresti in grado di chiarire? Quale ruolo ricopre ciascuno?
CoolUserName,

1
Nota che le password di Icecast2 sono memorizzate (e utilizzate in Darkice) come testo in chiaro. Non riutilizzare le tue password molto segrete qui.
elomage
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.