Download: SysadminDarwin

Transkrypt

Download: SysadminDarwin
Serwer transmisji strumieniowych Darwin
SYSADMIN
Transmisja strumieniowa z serwera Darwin
U ŹRÓDEŁ
STRUMIENIA
Serwer transmisji strumieniowej Darwin firmy
Apple jest darmową wersją komercyjnego
serwera Quicktime. Darwin obsługuje
nowoczesne formaty MP3 i MPEG-4 oraz
posiada fronton internetowy. W tym artykule
pokazujemy, jak przygotować to
oprogramowanie do pracy.
OLIVER FROMMEL
S
trumieniowa transmisja wideo jest
wciąż mało popularną aplikacją
wśród użytkowników Linuksa. Serwery dostępne publicznie często obsługują
tylko własne, nietypowe formaty, natomiast
produkty komercyjne są zaporowo drogie.
Na przykład serwer Real działa bardzo dobrze, ale kosztuje kilka tysięcy dolarów. Natomiast serwer Basic jest za darmo, ale obsługuje najwyżej pięciu klientów, a po roku
działania automatycznie wyłącza się [1].
Z lepszych wiadomości: Apple udostępnił ważne komponenty serwera Quicktime
na własnej licencji Open Source, Apple Public Source License [2]. Serwer transmisji
strumieniowej Darwin (Darwin Streaming
Server DSS) obsługuje popularne formaty
audio Quicktime i MP3 oraz format wideo
MPEG-4.
Darmowy serwer strumieni
MP3 i MPEG-4
Żeby pobrać oprogramowanie, musimy
najpierw zarejestrować się na stronie Ap-
ple [3]. Następnie przechodzimy na stronę
serwera DSS [4] i w części Source Code klikamy pozycję Streaming Server 5.0.1. Ewentualnie można zainstalować pakiet dla dystrybucji Red Hat 9.0, który działa także
w Debianie, Suse 9.1 i Fedorze Core 3.
Opis budowania oprogramowania z kodu źródłowego przedstawiono w Ramce
„Zrób to sam”.
Sam program działa jak należy na wielu
dystrybucjach; nie można tego jednak powiedzieć o skrypcie instalacyjnym. Na
przykład, w niektórych systemach może
brakować odpowiedniej grupy, w związku
z czym może zajść konieczność ręcznego
zdefiniowania jej w systemie poleceniem
groupadd qtss. Plik konfiguracyjny dołączony do kodu źródłowego też nie jest zbyt
użyteczny. Zamiast niego należy użyć pliku konfiguracyjnego z pakietu binarnego
– opracowano w nim lepsze ustawienia.
Po przygotowaniu pliku konfiguracyjnego oraz kont użytkownika i grupy administrator uruchamia serwer poleceniem
/usr/local/sbin/DarwinStreamingServer.
WWW.LINUX-MAGAZINE.PL
Opcja -d powoduje, że serwer startuje
w tle. Kombinacja klawiszy [Ctrl-C] przerywa działanie programu. Skrypt /usr/local/sbin/streamingadminserver.pl uruchamia
interfejs internetowy serwera.
Konfiguracja za pomocą
przeglądarki
Jeśli widzimy komunikat Launching Streaming Server..., możemy spróbować użyć
frontonu internetowego. W tym celu
w przeglądarce wpisujemy adres http://adres_serwera: 1220/. Jeśli serwer i przeglądarka znajdują się na tym samym komputerze, zamiast pełnego adresu serwera wystarczy wpisać słowo localhost; w przeciwnym razie musimy podać nazwę i adres IP
odpowiedniego komputera. Ewentualnie
program DarwinStreamingServer można
uruchomić bez frontonu internetowego,
ręcznie dostosować plik konfiguracyjny do
wymagań i wymusić ponowne odczytanie
ustawień poleceniem killall -HUP DarwinStreamingServer.
NUMER 15 KWIECIEŃ 2005
65
SYSADMIN
Serwer transmisji strumieniowych Darwin
Rysunek 1: Główne okno interfejsu
internetowego ze statystykami aktywnego
serwera.
Logujemy się do frontonu internetowego, podając nazwę i hasło określone podczas instalacji. Na kolejnej stronie Darwin
prosi o podanie hasła dostępu do strumieni MP3 rozsyłanych przez serwer.
Następnie program pyta, czy dla połączenia ma być stosowane szyfrowanie SSL. Żeby takie szyfrowanie działało, Darwin wymaga dodatkowych elementów: biblioteki
OpenSSL, modułu Perla Net:: SSLeay oraz,
przede wszystkim, poprawnego certyfikatu
SSL. Bezpieczny fronton internetowy nasłuchuje na porcie 1240. Oczywiście, jeśli
z Darwina korzystamy w domu lub w zaufanym środowisku sieciowym, możemy się
obejść bez SSL.
Następnie określamy ścieżkę do plików
wideo
(domyślnie
/usr/local/movies – w
tym miejscu skrypt
umieścił przykładowe
pliki). Wreszcie, Darwin udostępnia opcję
transmisji przez port
80, która może pomóc
obejść zapory sieciowe. Za pomocą interfejsu internetowego
wszystkie te opcje
można także zmienić
w późniejszym czasie.
Po
wprowadzeniu
ustawień powinniśmy zobaczyć okno główne frontonu internetowego (Rysunek 1).
Jak wcześniej wspomniano, przykładowe
pliki wideo są podczas instalacji umieszczane w katalogu /usr/local/movies. Aby je
odtworzyć w systemie Linux, potrzebujemy programu obsługującego format
MPEG-4 i protokół transmisji strumieniowej RTSP. Jeśli zamierzamy korzystać
z programu MPlayer [5], musimy go skompilować z obsługą biblioteki LIVE [6].
Większość odtwarzaczy, takich jak klient
VideoLAN vlc [7], do odtwarzania plików
MPEG-4 wymaga biblioteki Ffmpeg [8].
Darwin umożliwia tworzenie list odtwarzania
znajdziemy w prawym górnym rogu interfejsu.
Zrób to sam: MPEG-4
Kodowanie własnych plików MPEG-4 jest
sztuką samą w sobie. Nie wystarczy mieć
materiał wideo na dysku twardym; żeby
Żeby zbudować serwer Darwin z kodu źródłowego, najpierw rozpakowujemy plik zip poleceniem
unzip DarwinStreamingSrc5.0.1.1. zip. Następnie przechodzimy do nowo utworzonego katalogu
DarwinStreamingSrc5.0.1.1 i tam wpisujemy polecenie ./Buildit. Skrypt ./Install przenosi pliki do
odpowiednich lokalizacji: /usr/local/bin i /usr/local/sbin (programy) oraz etc/streaming (pliki konfiguracyjne). Skrypt instalacyjny prosi także o wprowadzenie nazwy i hasła administratora serwera
Darwin.
W skrypcie tym jest jednak błąd: Buildit nie wstawia plików tam, gdzie spodziewa się ich Install:
copying qtpasswd to /usr/local/bin/qtpasswd
cp: cannot stat `qtpasswd': No such file or directory
Właściwą lokalizację odczytujemy z komunikatów zwracanych przez skrypt i ręcznie kopiujemy pliki. Jeśli nie możemy zlokalizować plików, używamy narzędzia find:
# find -name „qtpasswd”
./qtpasswd. tproj/qtpasswd
Kopiujemy ten plik w miejsce oczekiwane przez skrypt instalacyjny: cp./qtpasswd. tproj/qtpasswd
/usr/local/bin. Czynność powtarzamy dla wszystkich wymaganych plików.
NUMER 15 KWIECIEŃ 2005
Rysunek 2: Serwer transmisji strumieniowej
filmów i „empetrójek” – odpowiednie łącza
Zrób to sam
66
uzyskać format MPEG-4, musimy wykonać jeszcze kilka czynności:
■ Z oryginalnego pliku wyodrębniamy dane audio i zapisujemy je w oddzielnym
pliku (np. poleceniem ffmpeg -vn).
■ Poleceniem faac kodujemy ścieżkę audio
do formatu AAC.
■ Programem ffmpeg konwertujemy wideo
do formatu MPEG-4.
■ Pliki audio i wideo łączymy w jeden strumień MPEG-4 poleceniem mp4creator
z pakietu MPEG4IP [9]. Technicznie
takie łączenie określa się mianem multipleksingu. Opcja -hint powoduje dodanie do pliku tzw. wskazówek, czyli
znaczników, których serwer używa do
przewijania w przód lub w tył.
Pakiet MPEG4IP zawiera też odtwarzacze MPEG-4 z interfejsem graficznym
i bez niego. Program mp4info wyświetla następujące informacje o jednym z przykła-
WWW.LINUX-MAGAZINE.PL
dowych plików MPEG-4: najpierw widzimy ścieżkę audio w formacie AAC, potem
ścieżkę wideo, a na końcu wspomniane
wskazówki. Po ścieżkach przedstawiane są
dane scen i deskryptory obiektów, których
opis możemy na tym etapie pominąć.
Listy odtwarzania MP3
Serwer Darwin potrafi także strumieniować pliki MP3, ale do tego wymaga listy
odtwarzania. Aby utworzyć listę odtwarzania, klikamy pozycję Playlists po lewej
stronie frontonu internetowego. W prawym górnym rogu, obok większego pola,
znajdziemy dwa łącza: New MP3 Playlist
(nowa lista odtwarzania MP3) New Movie
Playlist (nowa lista odtwarzania sekwencji
wideo – Rysunek 2).
Kliknięcie łącza New MP3 Playlist powoduje otworzenie strony pokazanej na
Rysunku 3. Pola tekstowe w górnej jej części służą do określenia nazwy listy odtwarzania oraz miejsca montowania, tzn. tej
Serwer transmisji strumieniowych Darwin
SYSADMIN
Tabela 1: Ważne pliki i ścieżki
Nazwa
Funkcja
/usr/local/sbin/DarwinStreamingServer
Główny program
/usr/local/sbin/streamingadminserver. pl
Skrypt w Perlu obsługujący fronton internetowy
/etc/streaming/
Katalog z informacjami konfiguracyjnymi
/etc/streaming/streamingserver. xml
Plik konfiguracyjny serwera
/var/streaming/logs
Katalog z dziennikiem zdarzeń
części adresu URL, według której odtwarzacz będzie lokalizował listę. Nie zaszkodzi także wybrać odpowiedni gatunek muzyki w ramce pod tymi polami.
W prawej górnej części okna można
określić tryb odtwarzania listy: Sequential
(kolejno), Sequential Looped (kolejno z zapętleniem) lub Weighted Random (kolejność losowa ważona). Żeby Darwin odtwarzał ścieżki w rzeczywiście przypadkowej kolejności, w polu tekstowym Repetition wprowadzamy wartość 0. W przeciwnym razie przed powtórzeniem ścieżki serwer odtworzy każdą z nich przynajmniej raz.
W polu po lewej stronie widzimy listę
dostępnych ścieżek audio, a po prawej stronie – bieżącą listę odtwarzania. Programiści Apple użyli tutaj sprytnego triku w JavaScript, dzięki któremu ścieżki można po
prostu przeciągać między polami myszą.
Dwukrotnym kliknięciem przechodzimy
do podkatalogu; można także kliknąć łącze
Open Folder pod polem tekstowym.
Interfejs umożliwia także określenie wagi wskazanej ścieżki w trybie odtwarzania
losowego. Im większą liczbę wprowadzimy, tym częściej Darwin będzie odtwarzał
dany plik. Po skonfigurowaniu listy odtwarzania klikamy przycisk Save Changes
na dole okna.
Na następnej stronie widzimy zestawienie zdefiniowanych list odtwarzania. Listy
te nie są jeszcze aktywne. Kliknięcie ikony
statusu listy powoduje jej uaktywnienie.
Teraz możemy już pobrać strumień za pomocą odtwarzacza MP3, wpisując w nim
adres http://serwer: 8000/punkt_montowania. Dzienniki zdarzeń Darwina są przechowywane w podkatalogach o nazwach
list odtwarzania, poniżej katalogu
/var/streaming/playlists. Plik z rozszerzeniem .err zawiera informacje o błędach,
z rozszerzeniem .config – informacje związane z konfiguracją, .log – rejestr zdarzeń,
zaś .playlist – samą listę odtwarzania.
Domyślnie Darwin korzysta tylko z centralnego katalogu /usr/local/movies zawierającego pliki wideo i audio. Polecenie cre-
ateuserstreamingdir jim spowodowałoby utworzenie drzewa
katalogów
Sites/Streaming
w katalogu domowym użytkownika jim. Tam użytkownik Jim może przechowywać
pliki multimedialne, a inni
będą mieli do nich dostęp
przez wpisanie w odtwarzaczu
rtsp://Servername/user/filmik. mp4.
np.
Rysunek 3: Łatwy w użyciu interfejs obsługi
list odtwarzania – ścieżki można przeciągać
i upuszczać myszą.
Problematyczne
rozwiązywanie problemów
Złożoność architektury opisywanego rozwiązania powoduje, że trudno jest zlokalizować przyczynę ewentualnych problemów. Odtwarzacze multimedialne słyną
z małej jasności komunikatów o błędach,
dlatego często trudno dojść, czy program
nie może znaleźć pliku na serwerze, czy
też po prostu brakuje mu kodeka.
Analiza informacji po stronie serwera
wnosi niewiele. Darwin co prawda zapisuje zdarzenia w dziennikach, ale zazwyczaj
są to bezużyteczne informacje. Na przykład, w programie /var/streaming/logs/Error.log w ogóle nie pojawiły się informacje
o błędach, nie mówiąc już o sposobach ich
naprawiania. Równie mało przydatne dane zawiera część Error Log interfejsu inter-
Listing 1: Wynik działania
programu mp4info
$ mp4info sample_100kbit. mp4
mp4info version 1.1
sample_100kbit. mp4:
Track Type Info
1 audio MPEG-4 AAC LC, 70.031 secs,U
28 kbps, 22050 Hz
2 video MPEG-4 Simple @ L3, 70.000U
secs, 63 kbps, 192x240 @ 15.00 fps
3 hint Payload MP4V-ES for track 2
4 hint Payload mpeg4- generic forU
track 1
5 scene BIFS
6 od Object Descriptors
WWW.LINUX-MAGAZINE.PL
netowego. Jedynie w dziennikach zdarzeń
powiązanych z listami odtwarzania można
znaleźć wskazówki naprowadzające na
źródło problemu.
Potencjał techniczny serwera transmisji
strumieniowych Darwin jest bardzo duży.
Już teraz można „postawić” bezpłatny
i stabilny serwer strumieni multimedialnych, wspomagając się przy tym takimi publicznie dostępnymi narzędziami jak FFMpeg i MPEG4IP. Niestety, z oprogramowania
na razie nie korzysta się zbyt łatwo, nawet
mimo rozsądnie zaprojektowanego interfejsu
internetowego. Co prawda problemy z instalacją i diagnozowaniem błędów nie są trudne
do rozwiązania, ale najwyraźniej użytkownicy Linuksa są jeszcze daleko poza centrum
zainteresowania firmy Apple.
■
INFO
[1] Serwer Helix Basic: http://forms.real.com
/rnforms/products/servers/eval/mbps.html
[2] Licencja Apple Public Source License:
http://www.opensource.apple.com/apsl
[3] Rejestracja:https://signin.apple.com
[4] Serwer transmisji strumieniowej Darwin:
http://developer.apple.com/darwin/projects
/streaming/
[5] MPlayer: http://www.mplayerhq.hu
[6] Biblioteka LIVE do obsługi protokołu
RTSP: http://www.live.com/liveMedia
[7] VideoLAN: http://videolan.org/vlc/
[8] FFMpeg: http://ffmpeg.sourceforge.net
[9] MPEG4IP: http://mpeg4ip.sourceforge.net
NUMER 15 KWIECIEŃ 2005
67

Podobne dokumenty