Przesyłanie strumieniowe radia przy użyciu SHOUTcast
1.
Uruchamianie serwera SHOUTcast
Instalowanie plików
Serwer SHOUTcast można odnaleźć w pakiecie media-sound/SHOUTcast-server-bin.
Można go zainstalować używając następującego polecenia:
Listing 1.1: Instalowanie SHOUTcast |
# emerge shoutcast-server-bin
|
Teraz nastąpi instalacja serwera SHOUTcast. Następnym krokiem jest
konfiguracja.
Konfigurowanie serwera SHOUTcast
Teraz, gdy Serwer SHOUTcast jest zainstalowany, musi zostać skonfigurowany.
Pliki konfiguracyjne można znaleźć w /etc/shoutcast/sc_serv.conf.
Rozpocznijmy konfigurację. Upewnijmy się, że posiadamy uprawnienia root-a i
otwieramy plik konfiguracyjny w ulubionym edytorze. Do poniższych przykładów
wybrałem vi. Teraz rozpoczynamy edycję używając vi:
Listing 1.2: Otwieranie pliku konfiguracyjnego |
# vi /etc/shoutcast/sc_serv.conf
|
To spowoduje wyświetlenie pliku konfiguracyjnego Serwera SHOUTcast, w którym
jest dużo opcji, które można ustawić. Przyglądnijmy się jak ustawić
poszczególne z nich.
Obowiązkowe opcje
Listing 1.3: Ustawianie limitu ilości użytkowników |
MaxUser=10
|
W tym miejscu ustawiana jest maksymalna ilość użytkowników. Jak można wyczytać
w nagłówku, nierozsądnym jest ustawianie jej na 100 użytkowników na łączu z
limitem 256kbps na ruch wychodzący (Ustawiłem tę wartość na 10, ponieważ sam
posiadam łącze z limitem 256kbps na ruch wychodzący). Jeśli uruchamiamy Serwer
SHOUTcast do obsługi sieci LAN, prawdopodobnie możemy ustawić tę wartość
ZNACZNIE wyższą (śmiało wcześniej wspomnianą 100). Należy pamiętać jednak,
aby nie nadużywać wykorzystywanej przepustowości. Przepustowość dla ISP jest
bardzo droga i niektórzy z nich mogą zablokować konto lub obciążyć użytkownika
kosztami.
Listing 1.4: Ustawianie hasła |
Password=ciężkie_do_złamiania_hasło
|
Tu należy ustawić hasło. Hasło jest zapisane otwartym tekstem. Ze względów
bezpieczeństwa MOCNO zalecam, aby nie używać hasła, które zabezpiecza dostęp do
krytycznych zasobów systemu lub innych delikatnych informacji. Należy ustawić
je jak najbardziej losowym jak to możliwe, używając kombinacji liter i cyfr.
Tego hasła będzie używał SHOUTcast Trans (lub dowolny inny dostawca treści) do
połączenia z serwerem i dostarczania treści transmisji strumieniowej.
Listing 1.5: Ustawianie portu nasłuchującego |
PortBase=8000
|
Ta wartość ustawia port, do którego będą łączyć się użytkownicy, aby nawiązać
połączenie z Serwerem SHOUTcast. Domyślną wartością jest 8000, ponieważ
większość odtwarzaczy mp3 z możliwością odtwarzania strumieniowego
(Audacious, winamp, itp) domyślnie łączy się na ten port. Jeśli chcemy użyć
portu poniżej 1024, musimy posiadać uprawnienia roota. Jednakże bardzo odradzam
używanie portu mniejszego niż 1024 przez Serwer SHOUTcast.
Listing 1.6: Ustawianie logowania do pliku |
LogFile=/var/log/SHOUTcast.log
|
Ta opcja ustawia położenie pliku z logami z Serwera SHOUTcast. Ebuild ustawia
plik z logami na /dev/null, więc aby włączyć logowanie, należy zmienić tę
wartość. Osobiście umieściłem plik w katalogu /var/log, ale możemy ustawić
logowanie w dowolne inne miejsce.
Listing 1.7: Uruchamianie statystyk w czasie rzeczywistym |
RealTime=0
|
Ustawienie tej opcji powoduje wyświetlanie na standardowe wyjście, co sekundę,
informacji o aktualnie odtwarzanym utworze. Ebuild domyślnie wyłącza tę opcję,
aby demon SHOUTcast działał najciszej jak to możliwe. Aby otrzymywać to
uaktualnienie co sekundę, ustawiamy wartość opcji na 1. Jednak zamiast tej
funkcji zalecam używanie strony ze statusem.
Listing 1.8: Ustawianie logowania w czasie rzeczywistym |
ScreenLog=0
|
Ta opcja jest domyślnie wyłączona przez ebuild, aby demon działał najciszej jak
to możliwe. Włączenie tej opcji powoduje wyświetlanie informacji o wszystkich
zdarzeniach (połączenia, rozłączenia, itp), w czasie ich wystąpienia, na
standardowe wyjście. Ponieważ logowanie do pliku ma ten sam efekt, zalecam jego
używanie zamiast tej opcji.
Listing 1.9: Ustawianie ilości ostatnio odtwarzanych utworów |
ShowLastSongs=10
|
Jak nazwa wskazuje, opcja ta ustawia ilość ostatnio odtwarzanych utworów jaka
będzie wyświetlana na stronie /played.html. Nie warto jej ustawiać powyżej 20.
Listing 1.10: Ustawianie logowania zmian systemu plików |
|
Ta opcja włącza lub wyłącza logowanie przez DNAS (ang. Distributed Network
Audio Server), krótko mówiąc przez SHOUTcast, zmian w katalogu. Zalecane dla
osób, które potrzebują logowania na bardzo wysokim poziomie bezpieczeństwa.
Zwykli użytkownicy najprawdopodobniej nie potrzebują włączać tej opcji.
Listing 1.11: Włączanie logowania zapytań HTTP |
|
Ta opcja precyzuje czy należy włączyć logowanie zapytań do wewnętrznego
serwera HTTP SHOUTcast. Podobnie jak poprzednio, zalecane dla osób wymagających
logowania na bardzo wysokim poziomie bezpieczeństwa, ale nie zalecane dla
przeciętnych użytkowników.
Listing 1.12: Włączanie logowania W3C |
W3CEnable=Yes
W3CLog=/dev/null
|
Pierwsza opcja włącza logowanie W3C. Ten typ logowania może być łatwo
przetwarzany przez programy podane w komentarzu i jest zalecany dla osób, które
potrzebują bardzo dokładnych statystyk. Druga opcja precyzuje gdzie zapisywać
logi W3C. Domyślnie ebuild ustawia tę wartość na /dev/null.
Konfigurowanie parametrów sieciowych
Listing 1.13: Ustawianie źródłowego adresu IP |
SrcIP=ANY
|
Zmienna SrcIP ustawia adres IP z jakiego będzie pochodzić transmisja
strumieniowa. Może wskazywać inny serwer (przekazujący), localhost (normalnie),
lub dowolny inny adres IP, który jest ustawiony na jednym z interfejsów
sieciowych. Ustawienie na localhost zapobiega używaniu serwera SHOUTcast przez
inny serwer, jako źródła transmisji. Domyślną wartością jest ANY i powoduje, że
serwer SHOUTcast będzie obsługiwał wszystkie adresy. Ze względów bezpieczeństwa
rozsądnym jest ustawienie tej wartości na konkretny adres.
Listing 1.14: Ustawianie docelowago adresu IP |
DestIP=ANY
|
Ta opcja określa do którego adresu IP, ustawionego na jednym z interfejsów,
będą mogli podłączać się użytkownicy. Możliwe wartości to: localhost (dla osób
antyspołecznych, chcących nadawać tylko do siebie), adres prywatny (np.
192.168.0.101, aby nadawać do sieci lokalnej) lub adres publiczny (np.
209.204.249.201, aby nadawać do sieci WAN, ale nie LAN). W większości wypadków,
do własnego strumienia można dostać się używając adresu 127.0.0.1 zamiast
używać wartości ustawionej w tej opcji. Wartość ANY pozwala nawiązywać
połączenia z Serwerem SHOUTcast na wszystkich adresach dostępnych na wszystkich
możliwych interfejsach.
Listing 1.15: Ustawianie portu pośrednika/yp.SHOUTcast.com |
Yport=80
|
Ta opcja ma dwie funkcje. Pierwszą z nich jest port, do którego należy się
połączyć z yp.SHOUTcast.com. yp.SHOUTcast.com jest stroną WWW firmy nullsoft na
której utrzymywana jest lista publicznych serwerów, dzięki której użytkownicy
wiedzą jakich stacji mogą posłuchać. Użytkownicy mogą szukać konkretnej
stacji właśnie na tej stronie. Druga funkcja tej opcji jest związana z serwerem
pośredniczącym (ang. proxy). Ustawiamy wartość tej opcji na numer portu serwera
pośredniczącego w połączeniach do serwera SHOUTcast oraz ustawiamy wartość
opcji DestIP na adres IP serwera pośredniczącego.
Listing 1.16: Ustawianie odwzorowania adresów |
NameLookups=0
|
Ta opcja określa czy należy odwzorować adres IP klienta na jego nazwę domenową.
Opcji tej należy użyć przy logowaniu w celu uzyskania bardziej dokładnych
raportów.
Listing 1.17: Ustawianie przekaźnika |
|
Ta opcja powoduje, że serwer zachowuje się jak serwer przekaźnikowy. Serwery
przekaźnikowe są często wykorzystywane do przejmowania połączenia o niskiej
przepustowości, które może przesyłać strumieniowo tylko do jednego klienta i
wykorzystują swoją większą przepustowość, aby serwować dane do większej ilości
klientów. RelayPort specyfikuje port i adres IP Serwera SHOUTcast, dla którego
ten serwer będzie przekaźnikiem. Te opcje należy zakomentować, jeśli serwer nie
jest konfigurowany jako serwer przekaźnikowy.
Konfiguracja serwera
Listing 1.18: Ustawianie hasła administratora |
|
Ustawienie tej opcji spowoduje uruchomienia dwóch ról: administratora i
dziennikarza. Dziennikarz może zalogować się używając hasła (ustawionego w opcji
Password) i podglądać aktualne połączenia. Jednakże, aby można było
rozłączyć/zbanować klienta czy administrować serwerem, osoba musi zalogować się
używając hasła administratora. Opcja ta zalecana jest dla instalacji, gdzie
administrator i dziennikarz to dwie różne osoby.
Listing 1.19: Ustawianie automatycznego rozłączania użytkowników |
AutoDumpUsers=0
|
Ta opcja określa czy użytkownicy powinni być rozłączani w momencie, gdy źródło
transmisji niespodziewanie się rozłączy. Domyślnie opcja ustawiona jest na 0,
więc klienci po pewnym czasie rozłączą się sami albo będą próbować buforować
strumień. Tej opcji należy użyć, jeśli spodziewane są krótkie zaniki łączności
ze źródłem strumienia.
Listing 1.20: Ustawianie limitu czasu bezczynności dla źródła |
AutoDumpSourceTime=30
|
Ta opcja określa jak długo Serwer SHOUTcast powinien czekać na źródło (lub
serwer przekaźnikowy), z którego odbiera treść transmisji strumieniowej, zanim
się rozłączy. Dowolna wartość pomiędzy 30 a 60 wydaje się być rozsądną.
Listing 1.21: Ustawianie katalogu z treścią |
ContentDir=/opt/SHOUTcast/content/
|
Opcja ContentDir ustawia gdzie przechowywane są treści przesyłane na żądanie.
Na przykład, jeśli chcemy przesłać pracownikom pewną zapowiedź, w tym celu można
użyć tej opcji. Ebuild ustawia wartość tej opcji na
/opt/SHOUTcast/content. Aby skorzystać z tej funkcjonalności,
umieść plik mp3 w katalogu z treścią a następnie w przeglądarce wpisz adres
http://example.com:[port]/content/mp3name.pls. Serwer SHOUTcast
automatycznie utworzy listę odtwarzania dla pliku mp3name.mp3 i zacznie ją
transmitować na żądanie. Tej opcji można użyć jako alternatywy do SHOUTcast
Trans jako źródła transmisji strumieniowej.
Listing 1.22: Ustawianie pliku intro |
|
Ta opcja pozwala ustawić plik intro. Za każdym razem gdy użytkownik się połączy
z serwerem ten plik zostanie mu odtworzony. Jednakże, jak wiadomo, szybkość
przesyłania bitów transmisji strumieniowej musi się zgadzać z szybkością
transmisji bitów pliku intro, w przeciwnym wypadku wystąpią kłopoty. Można
jednak umieścić pliki intro128.mp3 i intro64.mp3, wtedy serwer odtworzy plik
intro128.mp3 użytkownikom łączącym się ze strumieniem 128kbps a plik
intro64.mp3 użytkownikom łączącym się ze strumieniem 64kbps.
Listing 1.23: Ustawianie pliku zapasowego |
|
Ta opcja jest podobna do powyższej, ale plik będzie odtwarzany, gdy źródło
transmisji strumieniowej wygaśnie. Ta opcja zadziała tylko wtedy, gdy opcja
AutoDumpUsers jest ustawiona na 0.
Listing 1.24: Ustawianie formatu tytułu |
TitleFormat=Chris Gentoo Beats: %s
|
Ta opcja ustawia niezmienny tutuł Serwera Shoutcast. Tej opcji należy użyć,
jeśli źródło strumienia jest różne od nazwy Serwera Shoutcast. Ta opcja nie
będzia działać dla serwerów przekaźnikowych.
Listing 1.25: Ustawianie formatu URL |
|
Ta opcja jest podobna do powyższej. URL ustawiony w tej opcji będzie użyty
zamiast URL źródła transmisji strumieniowej.
Listing 1.26: Ustawianie pulicznego statusu źródła strumienia |
PublicServer=default
|
Ta opcja określa czy serwer ma być opublikowany na liście publicznych serwerów,
nawet, gdy serwer przekaźnikowy/wtyczka źródłowa określa przynależność do tej
listy.
Listing 1.27: Zezwalanie na przekazywanie |
AllowRelay=Yes
|
Opcja AllowRelay określa czy inne serwery mogą przekazywać treść nadawaną przez
ten serwer. Jeśli serwer nie zamierza używać serwerów przekaźnikowych, wartość
opcji należy ustawić na No.
Listing 1.28: Zezwalanie serwerom przekaźnikowym na publikowanie adresu źródła |
AllowPublicRelay=Yes
|
Opcja AllowPublicRelay określa czy serwer ma być opublikowany na liście
publicznych serwerów SHOUTcast, pomimo że serwer którego treść jest
przekazywana jest już umieszczony na tej liście. Należy zauważyć, że opcja
PublicServer może nadpisać to ustawienie.
Listing 1.29: Ustawianie MetaInterval |
MetaInterval=32768
|
Tej opcji nie należy zmieniać.
Konfiguracja dostępu
Listing 1.30: Ustawianie maksymalnego czasu dla słuchacza |
|
Nie jestem pewien czy ta opcja będzie komukolwiek potrzebna. Zasadniczo, jeśli
użytkownik jest podłączony za długo, serwer go rozłączy. Jedynym uzasadnieniem
jakie przychodzi mi na myśl, to rozłączanie nieaktywnych użytkowników lub
ludzi, którzy powinni robić coś innego niż słuchać radia. Wartość jest mierzona
w minutach.
Listing 1.31: Ustawianie pliku z banami |
|
Ta opcja określa nazwę pliku z listą użytkowników, którzy maja zablokowany
dostęp do tego serwera. Wartość domyślna to sc_serv.ban, ale można ustawić
dowolną inną nazwę dla tego pliku.
Listing 1.32: Ustawianie listy Rip |
|
Choć brzmi ponuro, RIP właściwie oznacza Zarezerwowane IP (ang. Reserved IP).
Opcji tej należy używać dla znajomych lub osób, które są uważane za
ważniejszych od przeciętnych użytkowników. Jeśli aktualnie obsługiwana jest
maksymalna liczba użytkowników i połączy się jedna z osób z listy RIP, serwer
rozłączy osobę podłączoną najdłużej i obsłuży nowe połączenie.
Listing 1.33: Zezwalanie na połączenia tylko osobom z listy RIP |
|
Ta opcja spowoduje, że tylko osoby z listy RIP będą mogły połączyć sie z
Serwerem SHOUTcast. Opcji tej można użyć do utworzenia prywatnego radia lub do
ograniczenia połączeń tylko dla ustalonych serwerów przekaźnikowych.
Konfiguracja masowa
Listing 1.34: Ustawianie unikalnych zmiennych |
|
Zasadniczo, jeśli uruchamiamy dużo Serwerów SHOUTcast, dużym utrudnieniem
byłaby zmiana wszystkich wpisów konfiguracyjnych jak logowanie/bany/itp tak,
aby dla każdego serwera były unikatowe. Zamiast tego, można ustawić wartość
zmiennej Unique na cos unikalnego, a znak $ będzie zastępowany tą wartością.
Np. jeśli w jednym pliku ustawimy Unique=Jazz, a w innym Unique=Rock, wtedy
wpis Log=/var/log/$.log będzie zamieniany na /var/log/Jazz.log w pierwszym
wypadku i na /var/log/Rock.log w drugim. Opcja bardzo przydatna, podczas pracy
z wieloma Serwerami SHOUTcast z podobną konfiguracją.
Listing 1.35: Ustawianie wspólnych zmiennych |
|
Jeśli uruchamiamy wiele Serwerów SHOUTcast i chcemy użyć tych samych ustawień
opcji bez konieczności ustawiania ich we wszystkich plikach konfiguracyjnych,
można ustawić wartość tej opcji, aby wskazywała na plik, który zawiera
ustawienia opcji konfiguracyjnych takie same dla wszystkich serwerów.
Konfiguracja optymalizacji
Listing 1.36: Ustawianie ilości użytych procesorów |
|
Na systemach z wieloma procesorami opcja ta określa ilość procesorów
wykorzystywanych przez Serwer SHOUTcast. Domyślne zachowanie, to utworzenie
jednego wątka na procesor i rozdzielanie słuchaczy na wszystkie wątki. Jeśli
wartość opcji będzie mniejsza od ilości procesorów w systemie spowoduje to
pozostawienie nieobciążonych procesorów, aby mogły wykonywać inne czynności.
Listing 1.37: Ustawianie przerw w wysyłaniu danych |
|
Serwer SHOUTcast będzie wykorzystywał wartość tej opcji w określaniu długości
przerw podczas wysyłania danych. Im wyższa wartość, tym dłuższa przerwa, im
niższa wartość, tym krótsza przerwa i większe użycie CPU. Na wolniejszych
systemach można ustawić tę wartość na niższą niż domyślna. To spowoduje, że
Serwer SHOUTcast będzie wysyłał dane do użytkowników częściej. Najlepiej
pozostawić domyślną wartość niezmienioną.
Listing 1.38: Ustawianie wyjścia XML |
|
Opcją tą nie należy się przejmować, jeśli nie używa się niestandardowego parsera
XML, który tworzy niestandardowe statystyki dla serwera. Jeśli ten parser nie
potrafi obsługiwać białych znaków i znaków końca linii w plikach XML, należy
ustawić wartość tej opcji na Yes, wtedy wszystko powinno zadziałać poprawnie.
Wnioski
W tym momencie Serwer SHOUTcast powinien być już skonfigurowany. W
zastosowaniach biznesowych radzę włączyć logowanie WC3, ponieważ może być łatwo
analizowane i użyte do tworzenia niestandardowych statystyk. Powinno się także
ustawić hasło administratora. Można także użyć opcji masowej konfiguracji, jeśli
uruchamia się wiele Serwerów SHOUTcast.
Z ustawioną konfiguracją zajmiemy się uruchamianiem serwera. Na początek
uruchomimy prostą transmisję na żądanie, później zajmiemy się SHOUTcast Trans
(ponieważ jest to nieco bardziej skomplikowane).
2.
Pierwsze kroki z Serwerem SHOUTcast
Uruchamianie strumieniowania na żądanie
Jak to pokazano w rozdziale o konfiguracji, strumieniowanie na żądanie
automatycznie tworzy listę odtwarzania na podstawie zawartości katalogu z
treścią. Ebuild Serwera SHOUTcast ustawia ten katalog na
/opt/SHOUTcast/content. Rozpocznijmy od utworzenia prostego strumieniowania mp3
na żądanie.
Najpierw będziemy potrzebowali zdobyć skądś plik mp3 i wrzucić go do katalogu z
treścią. Plik sample.mp3 wezmę z katalogu /Mp3, który wcześniej stworzyłem.
Listing 2.1: Kopiowanie pliku mp3 do katalogu z treścią |
# cp sample.mp3 /opt/SHOUTcast/content/
# cd /opt/SHOUTcast/content/
# ls
sample.mp3
|
OK, więc mamy już plik mp3. Teraz musimy uruchomić nasz Serwer SHOUTcast, żeby
plik mógł być osiągalny.
Listing 2.2: Uruchamianie Serwera SHOUTcast |
# /etc/init.d/shoutcast start
* Starting Shoutcast Server...
*******************************************************************************
** SHOUTcast Distributed Network Audio Server
** Copyright (C) 1998-2004 Nullsoft, Inc. All Rights Reserved.
** Use "sc_serv filename.ini" to specify an ini file.
*******************************************************************************
[ ok ]
|
Mały baner jest wyświetlany, żeby być pewnym, że proces nie umarł zaraz po
uruchomieniu (czyli, żeby być pewnym, że serwer naprawdę wystartował). W tym
momencie Serwer SHOUTcast już działa! Jak to wynika ze specyfiki strumieniowania
na żądanie, serwer jest osiągalny TYLKO za pomocą przeglądarki.
MPlayer lub cokolwiek inne nie będzie w stanie odtworzyć strumienia w takim
formacie. W poniższym przykładzie, aby połączyć się ze strumieniem użyłem
kmplayer uruchomionego bezpośrednio z mojej przeglądarki. Wynik można oglądnąć
na poniższym zrzucie ekranowym.
Ilustracja 2.1: Treść na żądanie |
 |
