Konfiguracja IceCast

    W tym rozdziale opisano każdą sekcję pliku konfiguracyjnego. Wyodrębniono poszczególne zagadnienia:


    Ograniczenia

    <limits>
    <clients>100</clients>
    <sources>2</sources>
    <!-- <threadpool>5</threadpool> -->
    <queue-size>102400</queue-size>
    <client-timeout>30</client-timeout>
    <header-timeout>15</header-timeout>
    <source-timeout>10</source-timeout>
    <burst-on-connect>1</burst-on-connect>
    <burst-size>65536</burst-size>
    </limits>

    Ta sekcja zawiera parametry ograniczeń serwera, które zazwyczaj nie muszą być zmieniane. Należy modyfikować te ustawienia z pełną świadomością.


    clients

    Liczba możliwych do zrealizowania połączeń z klientami. Słuchacze są również klientami, tym niemniej pod pojęciem połączenie klienckie rozumie się również zapytanie o zawartość statyczną (np. panel administracyjny) jak też zapytania o statystyki. To ustawienie definiuje całkowitą liczbę połączeń z serwerem (nie z pojedynczym źródłem).


    sources

    Maksymalna liczba podłączonych do serwera źródeł.


    threadpool (brak w 2.3.2)

    Liczba wątków uruchomionych w celu utrzymania połączeń z klientami. Należy zwiększyć tą wartość, jeśli przewiduje się dużą słuchalność. Zalecana wartość wystarczy do utrzymania małych i średnich stacji.


    queue-size

    Maksymalny rozmiar (w bajtach) kolejki klienta (słuchacza). U słuchaczy mogą występować opóźnienia, spowodowane np. problemami z połączeniem, w tym przypadku informacje są kolejkowane dla słuchacza. Jeśli rozmiar przechowywanych danych przekroczy ustaloną wartość, słuchacz zostanie rozłączony.


    client-timeout

    Ta wartość nie jest używana.


    header-timeout

    Maksymalny czas (w sekundach) oczekiwania na zapytanie przychodzące po połączeniu klienta z serwerem. Ta wartość nie powinna być zmieniana.


    source-timeout

    Jeśli źródło sygnału nie przesyła żadnych danych przez ustaloną tutaj liczbę sekund, źródło zostanie odłączone od serwera.


    burst-on-connect

    Buforowanie po stronie serwera. Ta wartość ustala wielkość bufora, w którym przechowywany jest fragment strumienia. Można w ten sposób zredukować opóźnienie pomiędzy źródłem a słuchaczem. Wiele odtwarzaczy zostało wyposażonych w podobną funkcję – zanim rozpocznie się odtwarzanie, lokalny bufor odtwarzacza musi zostać wypełniony. Wynikiem manipulacji tym parametrem – w zależności od odtwarzacza – może być zmniejszenie opóźnienia odtwarzanego dźwięku (lokalny bufor odtwarzacza zostanie wypełniony danymi z bufora serwera). Opóźnienie jest zależne od parametru bitrate. Przykładowo, dla strumienia jakości 128 kb/s, opóźnienie między źródłem a słuchaczem wynosi ok. 1,5 sekundy bez buforowania po stronie serwera ok. 3 sekundy przy włączonym buforowaniu. Jeśli opóźnienie ma być jak najmniejsze, można wyłączyć bufor serwera.


    burst-size

    Tym parametrem ustala się rozmiar (w bajtach) wewnętrzego bufora serwera. Domyślny rozmiar wynosi 64 kB (zazwyczaj taki również zdefiniowany jest w odtwarzaczach klientów), więc zmienianie tego parametru zazwyczaj nie jest potrzebne. To ustawienie dotyczy wszystkich źródeł.


    Uwierzytelnianie

    <authentication>
    <source-password>hackme</source-password>
    <relay-user>relay</relay-user>
    <relay-password>hackme</relay-password>
    <admin-user>admin</admin-user>
    <admin-password>hackme</admin-password>
    </authentication>

    Ta sekcja definiuje nazwy użytkowników i hasła używane w celach administracyjnych lub przy podłączaniu źródeł i serwerów retransmitujących.


    source-password

    Jawnie zapisane hasło używane przez źródło w celu połączenia z serwerem. Obecnie każde źródło musi zgłaszać się jako użytkownik o nazwie source. Być może zmieni się to w przyszłości.


    relay-user

    Nazwa użytkownika, która jest używana przez serwer główny i które powinien podać serwer pośredniczący przed zapytaniem o listę strumieni do retransmisji. Domyślnie: relay.


    relay-password

    Hasło, które jest używane przez serwer główny w przypadku konieczności wysłania listy strumieni do retransmisji sygnału.


    admin-user
    admin-password

    Nazwa użytkownika i hasło, używane w celu logowania się do interfejsu udostępnianego przez sieć. Więcej na temat administracji przez sieć można znaleźć w odpowiedniej sekcji tej dokumentacji.


    Ustawienia katalogu publicznego (YellowPages)

    <directory>
    <yp-url-timeout>15</yp-url-timeout>
    <yp-url>http://dir.xiph.org/cgi-bin/yp-cgi</yp-url>
    </directory>

    Ta sekcja zawiera wszystkie ustawienia potrzebne do wyszczególnienia informacji o strumieniach w katalogach publicznych zgodnych z serwerem Icecast. Można zdefiniować więcej wpisów, aby serwer był widoczny w *wielu* katalogach.


    yp-url-timeout

    Tą wartością należy ustalić czas, przez jaki serwer Icecast będzie oczekiwać na odpowiedź serwera katalogującego. Zalecana wartość powinna być odpowiednia w większości przypadków.


    yp-url

    Adres, używany przez serwer Icecast do komunikacji z serwerem katalogującym. Wartość tego ustawienia powinna zostać dostarczona przez właściciela serwera katalogującego.


    Dodatkowe ustawienia serwera

    <hostname>localhost<hostname>

    <!-- You can use these two if you only want a single listening socket -->
    <!-- <port>8000</port> -->
    <!-- <bind-address>127.0.0.1</bind-address> -->

    <!-- You may have multiple listen-socket elements -->

    <!-- Icecast-kh -->
    <listen-socket>
    <port>8000</port>
    <bind-address>127.0.0.1</bind-address>
    <shoutcast-mount>/mystream</shoutcast-mount>
    </listen-socket>

    <!-- Icecast 2.3.x -->
    <listen-socket>
    <port>8002</port>
    <bind-address>127.0.0.1</bind-address>
    </listen-socket>
    <listen-socket>
    <port>8003</port>
    <bind-address>127.0.0.1</bind-address>
    <shoutcast-compat>1</shoutcast-compat>
    </listen-socket>

    <hostname>localhost<hostname>
    <fileserve>1</fileserve>
    <server-id>icecast 2.3</server-id>
    <shoutcast-mount>/live.nsv</shoutcast-mount>

    Ta sekcja zawiera dodatkowe ustawienia serwera. Należy zauważyć, że dozwolone jest zdefiniowanie większej ilości wpisów sekcji listen-socket, w celu zdefiniowania interfejsów, na których ma nasłuchiwać serwer. Jeśli dla danego gniazda nie został zdefiniowany żaden adres, będzie ono dostępne na wszystkich interfejsach. W większości wypadków nie ma potrzeby definiowania adresów dla poszczególnych gniazd. Obecnie w wersji oficjalnej serwer obsługuje do 20 gniazd, być może w następnych wersjach liczba ta zostanie powiększona.


    port

    Port protokołu TCP, używany do przyjmowania połączeń klienckich.


    bind-address

    Tym parametrem można zdefiniować adres interfejsu, na którym ma nasłuchiwać serwer. Jeśli nie zostanie zdefiniowany, gniazdo zostanie przypisane do wszystkich interfejsów.


    shoutcast-compat

    Parametr dodatkowy, wskazujący że ten konkretny port będzie działać w trybie zgodności z klientami źródłowymi SHOUTcast. Z powodu różnicy w sposobie przyłączania źródeł, należy skonfigurować przynajmniej jedno gniazdo jako "zgodne ze specyfikacją SHOUTcast". Należy zauważyć, że w tym trybie tylko *dedykowane* źródła (zgodne z serwerem SHOUTcast) będą mogły zostać podłączone do tego portu. Słuchacze mogą podłączać się do każdego innego portu, który NIE został ustawiony w tryb zgodności z SC. Dla poprawnego funkcjonowania oprogramowania nadawczego zgodnego z SHOUTcast, nalezy zdefiniować gniazdo o numerze portu o jeden mniejszym, niż opatrzone flagą shoutcast-compat. Dla przykładu, jeśli port 8001 zostanie zdefiniowany jako "zgodny z oprogramowaniem SHOUTcast" (opatrzony flagą shoutcast-compat), należy zdefiniować również port 8000, który nie może być ustawiony jako *zgodny*. Proszę przejrzeć przykładowy plik konfiguracyjny w celu bliższego zapoznania się z omawianą kwestią.


    hostname

    Nazwa sieciowa lub adres IP używany przez serwery katalogujące i/lub do generowania plików list odtwarzania w wypadku gdy nagłówek hosta nie jest dostępny.


    fileserve

    Ta flaga uaktywnia usługi typowe dla serwera WWW, świadczone przez serwer Icecast2, dzięki którym mogą być udostępniane pojedyncze pliki. Wszystkie zasoby są udostępniane z uwzględnieniem ścieżki zdefiniowanej w parametrze <webroot/>, w sekcji <paths/>.


    server-id

    Nieobowiązkowy parametr, umożliwiający wymusić identyfikator (useragent) serwera. Domyślnym identyfikatorem jest icecast wraz z numerem wersji.


    shoutcast-mount

    Opcjonalny mountpoint, używany dla źródeł SHOUTcast. Ustawieniem domyślnym jest /stream, może to być jednak zmienione na inną nazwę źródła, np. z rozszerzeniem, jeśli jest wymagane.

    W wersji rozwojowej icecast-kh serwer automatyzuje czynności związane z przypisaniem dodatkowego portu (nie trzeba stosować flagi shoutcast-compat), o ile parametr zostanie zdefiniowany w sekcji <listen-socket/>.


    Ustawienia retransmisji

    <master-server>127.0.0.1</master-server>
    <master-server-port>8001</master-server-port>
    <master-update-interval>120</master-update-interval>
    <master-username>relay</master-username>
    <master-password>hackme</master-password>
    <relays-on-demand>0</relays-on-demand>

    <relay>
    <server>127.0.0.1</server>
    <port>8001</port>
    <mount>/example.ogg</mount>
    <local-mount>/different.ogg</local-mount>
    <username>joe</username>
    <password>soap</password>
    <relay-shoutcast-metadata>0</relay-shoutcast-metadata>
    <on-demand>0</on-demand>
    </relay>

    Ta sekcja definiuje ustawienia potrzebne do retransmisji z innego serwera. Można zdefiniować dwa rodzaje retransmisji: retransmisję całego serwera (z uwzględnieniem wszystkich źródeł) lub retransmisji pojedynczego strumienia. Retransmisja z uwzględnieniem wszystkich źródeł jest obsługiwana tylko pomiędzy serwerami zgodnymi z Icecast2.


    Retransmisja z uwzględnieniem wszystkich źródeł

    Poniższy diagram pokazuje, w jaki sposób dokonuje się tego typu retransmisji. Serwer 1 jest skonfigurowany przy pomocy parametrów <master-server/>, <master-server-port/>, etc., a Serwer 2 jest tym, z którego Serwer 1 będzie pobierać dane. Przy użyciu tego typu retransmisji, wszystkie strumienie z Serwera 2 będą przekazywane. Jeśli ma być retransmitowany pojedyńczy strumień, należy skonfigurować Serwer 1 do retransmisji pojedynczego strumienuia. W przypadku obydwu trybów, retransmisja rozpocznie się w momencie uruchomienia serwera pośredniczącego.

    icecast_relay_all.gif

    Skonfigurować serwer do trybu retransmisji wszystkich źródeł należy przez zdefiniowanie parametrów <master-server/>, <master-server-port/>, <master-update-interval/>, <master-password/> w pliku konfiguracyjnym. Serwer, z którego mają być retransmitowane dane, nie musi być konfigurowany w żaden specjalny sposób.


    master-server

    Adres IP serwera, którego źródła mają być retransmitowane.


    master-server-port

    Port protokołu TCP, którego źródła mają być retransmitowane.


    master-update-interval

    Serwer pośredniczący co jakiś czas wysyła do serwera żądanie informacji o wszystkich dostępnych źródłach. Tym parametrem należy ustalić, co jaki czas (w sekundach) będą wysyłane owe zapytania.


    master-username

    Nazwa użytkownika, ustalona na serwerze głównym. Używana przy wysyłaniu żądania listy strumieni do retransmisji. Domyślnie: relay.


    master-password

    Hasło, ustalone na serwerze głównym. Używane przy wysyłaniu żądania listy strumieni do retransmisji.


    master-redirect (icecast-kh)

    Gdy serwer działa jako slave, można użyć tego parametru aby serwer główny przekierowywał nowych słuchaczy na slave'a.


    master-redirect-port (icecast-kh)

    Ten parametr definiuje wysyłanie numeru portu do serwera głównego (wysyłany jest adres całego gniazda) na potrzeby uwierzytelniania.


    max-redirect-slaves (icecast-kh)

    Gdy serwer działa jako master, ten parametr ustala maksymalną liczbę serwerów przekazujących. Domyślnie 0.


    relays-on-demand

    Retransmisja na żądanie. Po zdefiniowaniu wartości 1 dla tego parametru serwer pośredniczący nie łączy się z serwerem głównym, dopóki żaden klient (słuchacz) nie połączy się z żądaniem dotyczącym retransmitowanego strumienia. Wartość domyślna: 0.


    Retransmisja pojedynczego źródła

    Poniższy diagram pokazuje sposóby działania retransmisji pojedynczego źródła. Serwer 1 jest skonfigurowany przy użyciu sekcji <relay/>, a Serwer 2 jest serwerem źródłowym, z którego Serwer 1 będzie pobierał strumień(ie) i retransmitował je. Używając tego typu retransmisji, można przekazywać tylko wybrane źródła, bez uwzględniania całego serwera.

    icecast_relay_specific.gif

    Retransmisja poszczególnych strumieni może odbywać się zarówno z serwerów Icecast2, jak też SHOUTcast i Icecast. Serwer jest konfigurowany do retransmisji pojedynczego strumienia poprzez definiowanie odpowiednich wpisów w sekcji <relay/> dla każdego przekazywanego strumienia. Serwer, z którego mają być przekazywane dane, nie wymaga żadnych specjalnych przygotowań.

    <relay>
    <server>127.0.0.1</server>
    <port>8001</port>
    <mount>/example.ogg</mount>
    <local-mount>/different.ogg</local-mount>
    <username>joe</username>
    <password>soap</password>
    <relay-shoutcast-metadata>0</relay-shoutcast-metadata>
    <on-demand>1</on-demand>
    </relay>

    server

    Adres IP serwera nadającego źródło do retransmisji.


    port

    Port TCP serwera nadającego źródło do retransmisji.


    mount

    Strumień (mountpoint), który ma być retransmitowany. W przypadku przekazu z serwera SHOUTcast, ustawienie powinno mieć wartość "/".


    local-mount

    Nazwa lokalnego mountpoint. Nazwa, która zostanie nadana źródłu na serwerze retransmitującym, niezależnie od serwera głównego.


    username
    password

    Serwer główny może wymagać uwierzytelniania – w takim wypadku wartościami tych parametrów powinny być nazwa użytkownika i hasło dla celów retransmisji, ustawiona na serwerze głównym.


    relay-shoutcast-metadata

    W przypadku retransmisji z serwera SHOUTcast, parametr definiuje, czy metadane (takie jak tytuły utworów) wysyłane przez serwer, mają być również przekazywane.


    on-demand

    Retransmisja na żądanie. Po zdefiniowaniu wartości 1 dla tego parametru serwer pośredniczący nie łączy się z serwerem głównym, dopóki żaden klient (słuchacz) nie połączy się z żądaniem dotyczącym retransmitowanego strumienia.


    enable (icecast-kh)

    Ustawieniem domyślnym jest 1, co oznacza że serwer po uruchomieniu próbuje nawiązać połączenie i przekazywać sygnał. Jeśli będzie tutaj ustawiona wartość 0, nazwa źródła zostaje zarezerwowana ale nic więcej się nie dzieje. Przydatne np. gdy źródło miewa problemy z nadawaniem. Może być aktualizowane przez sygnał HUP lub przez interfejs administracyjny.


    Specyficzne parametry źródeł (mountpoints)

    <mount>
    <mount-name>/example-complex.ogg</mount-name>
    <username>othersource</username>
    <password>hackmemore</password>
    <max-listeners>1</max-listeners>
    <max-listener-duration>3600</max-listener-duration>
    <dump-file>/tmp/dump-example1.ogg</dump-file>
    <intro>/intro.ogg</intro>
    <fallback-mount>/example2.ogg</fallback-mount>
    <fallback-override>1</fallback-override>
    <fallback-when-full>1</fallback-when-full>
    <charset>ISO8859-1</charset>
    <public>1</public>
    <stream-name>My audio stream</stream-name>
    <stream-description>My audio description</stream-description>
    <stream-url>http://some.place.com</stream-url>
    <genre>classical</genre>
    <bitrate>64</bitrate>
    <type>application/ogg</type>
    <subtype>vorbis</subtype>
    <hidden>1</hidden>
    <burst-size>65536</burst-size>
    <mp3-metadata-interval>4096</mp3-metadata-interval>
    <authentication type="htpasswd">
    <option name="filename" value="myauth"/>
    <option name="allow_duplicate_users" value="0"/>
    </authentication>
    <on-connect>/home/icecast/bin/source-start</on-connect>
    <on-disconnect>/home/icecast/bin/source-end</on-disconnect>
    </mount>

    Sekcja <mount/> zawiera ustawienia tylko dla określonego strumienia. Ustalone tu parametry są przyjmowane niezależnie od tego, czy strumień jest retransmisją czy też pochodzi prosto od klienta źródłowego. Celem definiowania dodatkowych ustawień może być np. ograniczenie liczby słuchaczy, wprowadzenie uwierzytelniania, zastąpienie globalnych ustawień serwera lub informacji dostarczonych wraz ze strumieniem.

    Żaden mountpoint nie musi być definiowany w pliku konfiguracyjnym, tym niemniej może zajść konieczność zdefiniowania dodatkowych parametrów, takich jak maksymalna liczba słuchaczy czy wprowadzenie uwierzytelniania. Definicja strumienia powinna ograniczać się tylko do wymaganych w danej sytuacji ustawień, natomiast każda z nich musi zawierać przynajmniej nazwę strumienia (mount-name). Większość zmian zostanie zastosowana podczas ponownego odczytu pliku konfiguracyjnego (również w przypadku aktywnych strumieni), jednak niektóre z nich odniosą skutek dopiero po ponownym przyłączeniu źródła.


    mount-name

    Nazwa strumienia, dla którego stosowane będą zdefiniowane w danej sekcji parametry.


    username

    Dodatkowy parametr, który ustawia nazwę użytkownika, której musi użyć oprogramowanie nadawcze dla danej nazwy strumienia.


    password

    Dodatkowy parametr, który ustawia nazwę użytkownika, która musi użyć oprogramowanie nadawcze dla danej nazwy strumienia.


    max-listeners

    Dodatkowy parametr, który ustawia hasło, które musi użyć oprogramowanie nadawcze dla danej nazwy strumienia.


    max-listener-duration

    Dodatkowy parametr, określający maksymalny czas przez który słuchacz będzie mógł pobierać strumień. Można pominąć tą wartość poprzez użycie komponentu uwierzytelniania.


    dump-file

    Dodatkowy parametr, definiujący nazwę pliku w którym będzie archiwizowana zawartość przesyłanego strumienia.


    intro

    Dodatkowy parametr, wskazujący położenie pliku, którego zawartość będzie wysyłana do każdego nowego słuchacza zaraz po podłączeniu ale przed wysłaniem strumienia właściwego. Należy upewnić się, że format wskazanego pliku zgadza się z formatem strumienia właściwego. Plik powinien zostać umieszczony w folderze, w którym znajdują się wszystkie pliki interfejsu sieciowego (webroot)


    fallback-mount

    Ten parametr precyzuje strumień, do którego przełączeni zostaną słuchacze w przypadku braku sygnału ze źródła głównego. Dla jednego strumienia może być zdefiniowany tylko jeden strumień zapasowy, który powinien być transmitowany na tym samym serwerze, w formacie zgodnym ze strumieniem głównym.
    Jeśli słuchacze nie mogą zostać połączeni ze strumieniem zapasowym, zostaną rozłączeni. Jeśli słuchacze zostaną przełączeni na nieaktywny strumień zapasowy, do którego będzie przypisany kolejny strumień zapasowy, słuchacze zostaną przełączeni do tego ostatniego. Taka wielopoziomowa struktura strumieni zapasowych pozwala łatwo przełączać słuchaczy między kolejnymi strumieniami.

    Parametr może wskazywać również plik, położony w folderze interfejsu sieciowego (webroot). Może to zostać użyte do odtworzenia na antenie wcześniej nagranego materiału w przypadku awarii źródła. Odtwarzanie będzie powtarzane, dopóki słuchacz się nie rozłączy lub do momentu, gdy strumień właściwy będzie dostępny. Format pliku powinien być zgodny ze strumieniem właściwym, w innym przypadku przełączanie może powodować problemy z odtwarzaniem takiego strumienia.

    Plik, który będzie pełnić rolę strumienia zapasowego, będzie odtwarzany bez synchronizacji – należy więc zachować ostrożność przy stosowaniu retransmisji. Statyczne zasoby nadają się na strumienie zapasowe, jednak nie należy używać ich jako strumieni głównych – w takim przypadku retransmisja może powodować pobieranie większej ilości danych w krótszym czasie, a słuchacze mogą w pewnych wypadkach zostać rozłączeni.


    fallback-override

    Jeśli to ustawienie jest włączone (wartość 1) i jeśli jacyś słuchacze zostali przełączeni na strumień zapasowy, zostaną przełączeni na strumień główny w momencie gdy stanie się on dostępny.


    fallback-when-full

    Gdy zostanie osiągnięta maksymalna dla danego strumienia liczba słuchaczy, każdy nowy odbiorca zostanie przeniesiony na zdefiniowany strumień zapasowy.


    charset

    Dołączane do strumieni w formatach innych niż Ogg (np. MP3) metadane zazwyczaj nie posiadają zdefiniowanego zestawu znaków. Generalnie przyjmuje się, że domyślnym zestawem jest Unicode (UTF8), tym niemniej wiele programów nadawczych wysyła tekst w kodowaniu Latin1 (ISO 8859-1) lub w ogóle go nie zmienia, przez co do serwera trafiają dane z domyślnym kodowaniem systemu klienckiego.

    Często sprawiało to problemy przy interpretacji statystyk przez skrypty lub serwery katalogujące — teraz używany jest zestaw Latin1 dla kontenerów innych niż Ogg, można jednak zdefiniować inny zestaw znaków.

    Oprogramowanie nadawcze może również wysyłać parametr charset= w momencie aktualizacji metadanych przez URL.


    no-yp (nie używane)

    Zdefiniowanie tego parametru zapobiega wyświetlaniu danego strumienia w katalogach publicznych. Wartością domyślną jest 0, więc dane o strumieniu mogą pojawić się w katalogach. Parametr przestarzały, powinno się zastępować go parametrem <public>


    public

    Ustawieniem domyślnym jest -1, co oznacza że faktyczna wartość ustalana jest przez klienta źródłowego lub na podstawie danych z retransmitowanego strumienia. Wartość 0 zapobiegnie przed wysyłaniem informacji do serwerów katalogujących a wartość 1 wymusi to działanie. W tym ostatnim wypadku konieczne może być zdefiniowanie dodatkowych parametrów – w przeciwnym wypadku serwery katalogujące mogą nie uwzględnić wskazanego strumienia z powodu zbyt małej liczby informacji.


    stream-name

    Za pomocą tego ustawienia można utworzyć nazwę dla danego strumienia wyświetlaną w statystykach serwera i w katalogach publicznych z pominięciem nazwy dostarczonej w metadanych strumienia.


    stream-description

    Opis danego strumienia wyświetlany w statystykach serwera i w katalogach publicznych z pominięciem opisu dostarczonego w metadanych strumienia.


    stream-url

    Adres zasobu internetowego dla danego strumienia wyświetlany w statystykach serwera i w katalogach publicznych z pominięciem adresu dostarczonego wraz ze strumieniem.


    genre

    Precyzuje gatunek audycji danego strumienia wyświetlany w statystykach serwera i w katalogach publicznych z pominięciem wartości dostarczonej w metadanych strumienia.


    bitrate

    Za pomocą tego ustawienia można wymusić określoną wartość parametru bitrate (bez zmiany rzeczywistej jakości) dla danego strumienia wyświetlaną w statystykach serwera i w katalogach publicznych. Wartość musi być wyrażona w formie liczby kilobitów na sekundę (kb/s).


    type

    Dodaje określony nagłówek typu MIME dla danego strumienia. Wartość dostarczona ze strumieniem zostaje w tym przypadku pominięta. Raczej rzadko przydatna opcja.


    subtype

    Dodaje określony nagłówek podtypu MIME dla danego strumienia. Wartość dostarczona ze strumieniem zostaje w tym przypadku pominięta. Np. ustawiona wartość vorbis/theora informuje, że strumień jest w formacie Ogg. Raczej rzadko przydatna opcja.


    burst-size

    Tym parametrem można ustalić wielkość wewnętrznego bufora serwera dla danego strumienia, pomijając wartość globalną, ustaloną w sekcji limits.


    mp3-metadata-interval

    Ten parametr definiuje przedział (w bajtach) między kolejnymi aktualizacjami danych informacyjnych, zawartych w strumieniach kompatyblinych ze specyfikacją oprogramowania SHOUTcast. To ustawienie ma zastosowanie tylko dla nowych słuchaczy, nie zaś dla odbiorców którzy są przełączani na dany strumień jako zapasowy. Wartoś domyślna ustalona jest na podstawie wewnętrznej stałej serwera lub na podstawie retransmitowanego strumienia.


    allow-url-ogg-metadata (icecast-kh)

    W niektórych przypadkach dodatkowe dane (tytuł, wykonawca…) są aktualizowane z zewnętrznego źródła. Przy użyciu kontenera Ogg dane te powinny być wysyłane wraz ze strumieniem, tym niemniej można też korzystać z zewnętrznych procedur.


    filter-theora (icecast-kh)

    Po zdefiniowaniu tego parametru serwer usuwa dane wideo w formacie Theora z przychodzącego strumienia.


    hidden

    Należy włączyć tą opcję aby zapobiec wyświetlaniu danego strumienia w statystykach serwera (również w strukturach XML). Zazwyczaj używane w przypadku konfiguracji lokalnej retransmisji, której źródło nie powinno być ujawniane.


    authentication

    Parametr określa, czy dla danego strumienia ma być włączona opcja uwierzytelniania. Obecnie serwer posiada wewnętrznie zaimplementowaną autoryzację na podstawie pliku z hasłami. Dane użytkowników i zaszyfrowane hasła są zapisane w pliku (oddzielone dwukropkiem), a serwer będzie przy każdym zapytaniu wymagać podania poprawnych danych. Potrzebne informacje są przesyłane poprzez standardowy mechanizm uwierzytelniania HTTP (np. http://uzytkownik:haslo@strumien:port/mountpoint.ogg). Danymi uzytkowników zarządza się poprzez sieciowy panel administracyjny. Strumienie skonfigurowane do odbioru uwierzytelnianego w interfejsie sieciowym będą wyświetlane z odpowiednim symbolem. Więcej na temat autoryzacji w odpowiedniej sekcji.


    on-connect

    Definiuje wykonanie polecenia w momencie rozpoczęcia nadawania sygnału przez źródło. Polecenie jest uruchamiane z dodatkowym parametrem, identycznym z nazwą strumienia. Przetwarzanie strumienia odbywa się niezależnie od pracy uruchomionego programu/skryptu, bez oczekiwania na jego zakończenie. Ta opcja nie jest dostępna w środowisku Windows.


    on-disconnect

    Definiuje wykonanie polecenia w momencie zakończenia nadawania sygnału przez źródło. Polecenie jest uruchamiane z dodatkowym parametrem, identycznym z nazwą strumienia. Przetwarzanie strumienia odbywa się niezależnie od pracy uruchomionego programu/skryptu, bez oczekiwania na jego zakończenie. Ta opcja nie jest dostępna w środowisku Windows.


    Ścieżki do plików

    <paths>
    <basedir>./</basedir>
    <logdir>./logs</logdir>
    <pidfile>./icecast.pid</pidfile>
    <webroot>./web</webroot>
    <adminroot>./admin</adminroot>
    <allow-ip>/path/to/ip_allowlist</allow-ip>
    <deny-ip>/path_to_ip_denylist</deny-ip>
    <alias source="/foo" dest="/bar"/>
    </paths>

    Ta sekcja zawiera wskazania folderów, używanych przez serwer Icecast. Ścieżki nie powinny kończyć się znakiem /.


    basedir

    Ta ścieżka jest ustawiana w połączeniu z parametrem chroot i definiuje folder roboczy serwera. Ta opcja nie działa w środowisku Windows.


    logdir

    Ta ścieżka definiuje folder dla plików z logami. Zarówno plik error.log jak i access.log zostaną umieszczone w ustalonym tutaj katalogu.


    pidfile

    Ta ścieżka ustala położenie pliku zapisywanego przy starcie serwera i usuwanego przy normalnym kończeniu jego działania. Plik zawiera identyfikator procesu (PID) serwera Icecast. Plik jest używany w celu wysyłania sygnałów do procesu serwera.


    webroot

    Ta ścieżka precyzuje położenie statycznych plików, do których odwołują się zapytania sieciowe. Mogą tam być umieszczone pliki standardowego typu (również MP3 i Ogg). Na przykład, jeśli parametr wskazuje folder /var/share/icecast2, zapytanie dotyczy zasobu pod adresem http://server:port/mp3/stuff.mp3, zostanie przesłany plik /var/share/icecast2/mp3/stuff.mp3.


    adminroot

    Ta ścieżka definiuje katalog roboczy, używany dla wszystkich zapytań administracyjnych. Jest to miejsce, w którym znajdują się wszystkie skrypty XSLT używane przez sieciowy interfejs administracyjny. Folder admin dostarczony w dystrybucji programu Icecast zawiera wszystkie niezbędne pliki.


    allow-ip (2.3.2)
    deny-ip (2.3.2)

    Jeśli któryś z tych parametrów wskazuje położenie pliku zawierającego adresy IP, wyszczególnione hosty będą mogły połączyć się z serwerem (parametr allow-ip) lub będą automatycznie odrzucane (parametr deny-ip). Pliki powinny zawierać tylko adresy IP — jeden adres w jednej linii.


    alias

    Aliasy zapewniają dostęp do jednego zasobu (pliku, źródła) pod wieloma adresami.


    Logowanie zdarzeń

    <logging>
    <accesslog>access.log</accesslog>
    <errorlog>error.log</errorlog>
    <playlistlog>playlist.log</playlistlog>
    <loglevel>4</loglevel> <-- 4 Debug, 3 Info, 2 Warn, 1 Error -->
    </logging>

    Ta sekcja zawiera informacje związane z logowaniem zdarzeń przez serwer Icecast. Obecnie generowane są dwa pliki dziennika, error.log (gdzie zapisywane są informacje o wszystkich zdarzeniach) i access.log (gdzie zapisywane są zapytania sieciowe).

    W środowiskach uniksowych do procesu serwera może zostać wysłany sygnał HUP, który wymusza ponowne otwarcie plików dziennika, przez co można te pliki przenieść lub usunąć.


    accesslog

    Do wskazanego pliku zapisywane są informacje o wszystkich zapytaniach sieciowych wysyłanych do serwera. Plik jest umieszczony w folderze sprecyzowanym paramtetrem <logdir>.


    errorlog

    Wszystkie zdarzenia dotyczące serwera Icecast będą opisywane we wskazanym pliku. Jeśli poziom logowania będzie zbyt wysoki (np. serwer będzie zapisywać wszystkie zdarzenia na poziomie *normalnego działania*), plik może po jakimś czasie stać się duży.


    playlistlog

    Wszystkie metadane (np. tytuły utworów) wysłane do serwera będą zapisywane we wskazanym pliku. Format zapisu pliku zapewne się zmieni. Ta opcja nie jest wymagana i może zostać usunięta z pliku konfiguracyjnego.


    logsize

    Ta wartość określa maksymalną wielkość (w kilobajtach) każdego pliku dziennika. Gdy plik osiągnie podany rozmiar, Icecast przemianuje go na logfile.old lub doda informację o dacie i godzinie do nazwy pliku (jeśli opcja logarchive jest aktywna).


    logarchive

    Jeśli ten parametr jest ustawiony, Icecast doda datę i godzinę do nazwy każdego pliku gdy ten powiększy się do maksymalnego dopuszczalnego rozmiaru. Jeśli funkcja ta będzie wyłączona, zostanie zastosowana domyślna procedura archiwizacji pliku – plik logfile zostanie przemianowany na logfile.old (nadpisując ewentualne wcześniejsze materiały). Parametr domyślnie wyłączony, aby ograniczyć zapychanie dysku ludziom, którzy nie chcą (albo nie znają) rozmiaru logów.


    loglevel

    Wskazuje, które wiadomości mają być zapisywane przez serwer do dziennika. Wpisy podzielone są na cztery rodzaje: analiza, informacja, uwaga i błąd.

    Następująca numeracja musi być użyta, aby serwer uwzględniał określone rodzaje komunikatów w logu:

    • poziom = 4 - analiza, informacja, uwaga, błąd
    • poziom = 3 - informacja, uwaga, błąd
    • poziom = 2 - uwaga, błąd
    • poziom = 1 - błąd

    Bezpieczeństwo

    <security>
    <chroot>0</chroot>
    <changeowner>
    <user>nobody</user>
    <group>nogroup</group>
    </changeowner>
    </security>

    Ta sekcja zawiera ustawienia używane w celu zabezpieczenia serwera, np. poprzez zmianę katalogu roboczego. Obecnie żaden z poniższych parametrów nie jest obsługiwany w środowisku Windows.


    chroot

    Parametr określający, czy chroot() bedzie ładowany/uwzględniany przy starcie serwera. Ścieżka chroot jest określona jako wartość konfiguracyjna <basedir>


    changeowner

    Ta sekcja wskazuje grupę i użytkownika, który przejmie proces serwera po uruchomieniu. Należy wskazać właściwe (istniejące w systemie) dane.

    Please publish modules in offcanvas position.