Strežnik za oddajanje vam omogoča prenos glasbe po mreži TCP. To je lahko internet ali vaša lokalna mreža (intranet).
Načelo povezovanja je zelo podobno kot pri spletnih strežnikih, glasba se prenaša, ko se odjemalec (predvajalnik MP3) poveže s strežnikom.
Nastavljanje oddajnega strežnika je dokaj enostavno. Najprej se bomo osredotočili na Icecast, nato pa še na Fluid.
Ko datoteko potegnemo na svoj računalnik in jo razpakiramo, si je koristno ogledati imenik /doc. Priročnik v formatu HTML je obsežen in zelo v pomoč.
Če ste si prenesli izvorno kodo, sledite navodilom za prevajanje na vašem sistemu.
Icecast ne bo deloval pravilno, dokler pravilno ne nastavite imena strežnika v konfiguracijski datoteki icecast.conf, ki se nahaja v imeniku /etc. Ime se mora natančno ujemati s tistim, ki pripada vašemu IP naslovu.
Če ob zagonu Icecasta zagledate naslednjo vrstico, ste nekaj naredili narobe:
-> [05/Jan/2000:17:21:04] WARNING: Resolving the server name [your.server.name] does not work!
Odprite datoteko icecast.conf, ki se nahaja v imeniku /etc, poiščite vrstico z vnosom za "server_name" in tja vnesite ime strežnika. Če niste prepričani, ga lahko izveste z ukazom hostname ali z ukazom cat /etc/hosts.
Ko ste naredili vse potrebne spremembe, boste morali ali skopirati datoteko conf v imenik bin ali pognati Icecast z možnostjo -c in določiti lokacijo, npr.
./icecast -c ../etc/icecast.conf
Če ste vse nastavili pravilno, bi morali videti nakaj podobnega sledečemu:
[dj@megajukebox bin]$ ./icecast -c ../etc/icecast.conf -d /home/dj/mp3/icecast/ Icecast Version 1.3.0 Starting... Icecast comes with NO WARRANTY, to the extent permitted by law. You may redistribute copies of Icecast under the terms of the GNU General Public License. For more information about these matters, see the file named COPYING. [05/Jan/2000:18:36:30] Icecast Version 1.3.0 Starting.. [05/Jan/2000:18:36:30] Using stdin as icecast operator console [05/Jan/2000:18:36:30] Tailing file to icecast operator console [05/Jan/2000:18:36:30] Server started... [05/Jan/2000:18:36:30] Listening on port 8000... [05/Jan/2000:18:36:30] Using [megajukebox] as servername... [05/Jan/2000:18:36:30] Max values: 1000 clients, 1000 clients per source, 10 sources, 5 admins -> [05/Jan/2000:18:36:30] [Bandwidth: 0.000000MB/s] [Sources: 0] [Clients: 0] [Admins: 1] [Uptime: 0 seconds]
Možnost -d nastavi imenik za datoteke LOG in predloge.
Spodaj je preveden seznam z opisom vseh možnosti z ukazne vrstice:
-c [filename] Razčleni kot konfiguracijsko datoteko. Prosimo upoštevajte, da vsak parameter z ukazne vrstice, ki ga podate, 'povozi' ustrezne nastavitve v datoteki. Upoštevajte tudi, da je icecast.conf v trenutnem imeniku že razčlenjen, ko podate to datoteko, tako da strežnik uporabi vse, kar v icecast.conf ni bilo 'povoženo'. -P [port] To je priključek za povezavo z odjemalci, virom in administratorjem. Privzeto je nastavljen na 8000. -m [max clients] Dovoli samo določeno število povezav odjemalcev. Ko bo to število doseženo, bodo vsi odjemalci zavrnjeni s sporočilom 'HTTP/1.0 504 Server Full' (HTTP/1.0 504 Strežnik je prezaseden). -p [encoder password] Določi geslo, ki ga mora kodirnik uporabiti, da lahko pošlje tok na strežnik. Upoštevajte, da če ste prevedli strežnik s podporo crypt(), mora biti ta argument zakodiran niz. -b Prestavi strežnik Icecast v ozadje (postane t.i. demon proces). Če želite sedaj uporabljati ukaze za administriranje, se morate povezati na strežnik kot administrator z uporabo kateregakoli odjemalca za telnet. -d [directory] Vse nadzorne (angl. log) datoteke, ki jih naredi Icecast, in vse predloge, ki jih uporablja Icecast, naj bodo relativne na ta imenik.
Tako, strežnik smo pognali, sedaj moramo še povezati vir datotek MP3 s strežnikom.
Izbirate lahko med dvema aplikacijama, ki dostavljata podatke o datotekah MP3 strežniku: Shout in LiveIce.
Shout (dobite ga skupaj z Icecastom) podaja Icecastu statičen predvajalni seznam datotek MP3 za oddajanje.
Seznam datotek MP3, ki jih želite oddajati, naredite na naslednji način:
find [imenik_MP3] -name *.mp3 -print > playlist
Najbolj enostavno boste zagnali Shout, če vnesete naslednje:
[dj@megajukebox bin]# ./shout megajukebox -P hackme -p playlist
Možnost -P določi geslo, ki je potrebno za dodajanje točk vpetja (angl. mount point) Icecastu. Trenutno je nastavljeno na hackme. Močno vam priporočamo, da ga spremenite, predno to stori kdo drug. Možnost -p določi lokacijo datoteke s predvajalnim seznamom. Sledi preveden seznam vseh možnosti z ukazne vrstice:
[dj@megajukebox bin]# ./shout Upraba: shout <naslov_strežnika> [možnosti] [[-b <bitna_stopnja] datoteka.mp3]... Možnosti: -B <directory> - Uporabi imenik za vse Shoutove datoteke. -C <file> - Uporabi datoteko file kot konfiguracijsko datoteko. -D <dj_file> - Poženi tole pred vsako skladbo (system()). -P <password> - Uporabi podano geslo. -S - Prikaži vse nastavitve in končaj. -V - V izpisu naj bo več informacij. -X <desc> - Uporabi podan opis. -a - Vklopi avtomatsko popravljanje bitne stopnje (prenosa). -b <bitrate> - Prični uporabljati podano bitno stopnjo -d - Aktiviraj dj. -e <port> - Poveži se na priključek na strežniku. -f - Izpusti datoteke, ki ne ustrezajo podani bitni stopnji. -g <genre> - Uporabi podano zvrst -h - Pokaže to besedilo (v angleščini). -i - Uporabi stara zaglavja icy. -k - Ne skrajšuj notranjega seznama za predvajanje (nadaljuj). -l - Neskončna zanka -m <mount> - Uporabi podano točko vpetja ('mount point') -n <name> - Uporabi podano ime. -o - Izklopi samodetekcijo bitne stopnje. -p <playlist> - Uporabi podano datoteko kot seznam za predvajanje. -r - Premešaj seznam za predvajanje (naključno predvajanje). -s - (Skrivnost) Ne pošiljaj meta podatkov imeniškemu strežniku (angl. directory server). -u <url> - Uporabi podan URL. -v - Pokaži različico. -x - Ne posodobi nakazane datoteke (prihrani procesorsko moč). -z - Deluj v ozadju (način demon). -t - Omogoči tok naslovov.
LiveIce lahko deluje v dveh načinih. Icecastu lahko poda seznam za predvajanje, lahko pa mu poda neposreden zvok iz zvočne kartice.
Ko odpakirate datoteke in preberete README, ki se nanaša prevajanje in postavljanje paketa, se prepričajte, da je Mpg123 nameščen in na voljo, ker ga LiveIce zahteva.
LiveIce lahko nastavite na dva načina: z urejanjem konfiguracijske datoteke s katerimkoli urejevalnikom (npr. VI ali Emacs) ali z uporabo na Tk temelječega orodja, kar je precej lepši način urejanja.
Najboljše mesto za opis vseh podrobnosti datoteke liveice.cfg lahko najdete na LiveIcovi domači strani, kjer je Scott razložil vse možnosti.
Sledi kopija avtorjeve konfiguracijske datoteke (s prevedenimi komentarji) z LiveIcom nastavljenim na mešalni način (angl. mixer mode), kar pomeni tok iz seznama datotek MP3.
OPOMBA: V datoteki so tudi komentarji. Če jo boste prenesli na svoj računalnik, pazite, da se deli komentarjev ne bodo prenesli v novo vrstico, ker LiveIce v takšnem primeru ne bo deloval.
# liveicova konfiguracijska datoteka # Avtomatsko generirana SERVER megajukebox # Ime vašega strežnika * MORA BITI VELJAVNO IME, # KATEREMU SE DA DOLOČITI IP* PORT 8000 # Priključek na katerem teče Icecast NAME Megajukebox # Informacije o imenu vašega strežnika, # ki se pošlje odjemalcem in # imeniškim strežnikom (angl. directory server) # Npr.: 'Sarah FM' ali # 'ThisTown: Loud and Heavy Jazz - Internet Radio 24/7' GENRE Live # Informacije o zvrsti. Npr.: 'Talk' ali 'Dance' DESCRIPTION # Informacije o postaji, npr.: # 'The best for reggae in the North' URL http://megajukebox:8000 # URL in priključek strežnika PUBLIC 0 # Postavite na 1, če želite, da Icecast obvesti # vašo postajo in prikaže seznam podrobnosti # na imeniškem strežniku, sicer pustite 0 XAUDIOCAST_LOGIN # Lahko je ICY_LOGIN ali X_AUDIOCAST_LOGIN. # X_AUDIOCAST je boljši. MOUNTPOINT /techno # Nastavi točko vpetja za Icecastov tok. Uporabi # se samo, kadar je uporabljen X_AUDIOCAST # sicer se privzame icy_0 PASSWORD hackme # Icecastovo administratorsko geslo SAMPLE_RATE 44100 # Vzorčna frekvenca toka STEREO # Lahko je MONO ali STEREO NO_SOUNDCARD # Oglejte si spodaj HALF_DUPLEX # Določi dvosmerni način zvočne kartice. # Lahko je HALF_DUPLEX or FULL_DUPLEX USE_GOGO # Določi uporabljen kodirnik. # Poglejte README za seznam podprtih BITRATE 128000 # Določi bitno stopnjo toka (glejte spodaj) VBR_QUALITY 1 # Določi kvaliteto spremenljivega bitnega toka MIXER # Glejte spodaj PLAYLIST /megajukebox/playlist # Lokacija seznama za predvajanje (glejte # podrobnosti ukaza find kasneje v poglavju) TRACK_LOGFILE track.log # Ime datoteke in lokacija za izpis seznama # pretočenih datotek MP3
[dj@megajukebox liveice]$ ./liveice /megajukebox/playlist 1 opening connection to megajukebox 8000 Attempting to Contact Server connection successful: forking process opening pipe!... writing password Setting up Interface Soundcard Reopened For Encoding Input Format: 16Bit 44100Hz Stereo Output Format: 256000 Bps Mpeg Audio IceCast Server: megajukebox:8000 Mountpoint: /techno Name: megajukebox - this and that radio - broadcasting 24/7 Genre: Techno Url: http://megajukebox Description: a load of digital noise -> but i know you like it :) Press '+' to Finish adding /megajukebox/demotunes/track_1.mp3 adding /megajukebox/demotunes/track_2.mp3 adding /megajukebox/demotunes/track_3.mp3 adding /megajukebox/demotunes/track_4.mp3 /megajukebox/demotunes/track_4.mp3 Adding New Channel 1 Adding New Channel 2 Channel 1 selecting /megajukebox/demotunes/track_1.mp3 Channel 2 selecting /megajukebox/demotunes/track_1.mp3 Playing track_1.mp3 searching for Id3v2 searching for Id3v1 copying the data fixing the nulls adding the url closing input file Using log track.log
Zadnja vrstica je merilnik konic.
Sledijo tipke za upravljanje mešalnega načina:
Učinek Tipka za kanal 1 Tipka za kanal 2 ~~~~~~ ~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~ Izbira naslednje skladbe na kanalu 1 a Izbira prejšnje skladbe na kanalu q z Poženi/ustavi kanal 2 s Ponastavi (angl. reset) kanal w x Povečaj jakost na kanalu 3 d Zmanjšaj jakost na kanalu e c Povečaj hitrost kanala 4 f Zmanjšaj hitrost kanala r v Lepljiv način vključi/naključen/izključi 5 g Predogled kanala t b Naključna skladba u m
Zgornja datoteka liveice.cfg velja za mešalni način. Za uporabo LiveIca v načinu avdio (angl. audio mode), spremenite vrstico, ki se nananša na MIXER, v NOMIXER, spremenite NO_SOUNDCARD v SOUNDCARD in še enkrat poženite LiveIce.
Če pozabite nastaviti pravilne parametre, boste dobili zanimiva opozorila:
946:Error: Line In mode *and* no soundcard??????? Eeejit!
Ko vam je uspelo vse pravilno nastaviti in priključiti na zunanji vir, bi vam oddajanje moralo delovati:
[dj@megajukebox liveice]$ ./liveice /megajukebox/playlist 0 Initialising Soundcard 16Bit 22050Hz Stereo Full Duplex opening connection to megajukebox 8000 Attempting to Contact Server connection successful: forking process opening pipe!... writing password Setting up Interface Soundcard Reopened For Encoding Input Format: 16Bit 22050Hz Stereo Output Format: 32000 Bps Mpeg Audio IceCast Server: megajukebox:8000 Mountpoint: /daves_band_live_at_the_club Name: megajukebox - Dave and the Dynamite - Live at the Roxy Genre: Live/Rock Url: http://megajukebox Description: megajukebox::Louder than a frog in a trashcan..... and almost as musical Press '+' to Finish Lvl: L: 8704 R: 11776
Zadnja vrstica je merilnik stopnje signala. Če je stopnja vhodnega signala previsoka, se bo prikazalo opozorilo *clip*. Če pride do tega, zmanjšajte ojačenje vhodnega vira.
Pozornejši med vami boste morda opazili, da prve vrstice s komentarji v datoteki liveice.cfg nakazujejo, da je bila datoteka narejena avtomatsko. Če uporabljate na Tk temelječ grafični uporabniški vmesnik liveiceconfigure.tk in izvedete ročne spremembe, boste le te izgubili ob shranjevanju. Ali uporabljajte samo grafični uporabniški vmesnik ali pa se naučite uporabljati Vi oz. Emacs.
Ko razpakirate distribucijo programa v imenik, najprej preberite datoteko README.
Fluid ima tri načine delovanja: prenosni (angl. transmit), povezovalni (angl. relay) in posredovalni (angl. forward). Osredotočili se bomo na prenosni način (transmit).
Konfiguracijske datoteke za ta način se nahajajo v imeniku config/MP3TX.cfg. Preizkus strežnika lahko naredite z naslednjim ukazom, kar bi moralo delovati tudi s privzetimi nastavitvami:
java Fluid TX
Seveda morate najprej imeti nameščeno Javo v katerikoli obliki. Uporabite lahko Blackdown (različica JDK za Linux, na voljo na http://www.blackdown.org), če pa uporabljate Redhat, lahko uporabite tudi Kaffe.
Poleg Fluida dobite tudi nekaj vzorčnih datotek MP3. Če vse deluje pravilno, bi se moralo prikazati nekaj podobnega sledečemu, pri čemer dodajmo še, da je v tem primeru uporabljen Kaffe, lahko pa ga poženete tudi z uporabo Jave:
[dj@megajukebox Fluid-Beta2J]$ kaffe Fluid tx ------- Fluid Streaming Server Beta 2 ------- This program is ShareWare(tm) and it will not be crippled in any way because of it. However if you do like the program and will use it commercial purposes, we ask of you to contact us at the address below for pricing info: Eldean AB E-mail: Sjoangsvagen 7 fluid@subside.com S-192 72 Sollentuna SWEDEN Fluid is Copyright Subside (C) 1998 written by Lars Samuelsson http://www.subside.com --------------------------------------------- * Transmission mode * Reading config from: config/MP3TX.cfg Reading playlist: playlist.m3u Server started on port: 2711 Accepting administrator login on port: 2710 P| Dr. Nick - Hello Everybody
Prevesti boste morali seznam za datotek, katere želite oddajati. To bo statičen seznam, uporabniki ga ne bodo mogli spreminjati ali pošiljati zahtev. Ta seznam se imenuje playlist.m3u in se nahaja na v korenskem imeniku.
Za prevajanje seznama vseh datotek MP3 v določenem imeniku (ali disku), izvedite naslednji ukaz:
find [MP3_imenik] -name *.mp3 -print > playlist.m3u
Strežnik lahko administrirate na daljavo tako, da se preko telneta povežete na administratorski priključek, privzeto je to 2710:
[dj@megajukebox Fluid-Beta2J]$ telnet localhost 2710 Trying 127.0.0.1..megajukebox Connected to localhost.localdomain. Escape character is '^]'. jaguar You are connected to the -Fluid- Streaming Server Type "help" for a command reference help The following commands are available: help conn curr exit curr Information about the currently broadcasted song: Title: Beer Talk Artist: Homer Simpson Album: The Simpsons Year: 1996 Comment: Borrowed this as an example Genre: Comedy
[dj@megajukebox config]$ cat MP3TX.cfg 2711 2710 5 4096 32 1000 jaguar playlist.m3u current.txt # --- Vrstice pomenijo --- # 1. Številka priključka (ki jo uporablja strežnik) # 2. Številka priključka (za vzdrževanje strežnika na daljavo) # 3. Največje število povezav (ki jih strežnik sprejme) # 4 Velikost paketa pri branju/pošiljanju (v zlogih) # 5. Bitna stopnja datotek MP3 v kBit/s (Vse datoteke morajo imeti enako stopnjo) # 6. Razmik med skladbami (v milisekundah) # 7. Geslo za administriranje na daljavo # 8. Ime seznama skladb za oddajanje (seznam v formatu .m3u) # 9. Ime datoteke, kamor se izpišejo podatki o skladbi (iz oznake ID3)
Oddajanje zvoka lahko porabi precej pasovne širine, če je bitna stopnja (angl. bit rate) MP3 strežnikov nastavljena previsoko.
Upoštevajte tale scenarij. Povezava T1 ima kapaciteto pribl. 1,55 Mb/s. Če oddajate stereo zvok pri 128 kBit/s, bo vsak povezan predvajalnik porabil 256 kBit/s, kar pomeni, da se bo lahko kadarkoli brez problemov povezalo samo 6 uporabnikov. In pri 256 kbit/s se k vam ne bo priključevalo kaj veliko uporabnikov z modemi!
Zatorej se morate pri nastavitvi hitrosti oddajanja odločiti ne samo, kako hitra je vaša povezava v internet, temveč tudi kakšni uporabniki se bodo povezovali. 24kBit/s da razumno kvaliteto signala, dovolj hitro tudi za modeme s 56 kbit/s, enak priključek T1 pa bo omogočal pribl. 32 hkratnih povezav.
Če bo strežnik tekel na intranetu, bo še vedno potrebno upoštevati pasovno širino, še posebej če je hitrost na mreži 10Mbit/s.
Prosimo, da obvestite vašega ponudnika internetnih storitev ali sistemskega administratorja o vaših namerah glede postavitve MP3 strežnika, da ne boste kasneje doživeli šoka. Nekateri ponudniki internetnih storitev bodo zaračunali uporabo pasovne širine čez določeno omejitev in sistemske administratorje bo zanimalo, zakaj mreža deluje počasneje.
Mislimo, da je razumno predpostaviti, da založbe ne bodo navdušene nad oddajanjem glasbe brez njihovega dovoljenja ali kakršnegakoli plačila. Torej: kaj lahko oddajate?
To je področje, kjer se boste morali zavedati vseh posledic, saj boste odgovorni vi.
Spodaj sta dodani še dve povezavi: ena kaže na Electronic Frontier Foundation, ki se zavzema za sprostitev omejitev, ki obkrožajo to tehnologijo, druga pa kaže na Recording Industry Association of America, ki poskuša avtorje zaščititi pred nedovoljenim kopiranjem (piratstvom).
Močno priporočamo obisk obeh spletnih strani, obiščite pa še strani, ki se kakorkoli nanašajo na vašo fizično lokacijo (npr. Sazas za Slovenijo, op. pr.)
http://www.riaa.com/weblic/weblic.htm