Archive

Archive for January, 2009

Jak uruchomić Xuggle na Red5

January 29th, 2009 No comments
Dziś udało mi się uruchomić demo Xuggle serwerze Red5. Cieszę się z tego niezmiernie, ponieważ te technologie będą odgrywały dużą rolę w przyszłości Internetu. Napisałem już jak działa połączenie Xuggle i Red5. Teraz opisze, jak uruchomiłem Xuggle i Red5 na swoim komputerze z Windows Vista 64bit. Zacząłem od pobrania i instalacji najnowszej wersji serwera Red5 – 0.8RC2. Zainstalowałem też oczywiście aplikację Xuggle. Wersje dla Windows instaluje się trywialnie, poleceniem Setup.exe i restart komputera. Następnie zbudowałem szkielet aplikacji webowej WAR składający się z plików: Potrzebne pliki można pobrać stąd:
  1. http://xuggle.googlecode.com/svn/trunk/repo/share/java/xuggle/xuggle-xuggler-red5/xuggle-xuggler-red5-1.17.117.jar
  2. http://xuggle.googlecode.com/svn/trunk/java/xuggle-xuggler-red5/web/videotranscoder/WEB-INF/red5-web.properties
  3. http://xuggle.googlecode.com/svn/trunk/java/xuggle-xuggler-red5/web/videotranscoder/WEB-INF/red5-web.xml
  4. http://xuggle.googlecode.com/svn/trunk/java/xuggle-xuggler-red5/web/videotranscoder/WEB-INF/web.xml
Następnie wgrałem moją aplikację do katalogu webapps serwera Red5. Korzystając z 32bitowej wersji Javy uruchomiłem serwer Red5. Ustawiłem też zmienne środowiskowe:  
$ export | grep HOME
declare -x JAVA_HOME="C:\\Program Files\\Java\\jdk1.6.0_10"
declare -x RED5_HOME="C:\\Program Files (x86)\\Red5"
declare -x XUGGLE_HOME="C:\\Program Files (x86)\\Xuggle"
    Uruchomiłem Red5: red5.bat. Do testowania użyłem aplikacji demo z serwera Red5 – Publisher. http://localhost:5080/demos/publisher.html. Zwróciłem uwagę, by łączyć się do aplikacji videotranscoder a nie oflaDemo. Pozostałe ustawienia bez zmian. Uruchamiam kamerę i mikrofon i rozpoczynam emisję wideo. Nazwa strumienia antek. Aby zobaczyć efekt działania Xuggle uruchamiam oglądanie wideo. Nazwa: xuggle_antek. Po kilku godzinach prób i przy pomocy Art Clarke udało się. Zobaczyłem swoją drugą twarz! Dzięki Art! W następnym odcinku opiszę jak programować Xuggle używając Eclipse i Maven 2. Najpierw jednak muszę się tego nauczyć i coś zjeść.
Categories: Java Tags:

Xuggle + Red5 = Hello World

January 29th, 2009 No comments

Udało się, uruchomiłem przykład klasy Hello World dla tandemu Xuggle i Red5.

Jak to działa? W przeglądarce internetowej uruchamiam aplikację która publikuję obraz z kamery internetowej mojego laptopa. Publikowany obraz przetwarzany jest na serwerze Red5 przy użyciu Xuggle. Internauci w swoich przeglądarkach mogą widzieć przetworzony przez serwer, opublikowany przeze mnie obraz. Nastała nowa era w multimedialnych aplikacjach internetowych!

 

Możliwości wydają mi się niesamowite. Na przykład marzy mi się wideo konferencja gdzie a uczestnicy widzą siebie tak, jakby byli przy jednym stole. Albo serwer rozpoznaje twarz Internauty i na tej podstawie wita się z nim: “Dzień dobry Pani”, “Witam szanownego Pana”, “Mordo ty moja”. Albo strona biura turystycznego, wchodzimy na stronę, uruchamia się kamera naszego laptopa i po chwili widzimy siebie bujającego się w hamaku rozwieszonym między palmami na wspaniałej plaży.

Z całą pewnością, perspektywa hamaku jest przyjemniejsza niż perspektywa pracy przy komputerze. Wracam jednak do konkretów. Co się dzieje na serwerze? Serwer – Red5 – otrzymuje od Internauty film. Ten film to strumień danych. Może zawierać obraz, muzykę lub inne dane. Strumień wideo jest skompresowany. Serwer musi go rozpakować, tak aby z obrazu wideo otrzymać kolejne klatki (to robota dla Xuggle i FFmpeg). Przypomina to trochę starą taśmę filmową, na której wciąż jeszcze kręci się filmy w Hollywood.