Niektórzy do obsługi formatów audio używają Audacious, więc ich przeglądarka
może uruchomić Audacious, aby obsłużył strumień. Teraz, gdy uruchomiliśmy
strumieniowanie na żądanie, postaramy się uruchomić SHOUTcast Trans, aby
utworzyć prawdziwy radiowy serwer transmisji strumieniowej.
3.
Uruchamianie SHOUTcast Trans
Wprowadzenie do SHOUTcast Trans
SHOUTcast Trans oznacza SHOUTcast Trans(coder), ponieważ jest w stanie
zmieniać szybkość transmisji bitów strumienia mp3 na niższą lub wyższą.
SHOUTcast Trans przesyła strumieniowo pliki mp3 z listy odtwarzania zapisanej w
pliku konfiguracyjnym. Rozpoczniemy konfigurację SHOUTcast Trans, aby w końcu
mieć prawdziwą, boską strumieniową stację radiową. Rozpoczniemy otwierając plik
konfiguracyjny dla SHOUTcast Trans, którym dziwnym trafem jest
/etc/shoutcast/sc_trans.conf.
Listing 3.1: Otwieranie pliku konfiguracyjnego SHOUTcast Trans |
# emerge shoutcast-trans-bin
# vi /etc/shoutcast/sc_trans.conf
|
Teraz, gdy mamy otwarty plik konfiguracyjny SHOUTcast Trans, możemy rozpocząć
konfigurowanie źródła transmisji strumieniowej.
Konfigurowanie SHOUTcast Trans
Listing 3.2: Ustawianie listy odtwarzania |
PlaylistFile=/opt/SHOUTcast/playlists/playlist.lst
|
Ta opcja określa, gdzie SHOUTcast ma szukać treści transmisji strumieniowej.
Ta opcja wymaga istniejącej listy odtwarzania, więc kontynuujmy i stwórzmy
listę odtwarzania. Utworzę ją bardzo szybko, na podstawie mojego katalogu /Mp3,
o którym wspomniałem już wcześniej.
Listing 3.3: Tworzenie listy odtwarzania |
# find /Mp3 -type f -name "*.mp3" >
/opt/SHOUTcast/playlists/playlist.lst
|
Teraz, gdy mamy już listę odtwarzania, należy ją wskazać w pliku
konfiguracyjnym, tak, żeby SHOUTcast Trans wiedział co ma przesyłać.
Listing 3.4: Ustawianie adresu IP i portu serwera |
Serverip=127.0.0.1
ServerPort=8000
|
Ta opcja określa gdzie wysyłać treść strumienia. W tym przewodniku będzie to
adres IP i port Serwera SHOUTcast, który wcześniej skonfigurowaliśmy (wartości
opcji DestIP oraz PortBase).
Listing 3.5: Ustawianie hasła Serwera SHOUTcast |
Password=password_you_setup_in_sc_serv.conf
|
Jest to to samo hasło, które zostało ustawione w konfiguracji Serwera
SHOUTcast.
Listing 3.6: Ustawianie informacji o strumieniu |
StreamTitle=Chris Gentoo Beats
StreamURL=http://www.gentoo.org
Genre=JPOP Electronica And More!
|
Ta opcja ustawia tytuł strumienia (np Radio Jeden), URL (np
http://www.radio-jeden.com) i gatunek (np Muzyka elektroniczna).
Listing 3.7: Ustawianie pliku z logami |
LogFile=/var/log/sc_Trans.log
|
Ta opcja ustala położenie pliku z logami z SHOUTcast Trans. Wszystkie komunikaty
trafiają własnie tu.
Listing 3.8: Ustawianie odtwarzania losowego |
Shuffle=1
|
W tym miejscu należy zdecydować czy elementy listy odtwarzania mają być
odtwarzane losowo. Większość ustawi tu 1. Jeśli jednak zamierza się przyjmować
prośby o piosenkę, należy ustawić tu 0, później wytłumaczę jak to zrobić.
Listing 3.9: Ustawianie strumienia |
Bitrate=128000
SampleRate=44100
Channels=2
Quality=1
|
Bitrate ustawia prędkość transmisji bitów strumienia. Wartość może być ustawiona
pomiędzy 8000 (8kbps) a 128000 (128kbps). SampleRate ustawia częstotliwość
próbkowania strumienia. Wartość może być ustawiona pomiędzy 11025 (11025kHz) a
44100 (44100kHz). Channels ustala ile kanałów będzie w strumieniu. Wartość może
przyjmować wartości od 1 (mono) do 2 (stereo). Quality ustawia jakość
strumienia i jest kontrolowana przez Bitrate/SampleRate/Channels. Opcja ta
określa jak kompresowany jest strumień. 1 ustawia najlepszą jakość, 10 da
największą prędkość. Podczas ustawiania tych opcji należy pamiętać o
przepustowości posiadanego łącza.
Listing 3.10: Ustawianie efektu przejścia |
CrossfadeMode=1
CrossfadeLength=8000
|
Ta opcja ustawia efekt przejścia dla odtwarzanych utworów. Ustawienie wartości
na 0 spowoduje wyłączenie efektu przejścia. Ustawienie 1 spowoduje wyciszenie
pierwszego utworu i podgłośnienie drugiego. Ustawienie 2 spowoduje podgłośnienie
pierwszego utworu i wyciszenie drugiego. Opcja CrossfadeLength określa jak
długo w milisekundach ma trwać efekt.
Listing 3.11: Włączenie wykorzystania ID3 |
UseID3=1
|
Ta opcja określa czy należy używać informacji zawartych w znacznikach ID3.
Listing 3.12: Ustawianie statusu publicznego |
Public=0
|
Ta opcja określa czy strumień przekazywany do serwera powinien być oznaczony
jako publiczny. Należy pamiętać, że wartość tej opcji może nadpisać ustawienie
opcji PublicServer w pliku sc_serv.conf.
Listing 3.13: Ustawianie kontaktu ze słuchaczami |
AIM=AIMHandle
ICQ=
IRC=SHOUTcast
|
Opcja ta określa w jaki sposób można się skontaktować z DJ. Można ustawić kanały
AIM lub ICQ. Można także uruchomić kanał IRC, w ten sposób można mieć kontakt z
wieloma słuchaczami jednocześnie.
Podsumowanie konfiguracji SHOUTcast Trans
W tym momencie SHOUTcast Trans został skonfigurowany do przesyłania treści do
Serwera SHOUTcast. Teraz można zacząć wysyłać strumień mp3!
4.
Pierwsze kroki z SHOUTcast Trans
Uruchamianie SHOUTcast Trans
Tak często jak używam SHOUTcast Trans z Serwerem SHOUTcast staram się uruchomić
SHOUTcast Trans, który następnie uruchamia Serwer SHOUTcast (dużo prościej).
Przystąpmy więc do uruchomienia SHOUTcast Trans.
Listing 4.1: Uruchamianie Shoutcast Trans i Serwer Shoutcast |
# /etc/init.d/shoutcast_trans start
* Starting Shoutcast Server...
*******************************************************************************
** SHOUTcast Distributed Network Audio Server
** Copyright (C) 1998-2004 Nullsoft, Inc. All Rights Reserved.
** Use "sc_serv filename.ini" to specify an ini file.
*******************************************************************************
[ ok ]
* Starting Shoutcast Trans... [ ok ]
|
Odsłuchiwanie strumienia SHOUTcast Trans
Teraz, gdy SHOUTcast Trans jest już uruchomiony, zacznijmy odsłuchiwać
strumień. W tym przykładzie używam MPlayera.
Listing 4.2: Odsłuchiwanie strumienia |
# mplayer -cache 1024 http://127.0.0.1:8000/
...
Playing http://127.0.0.1:8000/.
Connecting to server 127.0.0.1[127.0.0.1]:8000 ...
Name : Chris Gentoo Beats
Genre : JPOP Electronica And More!
Website: http://www.gentoo.org
Public : no
Bitrate: 128kbit/s
Cache size set to 1024 KBytes
Connected to server: 127.0.0.1
Cache fill: 9.38% (98304 bytes) Audio file detected.
==========================================================================
Opening audio decoder: [mp3lib] MPEG layer-2, layer-3
MP3lib: init layer2 and 3 finished, tables done
mpg123: Can't rewind stream by 156 bits!
AUDIO: 44100 Hz, 2 ch, 16 bit (0x10), ratio: 16000->176400 (128.0 kbit)
Selected audio codec: [mp3] afm:mp3lib (mp3lib MPEG layer-2, layer-3)
==========================================================================
Checking audio filter chain for 44100Hz/2ch/16bit -> 44100Hz/2ch/16bit...
AF_pre: af format: 2 bps, 2 ch, 44100 hz, little endian signed int
AF_pre: 44100Hz 2ch Signed 16-bit (Little-Endian)
AO: [oss] 44100Hz 2ch Signed 16-bit (Little-Endian) (2 bps)
Building audio filter chain for 44100Hz/2ch/16bit -> 44100Hz/2ch/16bit...
Video: no video
Starting playback...
|
To było trochę oszukane. Opcja -cache nadpisała moje ustawienie wielkości
bufora, który był całkiem spory. Voila! W tym momencie słuchamy naszego
strumienia. W następnym rozdziale pokażę co jeszcze można zrobić wykorzystując
Serwer SHOUTcast.
5.
Zaawansowane zastosowania SHOUTcast
Zastosowanie w biznesie
W biznesie SHOUTcast można używać na kilka sposobów:
-
Użycie strumieniowania na żądanie w celu uczynienia codziennych ogłoszeń
bardziej interesującymi.
-
Udostępnianie publicznych ogłoszeń w czasie rzeczywistym kiedy się
pojawiają, tak, że wszyscy klienci od razu będą wiedzieli co się wydarzyło,
a także przechowywanie ich w celu późniejszego strumieniowania na żądanie.
-
Przeprowadzanie wywiadów i przechowywanie ich w celu późniejszego
odtwarzania na żądanie.
Istnieje jeszcze wiele innych możliwości zastosowania Serwera SHOUTcast w
biznesie. Używajmy strumieniowania mediów na żywo, zamiast starego nudnego
tekstu.
DJ i SHOUTcast
Serwer SHOUTcast jest jednym z najbardziej popularnych serwerów wykorzystywanych
zarówno przez początkujących DJ jak i weteranów. Dla początkujących polecam
parę sztuczek, które podniosą klasę serwera i doznania użytkowników. Kluczem
jest posiadanie intro. Daje ono słuchaczom pojęcie o stacji radiowej, do której
się podłączyli. Ważne jest również opublikowanie serwera na yp.SHOUTcast.com
(opisane w sekcji o konfiguracji Serwera SHOUTcast), żeby wszyscy wiedzieli
gdzie się połączyć. Najbardziej unikatową funkcją, jest przyjmowanie próśb o
piosenkę, więc należy włączyć tę możliwość. W tym celu należy wyłączyć losową
kolejność odtwarzania utworów (opcja Shuffle w sc_Trans.conf) i posiadać
przynajmniej 10 utworów. Następnie można przyjmować żądania o piosenkę. Gdy
ktoś zażąda pewnego utworu, należy go po prostu dodać na koniec listy
odtwarzania, a następnie użyć następującego skryptu, aby poinformować SHOUTcast
Trans o zmianie listy.
Listing 5.1: djcontrol |
case "$1" in
"reload")
kill -s USR1 `cat /var/run/SHOUTcast_Trans.pid`
;;
"next")
kill -s WINCH `cat /var/run/SHOUTcast_Trans.pid`
;;
*)
echo "Invalid command"
;;
esac
|
Kiedy dodamy nową pozycję do listy odtwarzania, należy poinformować SHOUTcast
Trans o tym, że lista odtwarzania się zmieniła.
Listing 5.2: Przeładowanie listy odtwarzania |
# djcontrol reload
|
Użytkowników powinno się poinformować, po którym utworze zostanie odtworzona
piosenka na żądanie. Można także przeskoczyć kolejne utwory:
Listing 5.3: Przeskakiwanie przez listę odtwarzania |
# djcontrol next
|
Należy pamiętać, aby nie przeskoczyć za dużo utworów, ponieważ nie ma możliwości
cofnięcia się. Gdy w końcu dotrzemy do żądanego utworu, rozpocznie się
odtwarzanie prośby o piosenkę. Radzę poczekać na przynajmniej 5 próśb o piosenkę
zanim zacznie się je realizować. W ten sposób lista odtwarzania nie skończy się
za szybko. Jeśli zacznie brakować próśb o piosenkę, należy skopiować listę
odtwarzania kolejnej sesji w miejsce listy odtwarzania próśb o piosenkę i
przeładować SHOUTcast Trans. Gdy aktualny utwór się skończy, serwer zacznie
używać nową listę odtwarzania.
Wnioski
W tym momencie kończę przewodnik po SHOUTcast Server i SHOUTcast Trans. Mam
nadzieję, że zawarte tu informacje przydadzą się wam. Należy o korespondencję z
komentarzami i sugestiami. Życzę samych przyjemności z waszego nowego Serwera
SHOUTcast!
Zawartość tego dokumentu jest rozpowszechniana na podstawie licencji Creative Commons -
Attribution / Share Alike.
|