Következő Előző Tartalom

11. MP3 folyamok

Egy MP3 folyamot szolgáltatni képes kiszolgáló segítségével MP3 fájlokat küldhetünk át egy TCP alapú hálózaton. Ez a hálózat lehet maga az Internet, vagy egy helyi hálózat.

A kapcsolódás elve nagyon hasonló a webszerverhez, a fájlok küldése megindul, amikor a kliensprogram (MP3-lejátszó) a kiszolgálóhoz kapcsolódik.

Egy ilyen kiszolgáló telepítése és konfigurálása viszonylag egyszerű. Először az Icecast-ról írok, aztán rátérek a Fluid bemutatására.

11.1 Icecast

Letöltés és kicsomagolás után nem árt, ha vetünk egy pillantást a doc/ könyvtárra. A HTML kézikönyv nagyon jól használható, és mindenre kitér.

A forrás letöltése után le kell fordítani a programot, a rendszerspecifikus fordítási utasítások alapján.

Az Icecast nem fog jól működni, ha nem az a gépnév van beállítva az etc/icecast.conf fájlban, ami a saját gépnevünk.

Ha az Icecast indításakor ezt a hibaüzenetet látjuk, akkor baj van:


-> [05/Jan/2000:17:21:04] WARNING: Resolving the server name [your.server.name] does not work!

Nyissuk meg az etc/icecast.conf fájlt, és keressük meg a ``server_name'' bejegyzést. Írjuk be a gépünk nevét. Ha nem vagyunk biztosak a gépnévben, a hostname parancs segít, vagy nézzük meg at /etc/hosts fájl tartalmát.

Ha kész vagyunk a változatatásokkal, akkor vagy másoljuk a bin könyvtárba a konfigurációs fájlt, vagy indítsuk el az icecast-ot a -c kapcsolóval, és adjuk meg az elérési utat:


./icecast -c ../etc/icecast.conf

Ha mindent sikerült jól beállítani, akkor valami ilyesmit láthatunk:


[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]

A -d kapcsoló után lehet megadni azt a könyvtárat, ahol a naplófájlokat és a sablonokat tartja a program.

A parancssori kapcsolók listája:


        -c [fájlnév] 

A fájlt konfigurációs fájlként fogja értelmezni. Jegyezzük meg, hogy
minden ezután megadott paraméter felülbírálja a fájl tartalmát. Ne feledjük
továbbá, hogy az aktuális könyvtárban levő icecast.conf fájlt már beolvasta 
a program, mire ehhez a paraméterhez ért, tehát ha valamelyik beállítást nem 
bíráljuk itt felül, akkor az eredeti beállítás érvényesül. 

        -P [port] 

Ezt a protot használja minden kapcsolatra (kliens, forrás, adminisztrátor).
Az alapértelmezett érték 8000.

        -m [max kliens] 

Maximum ennyi klienst enged csatlakozni a kiszolgálóhoz. A maximális szám
elérése után a klienst visszautasítja 'HTTP/1.0 504 Server Full' üzenettel.

        -p [jelszó] 

Ezzel állíthatjuk be azt a jelszót, amelyet a kódolóprogramnak használnia 
kell, ha egy folyamot akar a kiszolgálóra küldeni. Ha a kiszolgálót 
crypt() támogatással fordították, akkor ez az argumentum egy kódolt 
karakterlánc kell legyen.

        -b 

Ennek a kapcsolónak a használatával a háttérbe tehetjük az icecast kiszolgálót
(démon processz lesz). Az adminisztrátor a szervert egy telnet kliensen 
keresztül érheti el. 

        -d [könyvtár] 

Ebbe a könyvtárba teszi az icecast a naplófájlokat, és minden sablont itt keres.

Eljutottunk odáig, hogy elindult a kiszolgáló, most meg kell adni neki az MP3 forrását.

Shout

A Shout biztosítja az Icecastnak a lejátszandó MP3 fájlok listáját.

A listát könnyen előállíthajtjuk a következő paranccsal:


find [MP3 könyvtár] -name *.mp3 -print > playlist