Wynikiem dekompresji filmu jest lista zdjęć. To co serwer z nimi zrobi zależy od wyobraźni twórców witryny internetowej. Następnie serwer kompresuje listę zdjęć – tworząc z niech nowy film – nowy strumień danych. Serwer może zapisać wynik swoje pracy lub też może go udostępnić do pobierania na żywo.

Oczywiście, w podobny sposób możemy też przetwarzać dźwięk. Na przykład do rozmowy dwojga ludzi na czacie możemy dodać ich ulubioną muzykę, lub odgłosy tła takie jak szum ludzi w kawiarni.

Jak widać, serwer ma sporo pracy: dekompresja i kompresja strumieni audio i wideo, przetwarzanie obrazu lub dźwięku. Podczas moich testów obciążenie laptopa sięgało 10%. Jednak serwer robi coś nowego, coś czego Internauci się nie spodziewają. Coś, co może być kluczem do sukcesu. Uważam, że dla efektu warto będzie grzać serwery.

W następnym artykule opiszę jak uruchomić aplikację Xuggle Hello World na serwerze Red5.

Categories: Red5 Tags:

Red5 – instalacja panelu administratora

January 28th, 2009 4 comments

W największym skrócie Red5 to serwer internetowych aplikacji multimedialnych. Aktualnie przeżywa on okres intensywnego rozwoju. Właśnie udało mi się uruchomić panel administratora, a ponieważ nie jest to sprawa trywialna więc opiszę ją tu by dobrze zapamiętać.

A więc najnowszą wersje Red5 0.8RC2 pobieram ze strony Xuggle. Instaluję zgodnie z instrukcją, czyli rozpakowuję i ustawiam zmienną środowiskową RED5_HOME. Następnie uruchomiam aplikację Installer: http://localhost:5080/installer/, instaluję aplikację admin i restartuję Red5. Następnie, jak to opisano na forum, rejestruję się: http://localhost:5080/admin/register.html. Po rejestracji ponownie restartuję Red5. Teraz już mogę się zalogować: http://localhost:5080/demos/adminPanel.html

W panelu administratora mogę przejrzeć listę włączonych aplikacji, zobaczyć aktualnie podłączonych klientów, sprawdzić transfer.

A teraz wracam do nauki tematu Xuggle – Red5.

Categories: Java, Red5 Tags:

Xuggle

January 26th, 2009 3 comments

Dziś, z zawodową ciekawością zacząłem przyglądać się projektowi Xuggle.

Xuggle umożliwia kodowanie, dekodowanie i obróbkę wideo w czasie rzeczywistym!!! Xuggle może być kluczem do połączenia potęgi biblioteki FFmpeg z potęgą Javy. Korzystając z Xuggle uda się napisać odtwarzacz filmów wideo w Javie i dodatkowo wyposażyć go w funkcje do edycji video. Wyczytałem (i mam zamiar to przetestować), że Xuggle współpracuje z serwerem Red5. Red5 + Xuggle otwiera świat możliwości w dziedzinie aplikacji video – internetowych. Będę w tym temacie.

Categories: Java, Red5 Tags:

Serwer do konwersji plików multimedialnych

January 25th, 2009 4 comments

Chciałbym zaprosić do nowego projektu mojego kolegi Łukasza Krajewskiego służącego do konwersji formatów multimedialnych i nie tylko…

Budując strony Internetowe, często chcemy wzbogacić je o możliwość wgrywania filmów przez uczestników. Wgrywanie filmów (tak samo jak wgrywanie zdjęć) wymaga wykonania pewnych czynności po stronie serwera związanych z konwersją filmu do formatu internetowego, na przykład do FLV lub H264. Niestety, konwersja filmów jest skomplikowana. Po pierwsze, jest czasochłonna – czas jej trwania jest zależny od długości filmu i może trwać od kilku sekund do wielu godziny. Po drugie, wymaga zainstalowania na serwerze specjalnego oprogramowania które potrafi odczytać jak najwięcej formatów wideo i które potrafi zapisywać do formatów internetowych. Oprogramowanie to instaluje się dość ciężko i przeważnie wymaga dedykowanego serwera lub przynajmniej VPS. Właśnie dlatego pisanie aplikacji umożliwiających użytkownikom wgrywanie multimediów jest trudne. Projekt Multimedia Conversion ma to uprościć.

