1. Bevezetés (Introduction)
A Steamcastról
A Steamcastot arra tervezték, hogy egyszerűvé tegye a médiatartalmak kezelését és elosztását az interneten keresztül.
Mindezt úgy valósítja meg, hogy a szerver tulajdonosának könnyű legyen az adminisztráció és az irányítás.
A Steamcast széles körben tesztelt, és bizonyítottan működik az Oddcast és SHOUTcast DSP, az NSVGui, valamint a sc_nsv eszközökkel élő közvetítéshez, az alábbi formátumok használatával:
MP3, NSV és OGG
Emellett úgy is meg lett tervezve, hogy a statikus multimédiás fájlok elosztása egyszerű legyen, minimális konfigurációval.
Motiváció
Miért csináljam ezt, amikor már oly sokan mások is megtették?
Miért ne? Ez egy nagyszerű tanulási tapasztalat számomra, és lehetőséget ad arra, hogy felfedezzek különböző tervezési lehetőségeket és funkciókat, amelyek javíthatják a médiatartalom terjesztését.
A Steamcast ötvözi azokat a funkciókat, amelyeket kedveltem az Icecast1/2 és a SHOUTcast 1.x rendszerekben, valamint az Mp3 Toolbox projektet – ami a jelenlegi, sokkal ambiciózusabb projekt elődje volt.
Miért Steamcast?
Mert a gőz (Steam) megolvasztja a jeget (Ice). 😉
Ismert problémák
- Többféle multimédia-lejátszóval való tesztelés szükséges. Eddig csak Winamp-pal és VLC-vel lett tesztelve, különösen az OGG formátum esetében kell még vizsgálat.
- Lehetnek memória- vagy erőforrás-szivárgások; további tesztelés szükséges az ok azonosításához.
- A FreeBSD-re fordított verzió gyakorlatilag nincs letesztelve.
- A privát mountok jelenleg nem képesek elrejteni a statisztikákat.
- Az összes fájlkiszolgáló funkció ideiglenesen el lett távolítva, de a jövőben visszatérhet.
- A webes felületen történő lejátszás még sok tesztelést igényel.
Licenc
- Ezennel visszavonható licencet kap, hogy a szoftvert bináris formában bármilyen célra használhassa, akár kereskedelmi, akár nem kereskedelmi célból.
- Hacsak írásban kifejezetten nem szerepel, nem kap engedélyt a Steamcast bármilyen formában történő terjesztésére, ideértve, de nem kizárólagosan:
- elektronikus információszolgáltatáson keresztüli terjesztést,
- hirdetőtáblákon való terjesztést,
- mágneses vagy optikai adathordozón történő terjesztést.
- Nem kap engedélyt a Steamcast módosítására sem. Ez magában foglalja, de nem kizárólagosan: a név vagy verzióinformáció megváltoztatását, illetve a szerzői jogi jelzések módosítását a programon belül.
- A Radio Toolbox és annak szerzői/tulajdonosai nem vállalnak felelősséget azért, hogy mi kerül sugárzásra a Steamcaston keresztül.
EZ A SZOFTVER A SZERZŐJE ÉS A HITELES TERJESZTŐI ÁLTAL “AHOGYAN VAN” ALAPJÁN KERÜL BIZTOSÍTÁSRA, ÉS MINDEN KIFEJEZETT VAGY FELTÉTELEZETT GARANCIA, IDEÉRTVE, DE NEM KORLÁTOZVA A FORGALOMKÉPESSÉGRE ÉS EGY ADOTT CÉLRA VALÓ ALKALMASSÁGRA VONATKOZÓ FELTÉTELEZETT GARANCIÁKAT, ELUTASÍTÁSRA KERÜL. SEMMILYEN ESETBEN NEM FELELŐS A SZERZŐ VAGY A HITELES TERJESZTŐ A KÖVETKEZŐKÉNT FELMERÜLŐ KÁROKÉRT: KÖZVETLEN, KÖZVETETT, MELLÉKES, KÜLÖNLEGES, PÉLDASZERŰ VAGY KÖVETKEZMÉNYES KÁROK (IDEÉRTVE, DE NEM KORLÁTOZVA, HELYETTES TERMÉKEK VAGY SZOLGÁLTATÁSOK BESZERZÉSÉT; HASZNÁLAT, ADATOK VAGY NYERESÉG KIESÉSÉT; VAGY ÜZLETI MEGSZAKÍTÁST), BÁRMILYEN OKBÓL ÉS BÁRMILYEN FELELŐSSÉGI ELMÉLET ALAPJÁN, AKÁR SZERZŐDÉS, SZIGORÚ FELELŐSSÉG, VAGY TETT (IDEÉRTVE A GONDATLANSÁGOT VAGY MÁSOK ÁLTALI HIBA MIATT) MIATT, MÉG AKKOR IS, HA FIGYELMEZTETTÉK AZ ILYEN KÁR LEHETŐSÉGÉRŐL.
A Steamcast használatával Ön elfogadja a fenti feltételeket.
2. Renszerkövetelmények (System requirements)
A Steamcast több környezetre is le van fordítva, beleértve a Windows-t, a Linuxot és a FreeBSD-t.
Ha ezek közül egyik operációs rendszer sem áll rendelkezésedre, akkor felveheted velem a kapcsolatot egy olyan verzió fordításáról, ami a te rendszereden is működik.
Mielőtt azonban megkeresnél egy kifejezetten a te rendszeredhez készített fordítással kapcsolatban, tudnod kell, hogy csak akkor fordítom le a Steamcastot, ha:
- Az operációs rendszer elérhető számomra (letölthető és telepíthető), vagy hozzáférek valamelyik barátom által. Nem adom ki a forráskódot, és nem használom a te gépedet a fordításhoz. MUSZÁJ, hogy egy megbízható rendszer legyen!
A Steamcast működését Windows 2000, Windows XP Home/Professional és RedHat 7.3 rendszereken teszteltem. Más Windows- és Unix-verziók gyakorlatilag nem teszteltek. Ha sikerül működésre bírnod olyan rendszeren, ami itt nincs felsorolva, kérlek jelezd a levelezőlistán vagy a fórumon.
Követelmények:
- 90Mhz-es vagy gyorsabb szerver Windows Vista, 7, 8, vagy C++11-et támogató Linux alatt
- 16MB RAM
- Elég sávszélesség a szerverhez konfigurált felhasználók kiszolgálásához (a Steamcast nem állítja be automatikusan a felhasználói maximumot, ezt neked kell megadnod). Használhatod a Stream Calculator oldalt, hogy gyorsan kiszámold, hány felhasználót tudsz kiszolgálni a kapcsolatoddal.
- Ha szeretnéd, hogy az interneten keresztül hallgassák a szervered, gondoskodnod kell róla, hogy legyen internetkapcsolatod, és ne legyél proxy, NAT, webcache vagy Internetmegosztó mögött. Ha igen, akkor a hálózati adminisztrátorral kell egyeztetned, hogy megnyisd az internet felé a szervert. (Ha csak LAN-on akarod futtatni, ezek a lépések nem szükségesek.)
- Ha élő hangot vagy videót akarsz sugározni a Steamcasttal, akkor szükséged lesz az ehhez szükséges eszközökre, amelyek forrást tudnak küldeni a szervernek. Az ajánlott és tesztelt programok: Oddcast, SHOUTcast DSP, SAM Broadcaster, sc_nsv, NSVGui. Más SHOUTcast vagy Icecast-kompatibilis adásprogramok is működhetnek, de ez változhat.
⚠️ FIGYELMEZTETÉS
Ez a szoftver jelenleg béta állapotban van. A béta állapotú szoftvert a szerzője a lehető legjobb tudása szerint letesztelte, azonban további tesztelés szükséges annak biztosítására, hogy más környezetekben vagy helyzetekben is megfelelően működjön.
Ez a szoftver olyan állapotban van, hogy biztonsági kockázatot jelenthet azon a rendszeren, amelyen fut, vagy akár maradandó károkat is okozhat a használt eszközökön.
A szoftver használatával elfogadod, hogy vállalod ezeket a kockázatokat, és nem tartod felelősnek sem a szerzőt, sem az általa felhatalmazott forgalmazókat a használatából eredő bármilyen következményért.
3. Konfiguráció (Config)
A Steamcast konfigurálása
A konfiguráció jelenleg meglehetősen egyszerű. Minden beállítás egy *.conf fájlban történik. A telepítési könyvtáradban megtalálod a konfigurációs sablont, amelynek neve steamcast.conf.
Egyszerűen nyisd meg ezt a fájlt a kedvenc szövegszerkesztődben.
Windows alatt javaslom a Notepad-ot, Unix rendszeren pedig a vi, emacs vagy pico használatát (különösen, ha kezdő vagy az Unix világában).
A konfigurációt jelenleg a szerver indítása előtt kell elvégezni. Később lehetőség lesz a fájlból vagy futásidőben történő konfigurálásra. A jövőben tervezek egy Windows eszközt biztosítani, amely rendkívül egyszerűvé teszi a konfigurálást – arra az esetre, ha a fájlok szerkesztése problémát okozna.
Konfigurációs fájl
A Steamcast nagyon hasonlít az Icecast és Shoutcast szerverekhez: lehetővé teszi, hogy források (DJ-k, AutoDJ-k, relay-ek) csatlakozzanak hozzá, és a hallgatók egy adott porton keresztül hallgathassák a streamet.
Alap információk
- A
;-tel kezdődő sorok kommentek, vagyis magyarázó szövegek, nem kerülnek feldolgozásra.
- Az
= utáni értékek az adott opcióhoz tartozó beállítások.
- A dokumentumban több blokk van: szerver beállítások, felhasználói adatok, forrás (source) konfiguráció, könyvtár (directory) beállítások, haladó (advanced) opciók.
Szerver beállítások
- PortBase=8000
A Steamcast ezen a porton fogadja a hallgatói kapcsolatokat (pl. http://szerver:8000).
- LogFile=steamcast.log
Ide kerülnek az általános logok. Lehet dátum alapú sablonokat használni.
A dokumentáció szerint a logfájlokhoz (például LogFile és W3CLogFile) beállíthatsz olyan mintát, ami minden indításkor / naponként / óránként új fájlt generál. A részletes LogFile beállítások az oldal alján találhatók.
Elérhető változók (gyakoriak):
%m → hónap (01–12)
%d → nap (01–31)
%Y → év (pl. 2025)
%H → óra (00–23)
%M → perc (00–59)
%S → másodperc (00–59)
%w → hét napja (0 = vasárnap, 6 = szombat)
(Az Icecast és Steamcast hasonló változókat használ, gyakorlatilag a strftime szabvány szerint.)
Napi logfájl
LogFile=%Y-%m-%d-steamcast.log
<!-- 2025-08-31-steamcast.log -->
Óránkénti logfájl
LogFile=logs/%Y-%m-%d-%H.log
<!-- logs/2025-08-31-19.log -->
Percenkénti logfájl
LogFile=logs/%Y-%m-%d-%H-%M.log
<!-- logs/2025-08-31-19-47.log -->
Heti logfájl
LogFile=logs/week-%w.log
<!-- logs/week-0.log (vasárnap), logs/week-1.log (hétfő), stb. -->
- W3CLogFile=steamcast-w3c.log
W3C szabványos log, webstatisztikákhoz. A W3C is támogatja a változó alapú fájlnévsablonokat, így a logfájlokat dinamikusan tudja elnevezni az előzőekben már bemutatott módon, például dátum vagy idő alapján.
- MimeFile=mime.types
MIME típusokat tartalmazó fájl, fontos a stream formátum felismeréséhez és on-demand szolgáltatáshoz.
- UserFile=steamcast-users.xml
Felhasználók, bannok és jogosultságok tárolása. Ha nem létezik, a szerver létrehozza.
- ScreenLog=Yes
Kiírja a logokat a konzolra is, ha engedélyezve van (nem csak fájlba).
- RealtimeLog=Yes
Valós idejű statisztikák kiírása a képernyőre.
- YPLog=Yes
A „Yellow Pages” (pl. shoutcast.com directory) használat logolása.
- PidFile=steamcast.pid
Processz ID fájl helye (Linuxban szolgáltatáskezeléshez kell).
- NameLookups=No
Ne végezzen reverse DNS lekérést (jobb teljesítmény nagy forgalomnál).
- ClientTimeout=30
Ha nincs elérhető forrás, ennyi másodpercig maradhat kapcsolódva egy hallgató.
Felhasználói beállítások
- AdminUser=admin
Egyedi felhasználónév, mely nem egyezhet a csatlakozáshoz használt felhasználónévvel.
- AdminPass=hackme
Alapértelmezett jelszó, mely csak teszteléshez ajánlott. Éles környezetben ne felejtsd el megváltoztatni. Ugyanazok a szabályok vonatkoznak erre is, mint a felhasználónévre, ezért egyedinek kell lennie.
Forrás beállítások
Itt határozzuk meg, milyen stream források (DJ-k, relay-ek) csatlakozhatnak.
- SourceMount#
Egy mount pont definiálása (pl. /live). A hallgatók ezen érik el a streamet: http://szerver:8000/live.
- SourceUser#
A mount-hoz tartozó forrás (encoder, AutoDJ) felhasználóneve.
- SourcePass#
A mount-hoz tartozó forrás (encoder, AutoDJ) jelszava.
- SourceUserMax#
Az egyidejű hallgatók maximális száma.
- SourceIPUserMax#
Hány kapcsolat engedélyezett egy IP-ről (0 = nincs limit).
- SourceAvgBitrateLimit#
Átlagos bitráta limitálás (ha túllépi, letiltja a forrást).
- SourceRelay#
Relay stream beállítás (másik szerver streamjét veszi át).
➝ Pl.: SourceRelay2=http://freestream.hu:8240/ebm
- SourceDisconnectWait#
Mennyi ideig várakozzon újracsatlakozás előtt ha a Relay megszakad.
- SourceIntro#
Intro fájl minden hallgatónak a stream előtt.
- SourceBackup#
Tartalék mount, ha az elsődleges elérhetetlen.
- SourceNameFormat#
Stream neve a kliensekben (pl. Winamp, VLC).
- SourceIsDefault#
Ez a mount legyen-e az alapértelmezett (http://szerver:8000/).
- SourceIP#
Megadható, hogy melyik IP-re listázódjon a mount.
- SourceAuth#
HTTP Basic Auth védelem (még nem teljesen működő funkció, ezért kizárólag saját felelősségre használható).
- SourceListenerTimer#
Mennyi ideig lehet egy kliens csatlakozva (0 = korlátlan).
- SourcePublic#
A stream listázható legyen-e a könyvtárakban. (Default / Always / Never)
- SourcePublicRelays#
A relay-ek listázhatók legyenek-e.
- SourceMetaInterval#
Metaadat intervallum (ICy protokollnál, pl. dalcím frissülés).
Alapértelmezett: 8192 bájt.
- SourceShowLastSongs#
Mennyi metaadat-frissítést tartson meg (pl. dalcím előzmények).
- SourceDirectory#
További könyvtár (YP) címlisták, ahova bejelentkezhet.
Könyvtárak
- Hostname=localhost
A szerver saját hostneve vagy IP-je. Fontos, ha listázni szeretnéd külső könyvtárakban.
- DefaultDirectory=https://www.steamcast.com
Directory szerverek (pl. Steamcast saját, ami nem tartalmaz külön elérési útvonalat, hanem a kezdőoldalon tölti be a könyvtárat. Továbbá megadható Icecast / SHOUTcast könyvtárak).
Ha több könyvtárat szeretnél megadni, az alábbiak szerint kell eljárnod:
DefaultDirectory=https://www.steamcast.com
DefaultDirectory=https://dir.xiph.org
DefaultDirectory=https://directory.shoutcast.com
Haladó beállítások
- ServIP=ANY
Mely IP-khez kötődjön a hallgatói port.
- SrcIP=ANY
Mely IP-ről engedje a forrás (DJ/encoder) csatlakozást.
- ServProtocolFamily=UNSPEC
IPv4, IPv6 vagy mindkettő (UNSPEC = mindkettő).
- ThreadPool=0
- Hány szálat használjon a kliensekhez. (0 = automatikus a CPU magok alapján).
- Include=./myextra.conf
Más konfigurációs fájlok betöltése.
- SCSourcePort=8001
A források (DJ-k, AutoDJ) ezen a porton keresztül csatlakozhatnak.
LogFile beállítások
A LogFile konfigurációs elem képes változókat fogadni, így a Steamcast futás közben dinamikusan tud logfájlt generálni. Az elérhető változók teljes listája a következő:
%a – Rövidített hétköznapnév
%A – Teljes hétköznapnév
%b – Rövidített hónapnév
%B – Teljes hónapnév
%c – Dátum és idő a helyi beállításoknak megfelelően
%d – A hónap napja decimális számban (01–31)
%H – Óra 24 órás formátumban (00–23)
%I – Óra 12 órás formátumban (01–12)
%j – Az év napja decimális számban (001–366)
%m – Hónap decimális számban (01–12)
%M – Perc decimális számban (00–59)
%p – Helyi AM/PM jelzés a 12 órás időhöz
%S – Másodperc decimális számban (00–59)
%U – Az év hete (decimális), a vasárnap az első nap (00–53)
%w – A hét napja decimális számban (0–6; a vasárnap = 0)
%W – Az év hete (decimális), a hétfő az első nap (00–53)
%x – Dátum a helyi formátum szerint
%X – Idő a helyi formátum szerint
%y – Év évszázad nélkül, decimális számban (00–99)
%Y – Év évszázaddal, decimális számban
%z, %Z – Időzóna neve vagy rövidítése (operációs rendszertől függően)
%% – Százalékjel
Ha bővebb információra van szükséged a dátumformázási változókról, nézd meg a rendszered strftime implementációját.
Használati példák:
LogFile=%Y-%m-%d-steamcast.log
Ezzel a beállítással a logfájl naponta új nevet kap, így időrendi sorrendben könnyen kezelhető.
Ezzel a beállítással a logfájl évente váltódik.
Természetesen ennek a technikának sokféle változata létezik, amellyel a logrotációt az igényeidnek megfelelően alakíthatod.
A Steamcast alapértelmezés szerint mindent egyetlen logfájlba ment.
Fontos megjegyezni, hogy a Steamcastnak olyan felhasználóként kell futnia, aki rendelkezik írási jogosultsággal a logfájl könyvtárában.
4. A Steamcast indítása (Starting Steamcast)
A Steamcast kétféleképpen indítható el. Egyszerűen megnyithatod vagy futtathatod a telepítési könyvtárban található steamcast futtatható fájlt. Ez elindítja a Steamcastot, és betölti a konfigurációját az alapértelmezett helyről.
Ez a hely az aktuális könyvtár, ahol éppen tartózkodsz, vagy egy hivatkozott útvonal. A program a steamcast.conf fájlt keresi, hogy betöltse a konfigurációs értékeket. Ha nem találja a fájlt, akkor az alapértelmezett beállításokat használja.
A Steamcast indítható konzolos környezetben is, ahol a konfigurációs fájl helyét paraméterként adhatod meg. (Például: ./steamcast steamcast.conf)
A Steamcast ebben az esetben az itt megadott elérési útvonal és fájlnév alapján keresi a konfigurációt. Ha nem találja, akkor szintén az alapértelmezett beállításokat veszi fel.
Unix környezetben a szervert a háttérben is el lehet indítani. Általában a legjobb módja ennek a következő parancs kiadása a konzolban:
./steamcast > /dev/null &
Ez elindítja a szervert, és eldobja a kimenetet. Ha szeretnéd figyelemmel kísérni, hogy mit csinál a Steamcast, akkor egy screen környezetben is futtathatod, vagy követheted a steamcast.log fájlt (vagy bármely más naplófájlt, amit konfiguráltál).
Egy praktikus mód például:
5. A Steamcast leállítása (Stopping Steamcast)
Windows alatt:
A Steamcast leállításához egyszerűen nyisd meg azt a konzolablakot, amelyben fut, majd a billentyűzeteden nyomd meg a CTRL+C kombinációt.
./steamcast > /dev/null &
Unix alatt:
Több lehetőséged van:
- Használhatod a
CTRL+C-t, ha az aktív program az ablakban a Steamcast.
- Ha a program a háttérben fut, akkor jelezni kell a szervernek, hogy lépjen ki. Ehhez használhatod a PID-t, amelyet a logban vagy a megadott pid fájlban találhatsz (alapértelmezett: steamcast.pid).
Ezt az azonosítót használhatod a Steamcast irányítására. A konzolodon egyszerűen írd be:
Ahol a pid a folyamat azonosítója, ami a pid fájlban vagy a logban van tárolva.
Ha biztos vagy benne, hogy csak egy Steamcast példány fut (vagy legalábbis kellene), használhatod a killall parancsot is:
Ez a parancs különösen hasznos, ha valamilyen okból a Steamcast még mindig futhat, és nem akarod, hogy fusson, de nem tudod a PID-jét, mert esetleg elindítottad a Steamcastot, miközben már futott egy példány, és az felülírta a pid fájlt.
6. Verziótörténet (Version History)
1.0.1 decennium
- Korrigálva a versenyhelyzet a Receivereknél.
- Javítva a küldött/fogadott bájtok pontatlan számlálása.
- Javítva a metaadat-escape problémák.
- Korrigálva a versenyhelyzet a MountList-ben.
- Hozzáadva a terminációs jelek kezelése.
1.0.1 decennium
- Átdolgozott Thread Pool, már nem csak a Receiverekre van specifikálva.
- A socketek most osztály által kezelve.
- Jobb kezelés a chunked kapcsolatoknál.
- Javított bejövő stream feldolgozás.
- Kiegyensúlyozott lecsatlakoztatás a kiutasított receivereknél.
- Függőben lévő mountok javítása.
- Függőben lévő publikációk javítása.
- Függő Name Lookup Thread javítása.
- Javított metaadat-kezelés.
- Versenyhelyzetek javítása publikációknál.
- Versenyhelyzetek javítása receivereknél.
- Relay újrapróbálkozás üzenetek időzítési hibáinak javítása.
- Mount most jobban reagál a relay változásokra.
- Javítva a tévesen azonosított receiver disconnect üzenet.
- ServIP most már több IP-re is hallgat.
- PortBase most már több Portot is tud kezelni.
- Socket Timeout konfigurálható a SocketTimeout segítségével.
- Hostname konfigurálható a Webpanelen keresztül.
1.0.0 decennium
- Jobb build azonosítás
- 64 bites kompatibilitás Windows-on (az installer automatikusan felismeri és telepíti a megfelelő buildet)
- Javított memória-kezelés a buffereknél
- Javítva a threading versenyhelyzetek
- Javított logolási képességek
- Függőben lévő publikációs thread-ek javítása
- Ügyfélkérések engedélyezése akár 10KB-ig
- Jobb űrlap- és kéréskezelés
- Jobb AJAX frissítés (Chrome-ban sokkal stabilabb)
- Javított helyi socket binding kimenő kérésekhez
- Flash használata csak, ha a böngésző nem támogatja a formátumot
- Javított string-hiba konverzió
- Memória-kezelés javítás ICY metaadat támogatásnál
- Konfiguráció az első elemet használja alapértelmezettként, ha csak egy elem szükséges, de több van
- Thread lock javítások
- Hatékonyság javítása a kliens válaszkódoknál
- Bitrate információ most már valós idejű
- Jobb kliens indítás, ha a buffer méret nincs helyesen detektálva
- Buffer hatékonyság javítás
- Forrás thread-ek végtelen felfüggesztésének javítása rossz hálózati körülmények esetén
- Memóriaszivárgás javítása SHOUTcast source socketnél
- GCC 4.8 most már kötelező minden Steamcast buildhez (GLIBC 2.15)
- Shutdown teljesítmény javítás
- Memóriaszivárgás javítása W3C logolásban
- Kiegyensúlyozott disconnect-ek most már nem mutatnak hibaüzenetet
- Hosszú távú buffer stabilitás javítása
- Metaadat szűrés SHOUTcast 1 szerverekről, amelyek Steamcast-et relay-elnek (SHOUTcast crash javítás)
- Packet buffer és reader megfelelő resetelése, ha a források kiesnek
- Panel konzisztencia javítások és stílus korrekciók
0.9.9 beta
- Teljes átdolgozás a magban, most már 10K hallgató kezelése 128kbps-en Windows 8 rendszeren, 4 maggal.
- Az Ogg folytató csomagokat most már megfelelően kezeli a metaadatok és az első csomag esetén.
- Az Ogg bejövő puffere megnövelve a legnagyobb lehetséges csomagméretre.
- Jobb szálkezelési modell minden belső szolgáltatásnál.
- Javított ICY protokoll felismerés.
- Sok versenyhelyzet (race condition) javítása.
- Nagyobb teljesítményű szálzárak.
- Minden kéréshez jobb egyedi azonosító társítása.
- Statisztikai számlálók javítása.
- Teljesítményjavítás a naplózásban.
- HTML5 validációhoz panel finomhangolása.
- Minden hallgató kilövése, amikor a Steamcast leáll.
- Jobb memória kezelés.
- Sok apró javítás a teljesítmény és stabilitás érdekében.
?icy=y – a mount rögzítése ICY protokollra
?http=y – a mount rögzítése HTTP protokollra
- Teljesen új Felhasználókezelő panel
- A szerver összes beállításának konfigurálása a Webpanelen keresztül
- Alapértelmezett mount beállítások hozzáadva. Használható
Default<OptionName> formában a konfigurációban vagy a panel fülön admin bejelentkezéskor.
- Több forrás felhasználói definíció a Web Panelen keresztül
- Füles felület
- Mount Manager felhasználói definíció – egy felhasználó több mountot is kezelhet.
- CIDR és IP alapján történő tiltás/csatlakozás szűrés
- Mountok hozzáadása valós időben.
- Külső Steamcast linkek hozzáadva
- A build dátuma könnyebben olvasható
- Verzióinformáció hozzáadva a „Névjegy” oldalhoz
- Metaadat továbbítás XML táblázatba támogatott formátumok esetén
- Hallgatói hitelesítés újra hozzáadva
- Értesítési opciók lehetővé teszik, hogy a hitelesítési script-eket új kapcsolatok esetén értesítse az Icecast2 értesítési képességek alapján
- Kiadási lista részletező fül minden mountnál
- Mount-specifikus felhasználókezelés
- Backup mount funkció visszaadva (azonos kódolás szükséges, különben nem működik)
- HTTP/1.1 szerver támogat minden jelenlegi HTTP 1.1 funkciót, beleértve a keep-alive-t
- Forrás HTTP PUT kérésből (ICE/1.0 forrásra visszaesés)
- Transfer-Encoding chunked támogatott a korlátlan streaminghez HTTP/1.1 alapú kliensnek
- Alap Windows szolgáltatás támogatás
- Linux daemon képesség
-k kapcsolóval
- IPv6 támogatás (kísérleti)
- Digest Authentication minden HTTP/1.1 kapcsolathoz (biztonságosabb, mint a basic)
- Hallgatói táblázat rendezése
- Alap session kezelés (kliensnek engedélyeznie kell a cookie-t)
- Konfiguráció nélküli mód – parancsablak linket ad a panelhez való bejelentkezéshez és konfiguráláshoz
- A Steamcast most automatikusan menti a konfigurációt 5 másodperccel az utolsó változtatás után
steamcast.ban már nem szükséges, használja a steamcast-users.xml vagy a Felhasználókezelő panelt
0.9.8 beta
- Újrakezdés!!! A Steamcast minden aspektusának teljes átírása.
- A weben és a felhasználók által jelentett biztonsági hibák javítása.
- Jobb memória kezelés a stabilitás növelésére.
- Újabb C++ szabványok használata, minden régi C kód fokozatosan kivezetve. Puffertúllépések a múlté.
- Korlátok most már Mount-specifikus konfigurációban
- Forráskonfigurációhoz szám hozzáadása a tulajdon meghatározásához (könnyebb olvasás)
- Mount pufferek intelligensek bizonyos audio formátumokhoz (MP3, AAC, OGG)
- FLV, HTML5 támogatás
- Web Panel frissítések és karbantartás
- Naplókezelés szálkezelésre átállítva – teljesítmény növelés
- Számos szálkezelési javítás a deadlock és memória túlcsordulás elkerülésére
- Konfigurációs változások – ellenőrizze a
steamcast-default.conf fájlt. Régi 0.9.75 vagy korábbi konfigurációk nem működnek megfelelően.
- OnDemand támogatás eltávolítva (egyelőre) – újraírás szükséges
0.9.75 beta
- Különböző belső szál felfüggesztési problémák javítása.
- Session elkülönítési problémák javítása a webes felületen.
- Tail log javítása, az esemény sor pontosabb megjelenítése.
- Több célpont hozzáadása a kliens listában végrehajtott műveletekhez
- Hallgatók áthelyezésének lehetősége különböző forrásokra
- Előre csomagolt fájlok javítása
*nix rendszerekhez
0.9.74 beta
- Konfiguráció betöltés most pontosabban elemzi a fájlokat, a sor eleji szóközök figyelmen kívül hagyva.
- SourceRelay most már több helyre beállítható, hibák esetén a szerver végigpróbálja a listát a működő relay megtalálásához
- On Demand képesség hozzáadva – új konfiguráció részletekért
- On Demand fájl index hozzáadva a mount oldal nézethez
- Mime Types fájl hozzáadva – használja a helyes Steamcast konfigurációhoz
- Automatikus kiterjesztés hozzárendelés mount nevekhez kiterjesztés nélkül
- SHOUTcast ice directory protokoll handler frissítve, kisebb logikai problémák javítása, amelyek idő előtt lezárták a listázó sessiont
- Több naplózás a kapcsolati aktivitáshoz hibakereséshez
- Steamcast alapértelmezett konfiguráció neve most a bináris névből származik
- WIN32 szolgáltatások támogatása – Steamcast telepíthető szolgáltatásként a
-k kapcsolóval
- Matematikai hibák javítása az időformátumban
- Puffertúlcsordulás javítása forrás érvénytelen jelszó esetén
- Különböző kliens szinkronizációs problémák javítása
- Mountok szerkesztése web felületről
- MetaInterval helyesebb kezelése – relék bármilyen metaadat intervallumot használhatnak
- MetaInterval konfigurációs elem hozzáadva minden forráshoz
- SourceDisconnectWait hozzáadva – beállítható, mennyi ideig próbálkozik újracsatlakozással relay módban
- LogFile konfiguráció frissítve új változó bejegyzés lehetőséggel
- Hallgatói adat zárás és reverse DNS problémák javítása
- HTTP POST, HEAD, TRACE támogatás
- Wildcard támogatás a tiltásnál – * és ? használata
- Hibás socket tesztelési problémák javítása
- Linux build statikusan compile-olva libcstd++ ellen a nagyobb kompatibilitásért
- Web felület stabilitás javítások
- Windows telepítő létrehozva
0.9.73 beta
- Javítva a probléma, amikor több könyvtárbejegyzés nem jelent meg a konfigurációs fájlokban Linuxon.
- Belső puffer rögzítve 1MB-ra, a felhasználás szükség szerinti módosításához használja a SourceBuffUtil-t.
- A kliens streamek most gyorsabban indulnak, mivel az audio adatokat a csatlakozáskor küldi, nem várva, hogy a forrás szál kezelje az új klienst.
- A konfigurációs fájl most jelzi, hogy az admin jelszavának különböznie kell az encoder jelszavától SHOUTcast kompatibilitási módban.
- A SourceAvgBitrateLimit most leállítja a forrásokat, ha túllépik a korlátot – ez jobb módszer, mint a régi „kick source” módszer. További információkért olvassa el a minta konfigurációs fájlt. SOK TESZTELÉS SZÜKSÉGES!
- FreeBSD összeomlási hibák javítva.
0.9.72 beta
- A szálkezelési modell módosítva, már nem indít új szálakat a kapcsolatok kezelésére. A Steamcast most szálpoolt használ, ami alapos tesztelést igényel. További információ: ThreadPool konfigurációs elem.
- Unix build most külön ágazatokra van bontva (Linux, FreeBSD), hibakeresési és veremméret különbségek miatt.
- Bitráta-érzékelés most az utolsó 15 mp átlagát használja, ami biztonságosabb. Állítsa be a bitráta korlátokat kicsit magasabbra a valódi igényhez képest az adatcsúcsok miatt.
- A bitráta-érzékelés most már a kliens listára és a szerver teljes sávszélesség használatára is alkalmazva van.
- Hozzáadva: MaxBandwidth – lehetővé teszi a puha korlátozást a párhuzamos sávszélesség használatra.
- Javítva: összeomlás jelszó visszajelzésnél SHOUTcast forrásoknál.
- Új admin védett XML dokumentum, több statisztikai adatot tartalmaz.
- Új src paraméter kezelés XML tartalomhoz: a GET kérésben megadható a mount név, és csak az adott forrás adatai érhetők el.
- Hitelesítés hozzáadva URL-elemzőkhez/kapcsolati képességekhez (pl.:
http(s)://user:pass@host).
- A Steamcast most követi a metaadat változásokat jelentés céljából.
- Hozzáadva: Last Played felület és ShowLastPlayed konfigurációs elem.
- A 'Mount' példányokat a naplózásban a tényleges mount név váltotta fel.
- Inaktív forrás tábla hozzáadva az admin felülethez.
- Weboldalak és admin funkciók hitelesítése most a forrás definíciókat követi.
- A források most azonnal engedélyezhetők/feloldhatók.
- Javítva: OGG lejátszás olyan lejátszókban, amelyek az icy-metadata fejlécet továbbítják, bár nem használják.
- Javítva: érvénytelen OGG oldalak okozta hibák forrás encoder-eknél.
- A táblázatok hostneveinek csonkolása most elöl történik, nem a végén.
- Hallgató/forrás számok fákról olvasva, a régi módszer helyett.
- Flash kompatibilitás hozzáadva (lásd a konfigurációs fájlt).
- Hibás RealTime Display megjelenítés javítva.
0.9.71 beta
- Statisztikai adat tárolás újra vizsgálva és módosítva.
- Egyedi hallgatószám hozzáadva yp.shoutcast.com kompatibilitás miatt.
- SourceAuthMax hozzáadva, lehetővé teszi az egyedi felhasználónkénti kapcsolatkorlát beállítását (csak SourceAuth engedélyezés mellett).
- Javítva: korai „No Data Flow Timeout” probléma bizonyos Unix rendszereken.
- Log funkciók egyes részei nem voltak thread-safe (hozzáadva Mutex zárolás).
- Egyedi hallgatószám hozzáadva a yp.shoutcast.com teljes kompatibilitásához.
- Admin oldalak és funkciók most kivételek a UserAgent ellenőrzés alól, jobb kompatibilitás Icecast2 eszközökkel.
- Icecast2 stílusú YP frissítés most POST módszert használ.
- Javítva: plusz carriage return/line feed párok miatt a Steamcast szerverek nem jelentek meg steamcast.com-on.
0.9.7 beta
- Hálózati interfész kezelő kód: megadható, mely IP-khez kössön a Steamcast.
- Forrás IP megadható Source Mount-ok alatt, ez a mount lesz az alapértelmezett az adott IP-hez (több mount is megjelenhet shoutcast.com-on). SourceIsDefault letiltva SourceIP használatakor.
- Javítva: forrás számláló relaying közben, a dropolt mountok miatt néha hibás számok.
- Kis kód tisztítás, élő stream funkciók finomítása.
- HTTP hitelesítés interfész hozzáadva élő streamekhez (lásd SourceAuth és steamauth.txt).
- Encoder felhasználók admin jogainak eltávolítása.
- Kliens és forrás időkorlátok adatvesztés esetén hozzáadva.
- Banned és VIP listák mentése és betöltése.
- SourceBackup hozzáadva: a kliensek a fő forrás kiesésekor egy aktív forráshoz kerülnek (nem OGG stream esetén). Kísérleti funkció.
- /listen.asx virtuális fájl hozzáadva a playlist generáláshoz Windows Media Player számára.
- Icecast2 forrás támogatás javítva (0.9.61-ben megsérült).
- Icecast2 Mpeg metaadat támogatás hozzáadva (mindkét protokoll teljes támogatása).
- Statisztikai egész szám problémák javítva.
0.9.61 beta
- status.xml dokumentum hozzáadva (kódolás: iso-8859-1).
- HTTP Response Header puffertúlcsordulások javítva (bizonyos Unix rendszereket érintett).
- Kérés fejléc kezelés puffertúlcsordulás problémák javítva.
- ice yp modul frissítve: Max Listeners, Content Type, Sub Type, Average Listening Time, Long Tuneins, Tuneins paraméterek.
- Névfeloldás most szolgáltatás szálként fut.
- SHOUTcast.com YP kód klaszterez és támogatja az icy-backup-ot.
- YP kód újraírása hatékonyabb kódkezelés érdekében.
- WSA kód WIN32 verzióhoz tisztítva.
- SHOUTcast Meta StreamUrl teljes mértékben kezelt, backupok is tiszteletben tartva.
- Realtime státusz megjelenítés hozzáadva, RealtimeLog konfigurációs opcióval.
- ScreenLog konfigurációs opció hozzáadva.
- Relaying támogatja az ogg/vorbis-t (néhány mp3 metaadat hiba még fennáll).
- Unix leállítás újra vizsgálva és újrakódolva.
0.9.6 beta
- ice-audio-info mostantól átadva Icecast2 könyvtáraknak és streamnek.
- Jobb OGG támogatás, OGG fogadás finomhangolva. Néhány rész még fejlesztésre szorul.
- PidFile konfigurációs változó hozzáadva.
- ClientTimeout konfigurációs változó hozzáadva.
- SourceBuffUtil konfigurációs változó hozzáadva.
- YPLog konfigurációs változó hozzáadva.
- Startup fejléc frissítve a fájl és Steamcast licenc létezésének jelzésére.
- SourceRelay konfigurációs változó és relaying támogatás hozzáadva (yp végén még nem teljes, OGG nincs támogatva).
- Kliens deadlock javítva nagy forgalmú szervereken.
- Különféle kód optimalizálások.
- Sleep kód eltávolítva, ami problémákat okozhatott nagy forgalmú Unix szervereken (forrásnál lockup lehet).
- Szálkezelés optimalizálva (még sok teendő).
- Verzióleírás hozzáadva.
- updinfo crash hiba javítva.
- Socket újrahasználat engedélyezve, így újraindítható a szerver TCP WAIT jelzés várása nélkül.
TODO: Linux build DNS feloldás okozhat összeomlást – YP kód kikapcsolása javasolt, gethostbyaddr nem thread-safe.
0.9.5 beta
7. Adminisztráció (Administration)
Az adminisztrációs felület böngészőn keresztül érhető el ip cím vagy hosztnév és port szám alapján, mely a konfigurációs fájlban található. Az alapértelmezett hosztnév localhost, a port meg 8000. Fontos megjegyezni, hogy amennyiben több rádiószervert (Icecast / SHOUTcast) futtatsz egy rendszeren (legyen az Windows vagy Unix), változtasd meg a rádiószerverek port számát, mert ütközés léphet fel a beállított alapértelmezett 8000 - es port miatt, minek következtében a közvetítés leállhat, vagy a legrosszabb esetben el sem indul..
Alapértelmezett beállításokkal az adminisztrációs felület megnyitása:
Amennyiben virtuális szerveren futtatod (VPS), beállíthatsz biztonságos kapcsolatot is és a localhost helyett használhatod a szerver DNS nevét.
Például:
https://freestream.hu:8000
Első bejelentkezéskor az alapértelmezett felhasználónevet (admin) és jelszót (hackme) kell megadni, amit a bejelentkezés után az Admin/Users menüpont alatt módosíthatsz. Fontos megjegyezni, hogy a felhasználónév és jogosultság a webes felületen nem módosítható és manuálisan sem ajánlott.
A bejelentkezési adatok megadása után a kezdőlapra irányítja a felhasználót, ahol a hozzáadott rádióállomások, illetve Relay szerverek jelennek meg. Az első bejelentkezés után ez az oldal még üres:
Első lépésként a már korábban említett jelszó módosítást ajánlott elvégezni, hogy ezzel többé ne kelljen foglalkozni. Az Admin menüpont a kezdő felhasználókat picit félrevezetheti, mivel nem csak egy legördülő menüt biztosit, hanem az Admin gombra kattintva a rádiószerver által létrehozott alapértelmezett konfigurációt jeleníti meg.
Jelszó módosításához az Users (Felhasználók) menüpontra kell kattintani.
Kattints a felhasználóra, amelyiknek a jelszavát szeretnéd módosítani. A következő ablakban a jelszó módosítása mellett a jogosultság, illetve a hozzáadott rádióállomások is szerkeszthetők.
Minden jelszó módosítás után a szerver kidobja a felhasználót és újból be kell jelentkezni, de már az új jelszóval.