A legegyszerűbben úgy indíthatjuk el a shout folyamatot, hogy kiadjuk a következő parancsot:


[dj@megajukebox bin]# ./shout megajukebox -P hackme -p playlist

A -P kapcsoló után kell megadni azt a jelszót, amely az Icecasthoz való hozzáféréshez szükséges. Ennek az alapbeállítása a hackme. Ezt ajánlatos sürgősen megváltoztatni, mielőtt más teszi meg helyettünk :) A -p kapcsoló után kell megadni a lejátszandó fájlok listáját.

Az összes parancssori kapcsoló listája:


[dj@megajukebox bin]# ./shout
Usage: shout <host> [options] [[-b <bitrate] file.mp3]...
Options:
        -B <directory>       - Use directory for all shout's files.
        -C <file>    - Use file as configuration file
        -D <dj_file> - Run this before every song (system())
        -P <password>        - Use specified password
        -S              - Display all settings and exit
        -V              - Use verbose output
        -X <desc>    - Use specified description.
        -a              - Turn on automatic bitrate (transfer) correction
        -b <bitrate> - Start using specified bitrate
        -d              - Activate the dj.
        -e <port>    - Connect to port on server.
        -f              - Skip files that don't match the specified bitrate
        -g <genre>   - Use specified genre
        -h              - Show this text
        -i              - Use old icy headers
        -k              - Don't truncate the internal playlist (continue)
        -l              - Go on forever (loop)
        -m <mount>   - Use specified mount point
        -n <name>    - Use specified name
        -o              - Turn of the bitrate autodetection.
        -p <playlist>        - Use specified file as a playlist
        -r              - Shuffle playlist (random play)
        -s              - (Secret) Don't send meta data to the directory server
        -u <url>     - Use specified url
        -v              - Show version
        -x              - Don't update the cue file (saves cpu)
        -z              - Go into the background (Daemon mode)
        -t              - Enable title streaming

11.2 Fluid

A tar fájl kicsomagolása után olvassuk el a README-t.

A Fluidnak háromalapvető üzemmódja van, az átvitel, a közvetítés és a továbbítás. Az átvitelt fogom bővebben kifejteni.

Az átvitellel kapcsolatos beállítások a config/MP3TX.cfg konfigurációs fájlban vannak. A kiszolgáló teszteléséhez az alapbeállítások megfelelnek, adjuk ki tehát a következő parancsot:

java Fluid TX

Természetesen a Java-nak valamilyen formában telepítve kell lennie a rendszerünkön. Használhatjuk a JDK Blackdown portját, amely letölthető a http://www.blackdown.org webhelyről, vagy ha Redhat disztribúciót használunk, akkor ott a Kaffe.

A Fluid csomag néhány MP3 fájlt is tartalmaz, tehát ha minden jól megy, valami hasonlót kell látnod. (Ebben a példában én a Kaffe-t használtam, más rendszereken esetleg a java-t kell használni):