Projekt Multimedia Conversion (MC) jest darmowy i dostępny na licencji GPL. Wykorzystuje technologie PHP, Zend Framework i FFmpeg. Multimedia Conversion to usługa sieci web. W skrócie działa to tak: aplikacja która chce konwertować filmy, musi wykonać metodę na serwerze MC. Serwer MC poinformuje aplikację o statusie konwersji. Odsyłam do Wiki po bardziej szczegółowy opis.

Na chwile obecną dostępne są konwersje filmów do FLV, H264 i 3GP oraz konwersja muzyki do formatu MP3. Dodatkowo, podczas konwersji do formatów wideo wykonywana jest miniaturka – czyli klatka ze środka filmu. Nowe formaty dodawać łatwo jest (jak by to powiedział Yoda).

Gol projektu to wyizolowanie skomplikowanego procesu konwersji filmów i zamknięcie go na osobnym serwerze. Taki serwer będzie łatwiejszy w administracji. Jest to szczególnie ważne, gdy w firmie powstaje wiele aplikacji i potrzebują one automatycznej konwersji materiałów video. Dzięki serwerowi MC ich wdrożenie będzie tańsze. Aplikacje multimedialne nie będą wymagały instalowania skomplikowanego oprogramowania do konwersji filmów. Skomplikowana konwersja filmów zostanie wykonana na wydzielonym serwerze – MC. Aplikacje multimedialne które używają MC będzie można uruchamiać na zwyczajnym – tanim hostingu.

Zainteresowanym osobom mogę udostępnić serwer MC do testowania.

Tak się fajnie składa, że wiem co nieco na temat planów rozwoju aplikacji MC. Plany są takie.: aplikacja MC nie będzie służyła wyłącznie do konwersji formatów wideo, ale ma działać jako aplikacja do montażu filmów video. Czy na przykład mamy kilka filmów, wycinamy z nich fragmenty i montujemy w nowy film. Trzymam kciuki Łukasz!!!

 

 

 

 

Categories: PHP, Programowanie, Zend Framework Tags:

Oszukańcza promocja 2x Tak Tak

January 25th, 2009 5 comments

Dałem się dziś oszukać na promocji doładowania telefonu w sieci Era Tak Tak. Era obiecała mi podwoić wartość mojego drugiego zasilenia telefonu. Zasiliłem więc maksymalną kwota 500zł. Otóż, Era nie podwaja naprawdę tylko podwaja do kwoty 150zł. W moim przypadku, zamiast podwojenia dostałem tylko 30% więcej. Czuję się oszukany na 350zł… Oczywiście, mogłem wcześniej przeczytać regulamin promocji a nie tylko ufać temu co do mnie w SMSach przychodzi… Oczywiście Era mogła też dopisać do SMSa 2 słowa: max 150zł. Mam kolejny argument żeby zrezygnować z telefonu w Tak Tak i przejść na abonament, jednak na pewno nie do Ery.

Takie cwaniactwo marketingowe to szybka kasa lecz strata lojalności klientów.

Categories: Recenzje Tags:

Ulepszenie eksperymentalnych tłumaczeń

January 19th, 2009 No comments

Kilka dni temu napisałem o tym, że wprowadziłem do strony forum automatyczne tłumaczenia Google. Mój kolega Miszka Gruszkow zaproponował mi jak ulepszyć ten system. Dzięki!!! Masz u mnie piwo. Pozwoliłem zarejestrowanym uczestnikom wprowadzać poprawki do automatycznych tłumaczeń Google. Czyli na przykład serwer Google przetłumaczył mi “director” na “dyrektor” co jest w miarę poprawne. Jednak uczestnicy strony wiedzą, że chodzi tu o “reżysera” i mogą tą zmianę wprowadzić na stronie.

Ponownie piszę o Film Spring Open na blogu technicznym, ponieważ ten system tłumaczeń nie jest skomplikowany a jednocześnie jest ciekawym eksperymentem. Celem jest konsolidacja wielojęzycznej społeczności ludzi. Warto śledzić co się będzie dalej z tym działo, bo to jest bardzo przyszłościowy temat.

Categories: Google, Recenzje Tags:

Hello WordPress

January 19th, 2009 No comments

Właśnie przeniosłem dwa swoje blogi na Worldpressa. Zeznania programisty oraz Komentarze Antka są już napędzane nowym silnikiem. Główną przyczyną migracji była lepsza integracja WordPressa z Microsoft Wordem. Podczas migracji starałem się rozwiązać dwa problemy: zachowanie adresów URL dla importowanych postów oraz zachowanie adresów URL dla agregatorów wiadomości. Mam nadzieję, że się udało. Przy okazji migracji zapraszam na mój blog polityczny – Komentarze Antka. Pozdrawiam

