Single Blog Title

This is a single blog caption
4
Sie

Serwer Red5 – wprowadzenie

Jeśli zajmujesz się e-learningiem to prędzej, czy później przyjdzie spotkać Ci się z wideokonferencją. Jako prowadzący zapewne będziesz potrzebować kamery, przyzwoitego łącza i jakiegoś oprogramowania. Przeważnie bywa to Skype, Flash Meeting, DimDim, Acrobat Connect i wiele innych. Co jednak gdy zaczniesz się interesować tym od strony technicznej ?

DYI – czyli Adam Słodowy rulezz

W poprzednim poście pisałem o tym jak w prosty sposób wyświetlić we flash’u obraz z kamery.
Do całości przedsięwzięcia wystarczy Flash i 8 linijek kodu, ot takiego :


import flash.display.Bitmap;
import flash.display.BitmapData;
var cam:Camera = Camera.getCamera();
var video:Video = new Video(320,240);
video.attachCamera(cam);
video.x = 10;
video.y = 10;
addChild(video);

Dla leniwych plik do pobrania plik .fla wystarczy skompilować i po sprawie.
Wszystko fajnie, ale to tylko wyświetlanie obrazu z własnej kamery, przy takim podejściu dałoby się jeszcze przechwycić obraz i zapisywać go lokalnie, no ale po co ?

Strumieniowanie we Flashu, czyli „Gdzie strumyk płynie z wolna…”

Ponieważ chcemy obraz (dźwięk też) strumieniować, czyli przesyłać z 1 komputera na drugi, to albo będziemy stosować p2p, albo lepiej jakiś serwer, który zajmie się nam przesyłaniem, zapisem, udostępnianiem i autoryzacją i jeszcze masą innych rzeczy. No ale z racji tego, że nie specjalnie interesowałem się strumieniowaniem warto było się zastanowić co to się w trakcie tego tajemnego procesu dzieje.
Otóż w trakcie strumieniowania klient Flash, uruchomiony przeważnie w przeglądarce otwiera stałe łącze do serwera multimediów (serwera Flash) i następuje wzajemna kontrola między wczytywanym wideo a działaniem klienta. Serwer wykrywa szerokość pasma przeznaczoną do dostarczania zawartości wideo lub audio opierając się na paśmie dostępnym dla użytkownika. To pozwala ci na dostarczanie różnej zawartości użytkownikom, opierając się na ich zdolności do łatwego dostępu i wczytywania zawartości. Na przykład, jeśli użytkownik uzyskuje dostęp do twojej zawartości wideo za pomocą modemu telefonicznego, możesz mu dostarczyć odpowiednio zakodowany plik, który nie wymaga dużej szerokości pasma.
Serwer udostępnia także metrykę jakości usługi, szczegółowe śledzenie i raportowanie statystyk oraz szereg funkcji interaktywnych zaprojektowanych w celu polepszenia jakości wideo. W trakcie stopniowego pobierania zawartość wideo jest przechowywana poza inną treścią Flash i elementami sterowania przeznaczonymi do odtwarzania wideo. To pozwala stosunkowo łatwo dodać lub zmienić zawartość bez potrzeby ponownego publikowania pliku SWF.

Kolejne plusy strumieniowania znasz pewnie z youtube’a, ale może zbiorę je tutaj :

  1. Po uruchomieniu odtwarzania film rozpoczyna się dużo szybciej.
  2. Strumieniowanie video zużywa mniej zasobów, bo nie pobierany jest cały plik.
  3. Zasoby sieciowe są używane w sposób bardziej efektywny, ponieważ przesyła się klientowi tylko te części wideo, które są oglądane.
  4. Strumieniowanie wideo zapewnia lepsz monitorowanie, raportowanie i możliwość logowania.
  5. Strumieniowanie pozwala dostarczyć na żywo prezentacje wideo i audio lub lub przechwycić wideo z kamery internetowej lub cyfrowej.

Myślę, że eksperci mogą dodać tu wiele zalet, ale na moje potrzeby p. 5 jest zupełnie wystarczający.

RED5

Red5 to bardzo intensywnie rozwijany projekt serwera multimediów. Red5 to napisany w Javie i wykorzystujący technologię Flex i protokół RTMP serwer pozwalający na : – Strumieniowanie audio (MP3) – Strumień wideo (FLV) – Rejestrowanie strumieni klienta (tylko FLV) – Współużytkowanie obiektów – Publikowanie strumeni „na żywo” – Remoting (AMF) – Wideokonferencje dla wielu użytkowników – Nagrywanie wideo i audio

Instalacja Java 1.6 na Mac OSX 10.5

RED5 był dość oczywistym wyborem, bo znając podstawy flex’a stwierdziłem, że będę sobie mógł z nim poradzić. No więc do dzieła, uruchomimy RED5 pod Mac OS X 10.5.

Pierwszą rzeczą było oczywiście pobranie najnowszej dystrybucji RED5 v.0.8 i próba instalacji. Pierwsze wymaganie to oczywiście odpowiednia wersja Java. Sprawdzamy więc jaką wersją javy dysponujemy, powinniśmy mieć 1.6.0. Uruchamiamy terminal i sprawdzamy wpisując

$ java -version

w moim przypadku wyglądało to następująco:

java -version
java version „1.5.0_13”
Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_13-b05-237)
Java HotSpot(TM) Client VM (build 1.5.0_13-119, mixed mode, sharing)

Okazało się, że wersja 10.5 Mac OS X posiada wersję 1.5.x, więc nie wystarczającą, no to cóż aktualizujemy zgodnie z instrukcją. Update z 15 czerwca 2009, więc w miarę aktualny, ale pojawił się problem:


najpierw wymagana była aktualizacja systemu. Później instalacja przebiegła bezproblemowo. Pojawił się jednak inny problem, otóż ciągle działała wersja 1.5, a to skutecznie uniemożliwiło uruchomienie Red5. Walka trwała nadal, ale tym razem widać było już koniec :)

Sprawdzamy więc do jakiej wersji linkuje polecenie „java”

ls -la /usr/bin/java

lrwxr-xr-x 1 root wheel 74 Apr 30 08:41 /usr/bin/java -> /System/Library/Frameworks/JavaVM.framework/Versions/Current/Commands/java

po czym usuwamy stary link:

rm /usr/java/bin

i tworzymy nowy

sudo ln -s /System/Library/Frameworks/JavaVM.framework/Versions/1.6/Commands/java /usr/bin/java

teraz sprawdzamy wersję jeszcze raz:


Ok jest 1.6.0.

Uruchomienie RED5

Jeśli już mamy javę uruchamiamy RED5 po raz pierwszy. Najpierw jednak definiujemy zmienną środowiskową RED5_HOME.

export RED5_HOME=/usr/lib/twoja/sciezka/

I to wystarczy teraz, uruchamiamy RED5 tak jak każdą inną aplikację. Uruchamiamy przeglądarkę i otwieramy url: http://localhost:5080/

Jak widać serwer działa, pozostaje nam teraz instalowanie aplikacji demonstracyjnych. Przechodzimy do installera : http://localhost:5080/installer/ i instalujemy. Oczywiście zainstalowałem od razu wszystkie, żeby zobaczyć jak działa.

No i zadziałało!

Podobało Ci się? Chcesz więcej?

Zostaw swój e-mail, bardzo chętnie przypomnę Ci o nowych treściach, a przy okazji dostaniesz e-booka o elearningu.

Poprzednie newslettery możesz znaleźć na stronie archiwum.

* indicates required