[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

Ha már idáig eljutottunk, akkor a lényeg már megvan, de biztosan mást is szeretnénk sugározni a demofájlokon kívül.

Össze kell állítanunk egy listát a lejátszandó MP3 fájlokról. Ezt a listát a felhasználók nem képesek megváltoztatni. A lista neve playlist.m3u, és alapértelmezésben a program gyökérkönyvtárában van a helye.

A lista összeállításához használhatjuk a következő parancsot, ez az összes MP3 fájlt berakja a listára, amely egy adott könyvtárban (lemezen) megtalálható:


find [MP3 könyvtár] -name *.mp3 -print > playlist.m3u

Alapértelmezés szerint a kiszolgáló a 2711-es portot használja, a hallgatóknak erre kell csatlakozniuk. Ha ezt meg kell változtatni, akkor a konfigurációs fájlt kell módosítani.

A kiszolgáló távolról adminisztrálható az adminisztrációs porton keresztül, amelyre telnettel kapcsolódhatunk. Az alapértelmezett portszám 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

A "jaguar" az alapértelmezett adminisztrátori jelszó. Nem jelenik meg prompt a jelszó beírására, tehát ne várjunk feleslegesen erre! Javasolt az alapértelmezett jelszót megváltoztatni, mert különben egy biztonsági lyukat hagyunk a rendszerünkön. Ezt is konfigurációs fájl módosításával tehetjük meg, amely így néz ki:


[dj@megajukebox config]$ cat MP3TX.cfg 
2711
2710
5
4096
32
1000
jaguar
playlist.m3u
current.txt

# --- Az egyes sorok jelentése ---
# 1. portszám (amit a kiszolgáló használ)
# 2. portszám (a kiszolgáló távoli karbantartásához)
# 3. a maximális csatlakozások száma (amit a kiszolgáló elfogad)
# 4  csomagméret küldés/fogadás esetén (bájtban)
# 5. az mp3-ak bitrátája kbit/s-ban (csak azonos bitrátájú mp3-ak lehetnek)
# 6. szünet a számok között (ezredmásodpercben)
# 7. a távoli adminisztráció jelszava
# 8. lista neve (a lista .m3u formátumban kell)
# 9. ebbe fájlba írja az aktuális dal ID3 info-ját

Az .m3u formátum megegyezik azzal, amit a fent megadott find paranccsal létrehozhatunk.

11.3 A sávszélességgel kapcsolatos megfontolások

A hangfolyamok rengeteg sávszélességet foglalhatnak el, ha az MP3 kiszolgálók bitrátájat túl magasra állítjuk.

Gondoljuk meg a következő esetet. A T1 kapcsolat kapacitása kb. 1,55 Mb/Sec. Ha az MP3 folyamokat sztereóban 128kbps-al sugáruzzuk, akkor minden csatlakozó lejátszó 256kbps sávszélességet használ, tehát hat felhasználó kapcsolódhat egyidőben problémamentesen a kiszolgálónkhoz. Mellesleg nem sok modemes felhasználóra számíthatunk 256kbps sebességen.

Döntést kell hozni tehát, nemcsak abból a szempontból, hogy mit bír el az internetes vonalunk, hanem gondolni kell a potenciális felhasználókra is. Például a 24kbps sztereó jel már elég jó minőségű, és az 56K modemek felhasználói már képesek csatlakozni, azonkívül ugyanaz a T1 vonal ebben az esetben 32 egyidejű kapcsolatot képes kiszolgálni.

Akkor is meg kell vizsgálni a sávszélesség kérdését, ha a kiszolgáló intraneten fut, különösen ha 10 Mb/Sec hálózatról van szó.

Mindenképp értesítsük internetszolgáltatónkat vagy rendszergazdánkat arról, hogy médiafolyamokat fogunk sugározni, különben kínos meglepetések érhetnek. Néhány internetszolgáltatónál fizetni kell azért, ha túllépünk egy bizonyos határt a sávszélesség kihasználásában, a rendszergazdákat pedig mindig érdekli, hogy mitől lassult le a hálózat :)

11.4 A szerzői jogok problémaköre

Nem tévedünk nagyot, ha feltételezzük, hogy a lemezkiadóknak nem fog tetszeni, ha MP3 zenét sugározunk, és nem kérünk erre engedélyt, vagy valamiképpen nem fizetünk ezért. Mit sugározhatunk tehát?

Ez az a terület, ahol nagyon tisztában kell lenni a jogi finomságokkal, mert a műsort sugárzó személy felelősségre vonható.

Két webhelyet érdemes meglátogani a témában. Az egyik az Electronic Frontier Foundation honlapja, amely azért küzd, hogy enyhítsenek a technológiát fojtogató szigorú szabályozásokon. A masik link a Recording Industry Association of America honlapjára vezet el, ők a művészek érdekeit szeretnék megvédeni a médiakalózoktól.

Melegen ajánlom ezeknek a honlapoknak a meglátogatását, valamint azoknak a honlapoknak és egyéb irományoknak a tanulmányozását, amelyek magyarországi szabályozással foglalkoznak.

http://www.eff.org/cafe/

http://www.riaa.com/weblic/weblic.htm


Következő Előző Tartalom