Home > Java > Tworzenie aplikacji Xuggle Red5 z użyciem Maven2

Tworzenie aplikacji Xuggle Red5 z użyciem Maven2

Chciałbym zaprosić do mojego projektu jakubiak-red5, którego celem jest połączenie następujących technologii: Red5, Xuggle, Maven2. Xuggle umożliwia obróbkę obrazów wideo w czasie rzeczywistym. Red5 to serwer aplikacji multimedialnych. Maven2 do najwspanialsze narzędzie organizujące proces budowania aplikacji. Chcę mieć to wszystko razem!!!

Mój projekt to w zasadzie skrypt budujący. Jest to instrukcja dla Maven2 jak zbudować serwer Red5 i część (Javową) biblioteki Xuggle. Działa to w następujący sposób. W repozytorium SVN znajduje się struktura projektu Maven wraz z plikami pom.xml. Kod źródłowy bibliotek nie Red5 i Xuggle nie ulega zmianie, gdyż jest połączony z kodem źródłowym oryginalnych projektów z wykorzystaniem svn:externals. Aby zbudować biblioteki wystarczy wpisać mvn clean install. Zakładam że każdy programista Javy już kocha, lub pokocha Mavena w przyszłości dlatego nie będę o nim pisał.

Wynikiem pracy mojego projektu są zależności które można użyć w nowym projekcie – nowej aplikacji Red5 (Red5+Xuggle).

Do boju!

Potrzebne jest Xuggle. Instalacja Xuggle jest prosta w stosunku do tego co potencjału tej biblioteki (przynajmniej pod Windows). Setup.exe.

Kolejna instalacja to Red5. Polecam wypróbować wersje 0.8RC2. Znowu setup.exe. Dla Windows potrzebna jest 32bitowa Java.

Jeszcze binarna Maven2. Pobrać, rozpakować, wypróbować.

Na koniec trzeba pobrać źródła mojego projektu.

svn checkout http://jakubiak-red5.googlecode.com/svn/trunk/ jakubiak-red5-read-only

 

To polecenie pobierze źródła mojego projektu oraz źródła serwera Red5 a także część źródeł projektu Xuggle. Nastał czas na testową kompilację:

cd jakubiak-red5-pom/
mvn clean install
cd ../jakubiak-xuggle-pom/
mvn clean install

 

Zanim ujrzymy ten cudowny komunika przyjdzie nam pobrać z Internetu trochę zależności których z różnych powodów może brakować w repozytoriach Mavena i nie są automatycznie pobierane.

Czas na testy. Trzeba opublikować zbudowane moim skryptem przykłady na serwerze Red5, po prostu skopiować katalogi.

cp -r jakubiak-red5-oflaDemo/target/jakubiak-red5-oflaDemo-0.8-SNAPSHOT/ ../../Program\ Files\ \(x86\)/Red5/webapps/
cp -r jakubiak-xuggle-xuggler-red5-videotranscoder/target/jakubiak-xuggle-xuggler-red5-videotranscoder-1.0-SNAPSHOT/ ../../Program\ Files\ \(x86\)/Red5/webapps/
net start Red5

 

Trzeba uruchomić przeglądarkę Internetową i pobawić się przykładami: http://localhost:5080/demos/ofla_demo.html, http://localhost:5080/demos/publisher.html

Jeżeli chcemy zobaczyć Xuggle w akcji to w programie Publisher łączymy się z aplikacją videotranscoder: rtmp://localhost/videotranscoder a nazwę odtwarzanego strumienia podajemy z prefixem xuggle_.

Moja biblioteka Jakubiak-red5 zastępuje w po części standardowy proces budowania. Red5 i Xuggle budowane są przy użyciu Apache Ant i Ivy (mam dreszcze). Ja buduję je z Maven2. Jest z tym trochę roboty, jednak na pewno się to opłaci. Dzięki temu łatwo jest mi zbudować aplikacji łączącą wiele ciekawych technologii, np.: JPA, Spring. Mogę też zbudować aplikację WAR zawierającą Red5, Xuggle którą odpalę na Apache Tomcat 6. Mogę też przyjemnie pracować z Eclipse IDE.

Najważniejsze, moja biblioteka nie modyfikuje źródeł projektów Xuggle i Red5!

Alternatywą dla mojego skryptu budującego jest dodanie bibliotek JAR Red5 i Xuggle wprost do repozytorium Maven. Jednak w ten sposób ciężko jest zbudować wersję WAR aplikacji Red5. Wersja WAR jest niezmiernie przydatna, napiszę o tym jeszcze kiedyś.

Categories: Java Tags:
  1. No comments yet.
  1. No trackbacks yet.

Subscribe without commenting