Icecast streaming server
Autor: Gavrilo Prodanović
Radio je dosta stara tehnologija a danas svako ima bar jedan prijemnik u kući. Radio, takođe, postoji i na internetu a na linuks sistemu postoji više načina da ga „napravite“. Jedan od tih načina je Icecast server.
Icecast je napravljen tako da je kao samostalan program potpuno beskoristan. Podrazumeva se da će Vam trebati klijent kao što je MPlayer ali će vam trebati i izvor sadržaja (source). Zahvaljujući takvoj modularnoj implementaciji, Icecast server dobija muziku ili neki drugi sadržaj iz izvora i to prosleđuje slušaocima, odnosno klijentima. Izvor i Icecast server ne moraju biti na istoj mašini a Icecast može da ima i po nekoliko izvora. Ali da ne dužimo previše, počećemo sa podešavanjem naše radio stanice.
Prvo ćemo podesiti Icecast. Na sistemima nalik na Debian instaliraćemo ga sa:
# apt-get install icecast2
Posle instalacija potrebno je da izmenimo podrazumevanu konfiguraciju. Prvo ćemo uključiti daemon tako što ćemo izmeniti poslednju liniju u /etc/default/icecast2.
# editor /etc/default/icecast2 ENABLE=TRUE
Posle toga ćemo izmeniti konfiguracionu datoteku icecast2 servera. Promenićemo default lozinke i time učiniti da budemo sigurniji.
# editor /etc/icecast2/icecast.xml
Icecast svoju konfiguraciju čuva u obliku xml datoteke. Ako nikada niste radili sa xml-om, nema potrebe za strahom jer se on shvata jednostavno, takoreći na prvi pogled. Prvih nekoliko linija govori o ograničenjima: koliko klijenata ili izvora može biti istovremeno povezano. To za sada nećemo dirati nego ćemo menjati liniju koja počinje <authentication> zaglavljem. Tu ćemo da izmenimo lozinke za source, relay i admin korisnike. Source korisnik koristiće, dalje u tekstu, program koji će biti izvor sadržaja. Relay korisnik nam u našem članku neće biti potreban ali svejedno, promenite lozinku. U admin korisnika spada administrator Icecast servera koji će biti u mogućnosti da upravlja njime preko web stranice. Sledeće linije je potrebno promeniti:
[code]
Skeptici mogu promeniti i <admin-user> ako će im to pomoći da se osećaju mirnije. Sačuvajte promene i vreme je da Icecast stavimo u funkciju:
# /etc/init.d/icecast2 restart
Ako ste sve dobro uradili, dobićete Icecast stranicu na adresi http://localhost:8000 u svome pregledaču. Izgleda prazno ali je to znak da ste sve dobro podesili.
Sledeće što je potrebno da podesite je neki izvor sadržaja. Postoji mnogo raznih izvora: izvor može da bude lista pesama ili capture sa Vaše zvučne kartice. Takođe postoji i više programa koji mogu da budu izvor a među njima su mpd i ices. Mi ćemo ovde da podesimo mpd kao izvor a o njemu je bilo reči u broju 4. Koraci za podešavanje mpd-a su sledeći:
# apt-get install mpd
# editor /etc/mpd.conf
Prvo ćemo izmeniti liniju „music_directory“ i staviti Vašu lokaciju do muzike:
music_directory "/home/Muzika"
Pronađite linije koje počinju sa
audio_output { type "alsa"
i dodajte komentar na sve linije do } (uključujući i ovaj znak). To smo uradili zato što ne želimo da mpd daje izlaz na zvučnike nego ćemo njegov izlaz usmeriti kao izvor za naš Icecast server. Pronađite linije koje počinju sa:
#audio_output { # type "shout"
Skinite komentar sa svih linija ali ostavite komentar na liniji „quality“. Moraćete promeniti liniju sa lozinkom:
password "lozinka2"
Host i port promenite ako se mpd nalazi na drugom računaru ili ako ste izmenili da Icecast sluša na drugom portu. Bitrate govori o kvalitetu streaming-a, ako imate slab protok na serveru, bitrate možete staviti na nižu vrednost – 64 na primer. Vaš sadržaj biće emitovan u mono formatu a ako želite stereo, onda promenite ovu liniju:
format "44100:16:2"
Linija koju ćemo detaljnije objasniti je mount. Pomoću mount point-a klijenti pristupaju Vašem stream-u (izvoru). Ako stavimo liniju mount “/muzika.ogg”, onda ćemo naš streaming slušati preko adrese http://localhost:8000/muzika.ogg. Na serveru se ne mogu pojaviti dva izvora sa istim mount point-om. Svaki izvor mora definisati svoj jedinstveni mount point. Mi ćemo mount da podesimo ovako:
mount "/live.ogg"
Takođe, možemo izabrati format datoteke preko encode linije. Možemo birati između mp3 ili ogg. Za sada ćemo ostaviti ogg ali ako Vi izaberete mp3, ne zaboravite da promenite ekstenziju za mountpoint u “/live.mp3” Linije koje možete slobodno promeniti po želji su: name, description i genre. Linije type, protocol, user i public mi ovde nećemo menjati. Liniju quality smo ostavili pod komentarom a pomoću nje zadajete kvalitet u rasponu od 0 do 10. Za ogg format veći broj ozačava veći kvalitet, dok je za mp3 obrnuto. Quality i bitrate ne mogu ići zajedno.
Sada je vreme da stavimo naš radio u funkciju. Pre svega trebaće nam neki klijent pomoću kojeg upravljamo mpd-om. Mi ćemo ovde koristiti mpc.
[code]# apt-get install mpc
# /etc/init.d/mpd restart
# mpc update –wait # Pomoću ove linije ažuriramo bazu sa novim pesmama
# mpc ls | mpd add # Da dodamo sve naše pesme u listu pesama
# mpc play # I na kraju da pustimo našu muziku.[/code]
I došlo je vreme da proverimo da li sve radi. Otvorimo ponovo Icecast stranicu http://localhost:8000 i videćemo da je sada ispunjena sadržajem. Ako želite da čujete muziku sa vašeg radija, otvorite link http://localhost:8000/live.ogg nekim audio-klijentom kao što je MPlayer ali možete koristiti i onaj koji je ugrađen u pregledač ako postoji. Ako čujete Vašu omiljenu pesmu, onda ste sve učinili dobro. Ali posao ne mora da bude gotov. Ako želite da Vaš radio bude dostupan Vašim prijateljima sa interneta, preusmerite port 8000 sa rutera na Vaš računar. Možete napraviti više izlaza u mpd.conf:: jedan sa visokim kvalitetom kada slušate iz lokalne mreže i jedan sa niskim kvalitetom kada slušate sa interneta. Primetio sam da se neki klijenti zaustave nakon što se pesma završi a onda se mora resetovati konekcija da bi počela druga pesma. Ovo se može rešiti tako što encode promenite na mp3. Ako koristite Debian 6, moraćete ručno da kompajlirate mpd da biste uključili podršku za mp3 ili da uzmete mpd paket iz testing repo-a.
Linkovi korisnih ilustracija sa interneta:
http://liveice.sourceforge.net/gfx/logical.png
http://liveice.sourceforge.net/gfx/networklayout.png