Categories: Programowanie Tags:

WordPress zastępuje Bloggera – ATOM i RSS

January 16th, 2009 No comments
Podczas migracji z Bloggera na WordPress muszę rozwiązać problem agregatorów wiadomości – ATOM i RSS. Spodziewam się, że większość osób czyta mojego bloga przy użyciu czytników niusów a te z kolei korzystają z protokołu ATOM lub RSS. Chciałbym, aby wymiana silnika bloga nie spowodowała konieczności aktualizacji tych czytników, dlatego muszę zachować linki ATOM i RSS. Zaczynam od sprawdzenia jak wyglądają te linki w Bloggerze:
<link rel="alternate" type="application/atom+xml" title="Antoni Jakubiak - zeznania programisty - Atom" href="http://www.jakubiak.eu/feeds/posts/default" />
<link rel="alternate" type="application/rss+xml" title="Antoni Jakubiak - zeznania programisty - RSS" href="http://www.jakubiak.eu/feeds/posts/default?alt=rss" />
  (Wartości te można odczytać przeglądając źródło strony.) Interesujące dla mnie jest pole href. Porównuje je z blogiem WordPress.  
<link rel="alternate" type="application/rss+xml" title="Komentarze RSS Feed" href="http://www.jakubiak.info/feed" />
<link rel="alternate" type="application/atom+xml" title="Komentarze Atom Feed" href="http://www.jakubiak.info/feed/atom" />
  Teraz chcę aby WordPress odpowiadał na tych samych adresach URL na których odpowiada Blogger. Z pomocą przychodzi mi stary dobry RewriteEngine. Edytuję plik .htaccess i wstawiam do środka coś takiego:
RewriteCond %{QUERY_STRING} =alt=rss
RewriteRule ^feeds/posts/default$            feed?        [R=301,L]
RewriteCond %{QUERY_STRING} !=alt=rss
RewriteRule ^feeds/posts/default$            feed/atom    [R=301,L]
  Dzięki temu WordPress będzie lepiej udawał Bloggera. Jeszcze tego nie testowałem – za to przetestuję na Was wkrótce drodzy czytelnicy ;)
Categories: Programowanie Tags:

Integracja z tłumaczeniami Google

January 16th, 2009 No comments

Postanowiliśmy uruchomić wersje językowe strony FilmSpringOpen. FilmSpringOpen to społeczność młodych filmowców skupiona wokół warsztatów filmowych. Warsztaty odbywają się co roku, mniej więcej w październiku w ośrodku wypoczynkowym na Helu. Celem warsztatów jest tworzenie niezależnych filmów na przykład “Crossing Path“. Warsztaty są otwarte i można się do nich przyłączyć by wspólnie kręcić film, pod okiem sław kina m.in. Sławomira Idziaka. Strona FilmSpringOpen jest platformą internetową łączącą ludzi z wydarzeniem.

FilmSpring to wydarzenie Europejskie. Skupia ludzi z całej Europy, przede wszystkim jednak z Polski, Skandynawii, Niemiec, Francji, Anglii.

Początkowo językiem strony FilmSpringOpen miał być język angielski, jednak dla międzynarodowej społeczności jest to problematyczne. Dlatego postanowiliśmy do systemu wprowadzić wersje językowe. Stanął jednak przed nami problem, co zrobić z forum. Jeżeli wprowadzimy wersje językowe, to zamiast integrować społeczności Europejskie będziemy je rozbijać na grupki językowe i utrudnimy posługiwanie się stroną Internetową. Postanowiłem zaryzykować inne rozwiązanie. Zintegrowałem stronę z systemem tłumaczeń Google. Idea jest taka: anglik piszę na forum po angielsku, niemiec po niemiecku, polak po polsku; anglik czyta stronę po angielsku i ma dostęp do oryginałów tekstów przetłumaczonych automatycznie, niemiec po niemiecku itd. Z ciekawością zobaczę co wyjdzie z tego pomysłu.

Komputerowe tłumaczenia tekstów są na razie słabe. Jednak trzeba myśleć do przodu, technika się rozwija i komputerowe tłumaczenia będą stawać się coraz lepsze.

Oczywiście, całą stronę można przetłumaczyć korzystając z narzędzi do tłumaczenia całych stron. Jednak mi chodził o coś innego. O zrobienie forum – które działa w wielu języka. Chcę zlikwidować barierę językową podczas pisania na forum.

Co sądzicie o pomyśle wielojęzykowego forum?

Categories: Google Tags: