A következő oktatóanyag elmagyarázza, hogyan állíthat be egy IceCast rádiós streaming szervert, és hogyan játszhat le hangfájlokat (zenét vagy podcastokat) a FreeBSD platformon. Ez az oktatóanyag feltételezi, hogy a FreeBSD 10.0 vagy újabb verzióját futtatod, és root felhasználóként vagy bejelentkezve. Azt is feltételezte, hogy van egy szövegszerkesztője a konfigurációs fájlok szerkesztéséhez.
Mielőtt elkezdené, fontos megérteni az audio streaming szerver három részét. Először is megvan a szerverszoftver, az IceCast. Az IceCast központi elosztóként működik, ahová a hangfolyamokat be- és kiküldik. Az IceCast szolgáltatás hangfolyamokat fogad a forráskliensektől. A forráskliensek olyan programok, amelyek hangfájlokat vagy más hangforrásokat, például mikrofonokat olvasnak. Példánkban a forráskliens az Ices, és hangfolyamot szállít az IceCast szervernek. A harmadik komponens egy hallgató kliens. A hangfolyamok az IceCast szerverről eljutnak a hallgatókhoz, akik hallják a hangot. A figyelő kliens általában egy asztali alkalmazás, például egy webböngésző, a VLC multimédia lejátszó vagy a WinAMP. Vizuálisan az elrendezés így néz ki:
Source client (Ices) --> IceCast server --> Listening client (browser)
Az IceCast streaming szerver beállításához a FreeBSD-n először magát a szerverszoftvert telepítjük. Ezt a következő parancs futtatásával lehet megtenni.
pkg install icecast2
Ezután megnyitjuk a /etc/rc.conffájlt, és engedélyezzük az IceCast háttérszolgáltatást. Ez úgy történik, hogy a következő szöveget hozzáfűzi a /etc/rc.conffájl aljához .
icecast_enable="YES"
Következő lépésünk az IceCast szolgáltatás konfigurálása. Az IceCast csomag egy minta konfigurációs fájlt tartalmaz, amelyet módosíthatunk. Ez a mintafájl a /usr/local/etckönyvtárban található. A mintafájlról másolatot készítünk a szerkesztés előtt.
cd /usr/local/etc
cp icecast.xml.sample icecast.xml
Most szeretnénk szerkeszteni a icecast.xmlfájl néhány kulcsfontosságú mezőjét . A fájl nagy része meghagyható az alapértelmezett beállításokkal, de módosítanunk kell a bejelentkezési adatokat. Ezt úgy tehetjük meg, hogy meglátogatjuk a hitelesítési részt (körülbelül a 30. sorban), és módosítjuk a forrás-jelszót és a továbbítójelszót valami megfelelőre. Ezek a jelszavak lehetővé teszik számunkra, hogy egy forráskliensről adatokat továbbítsunk az IceCast szerverre. Az admin-user és az admin-password változókat is meg kell változtatnunk valami egyedire a rendszerünkben. Ez a két hitelesítő adat őrzi az IceCast szerver webalapú felületét. Ezután a 150. sor környékén meg kell változtatnunk a mount-name , username és a változókat.jelszót . Ez a három változó védi az IceCast szerver csatlakozási pontját. Végül a icecast.xmlfájl alján látnunk kell egy biztonsági részt, amelyhez megjegyzéseket fűztünk. El kell távolítanunk a nyitó <-- és a záró --> szimbólumokat a biztonsági bekezdés körül . A icecast.xmlfájl módosítása után mentse el a fájlt.
A konfigurációs fájl szerkesztése után engedélyezni akarjuk a naplózást. Ehhez futtassa a következő parancsokat.
mkdir /var/log/icecast
chown nobody:nogroup /var/log/icecast
Végül elindítjuk az IceCast szervert, ami arra készteti a szervert, hogy figyeljen a bemeneti és a bejövő kliens kapcsolatokra.
service icecast2 start
Az IceCast szerver működik és működik, így most biztosítanunk kell neki valami lejátszást. Következő lépésünk az Ices source kliens telepítése. A FreeBSD jelenleg nem kínál bináris csomagot az Iceshez, ezért azt portokból kell felépítenünk. Ezt a következő parancsok futtatásával teheti meg.
portsnap fetch
portsnap extract
cd /usr/ports/audio/ices
make install
make clean
Az Ices source kliensnek felhasználói fiókra és naplózásra van szüksége. Ha szeretne felhasználót létrehozni az Ices szoftverhez, és jelszót szeretne beállítani a fiókhoz, futtassa ezeket a parancsokat.
pw groupadd ice
pw useradd ices -g ice -m
passwd ices
A létrehozott felhasználó után engedélyezhetjük a naplózást az Ices számára.
mkdir /var/log/ices
chown ices:ice /var/log/ices
Innentől kezdve nincs szükségünk root felhasználói hozzáférésre, és ices felhasználóként működhetünk . Ezután két könyvtárat kell létrehoznunk. Az egyik könyvtár, a music, fogja tartalmazni azokat a hangfájlokat, amelyeket streamelni fogunk. A második könyvtár, confa konfigurációs fájljainkat fogja tartalmazni.
su ices
cd /home/ices
mkdir music conf
cp /usr/local/share/ices/ices-playlist.xml conf/configuration.xml
Most már van egy minta konfigurációs fájl a helyünkön. Ideje szerkeszteni a conf/configuration.xmlfájlt a környezetünknek megfelelően. A fájl egyetlen részei, amelyeket módosítanunk kell, a 60. sor körül találhatók. Itt meg kell adnunk a jelszót és a beillesztési helyet, amelyet a icecast.xmlfájlban beállítottunk . Például, ha a beillesztési nevünket a icecast.xmlfájlban a következőre /radio.oggállítjuk be, akkor a configuration.xmlfájlunk beillesztési paraméterét is módosítsuk a következőre /radio.ogg. A jelszómezőnknek meg configuration.xmlkell egyeznie a fájlban létrehozott forrásjelszóvalicecast.xml . A configuration.xmlfájl szerkesztése után el kell mentenünk a változtatásokat.
Ha a konfigurációs fájl a helyén van, a következő lépés az audiofájlok másolása, amelyeket streamelni kívánunk a musickönyvtárba. Az audiofájloknak formátumban kell lenniük, .oggmivel az IceCast nem kezeli a .mp3fájlokat az alapértelmezett beállításokkal. Miután az összes streamelni kívánt hangfájl a musickönyvtárban van, létre kell hoznunk egy lejátszási listát. A lejátszási lista egy egyszerű szöveges fájl a streamelni kívánt zenék listájával. A következő parancsokkal egyszerűen készíthetünk lejátszási listát.
cd /home/ices/conf
ls -d ../music/*.ogg > playlist.txt
Az audiofájlok lejátszása a playlist.txtfájlban megjelenő sorrendben történik . A fájl bármely szövegszerkesztőben szerkeszthető a streaming hang sorrendjének beállításához.
Mindössze annyit kell tennünk, hogy elindítsuk hangfájljaink streamelését, hogy futtassuk ezt a parancsot.
ices configuration.xml
Mellékes megjegyzés: Gyakran előfordulhat, hogy szeretnénk futtatni az Ices forrásklienst, majd kijelentkeznünk, és valami mást kell csinálni. Ebben az esetben szeretem az Ice-t futtatni a képernyőn belül . Íme egy példa arra, hogyan kell jégkockát futtatni képernyővel.
screen
cd /home/ices/conf
ices configuration.xml
Ezután nyomja meg a Ctrl + A billentyűket, és érintse meg a D billentyűt. Ez leválasztja a képernyő munkamenetét, és lehetővé teszi számunkra, hogy kijelentkezzen, miközben az Ices hangot játszik le a háttérben. Később leállíthatjuk az Ices-t, ha bejelentkezünk és futunk:
screen -r
killall ices
exit
Mostantól egy webböngészőben csatlakozhatunk szerverünkhöz a 8000-es porton, hogy meghallgathassuk hangfolyamunkat. Az URL így fog kinézni http://myservername:8000. Ezt a címet nyilvánosan elérhetővé teheti, ha szeretné, hogy mások is hallgathassák az adatfolyamot.
Korábban említettem, hogy az IceCast .oggfájlokat játszik le, és nem .mp3. Ezt meglehetősen könnyű leküzdeni FreeBSD-n. Root felhasználóként telepíthetünk egy sox nevű konvertáló eszközt , amely .mp3fájljainkat .oggfájllá alakítja . Feltételezve, hogy minden fájlunk .mp3a /home/ices/musickönyvtárban van, telepíthetjük a sox-ot és végrehajthatjuk a konverziót a következőképpen:
pkg install sox
cd /home/ices/music
for i in *.mp3; do sox ./"$i" ./"$i".ogg; done
Ezt követően frissíthetjük lejátszási listánkat a következőkkel:
cd ../conf
ls -d ../music/*.ogg > playlist.txt
Ne feledje, hogy az audio streamelés sávszélességigényes lehet. A rádióállomásunkat hallgató egy vagy két kliens nem igényel nagy sávszélességet, de 50 vagy több kliens túlnyomhatja a szervert a rájuk kiosztott havi sávszélességen. A váratlan pénzügyi költségek elkerülése érdekében célszerű engedélyezni a sávszélesség korlátozását a streaming szerveren.