Rainbow to bardzo ciekawy pomysł Mozilli na wzbogacenie przeglądarki internetowej o natywne mechanizmy nagrywania audio i wideo.
W listopadzie mieliśmy okazję zapoznania się z prototypem tego rozszerzenia, wykorzystującym mechanizm WebSockets do transmisji mediów. Później jednak przyszło gwałtowne wycofanie się Mozilli z WebSockets, ze względu na lukę w bezpieczeństwie protokołu – i Rainbow trzeba było obmyślić na nowo.
Pokazana właśnie wersja 0.3 dodatku to już nie tylko transmisja audio i wideo. Jak informują inżynierowie Mozilla Labs, Rainbow może teraz oprócz danych z kamerki internetowej nagrywać zawartość renderowaną w ramach elementu canvas, samplowaną w tempie 30 ramek na sekundę. Może to się przydać graczom, zgrywającym sesje gier napisanych w HTML5, jednak znacznie ciekawszym zastosowaniem wydaje się wykorzystanie tej technologii do robienia webowych aplikacji screencastowych.
Jako że w Firefoksie 4 obsługa WebSockets została wyłączona – przynajmniej do czasu uszczelnienia protokołu – Mozilla Labs usunęła z Rainbowa możliwość wysyłania strumieni wideo w ten sposób. Co w zamian? Jeśli korzystaliście kiedykolwiek z serwera Icecast, to ucieszy Was wiadomość, że Rainbow pozwala na przesyłanie do Icecasta strumieni wideo w Ogg Theorze, po czym Icecast roześle je do podłączonych do niego klientów.
Niestety ze względu na spore opóźnienia (5 do 10 sekund), metoda ta nie przyda się do zastosowań w czasie rzeczywistym. „Nadaje się to do zastosowania w scenariuszach rozsiewczych (broadcast)” – informuje Mozilla Labs.
Rainbow udostępnia już też proste API, przez które deweloperzy mogą nagrywać audio i wideo na dysk z poziomu swoich aplikacji w JavaScripcie. Więcej na ten temat znaleźć można w dokumentacji na GitHubie.
Rozszerzenie działa z najnowszymi (od beta 11) wersjami Firefoksa 4, wykorzystuje biblioteki ogg, theora i vorbis do kodowania mediów. W przyszłej wersji pojawić się ma obsługa formatu WebM. Niestety, jak to często u Mozilli bywa, użytkownicy Linuksa są pokrzywdzeni – wersja dla „pingwina” obsługuje tylko audio, choć zapowiadane jest w przyszłych wersjach wykorzystanie backendu v4l do obsługi kamerek internetowych. Na Mac OS-ie X (głównej platformie, na której Rainbow jest rozwijany), wykorzystywane są libvidcap i portaudio, zaś na Windows DirectShow i WinMM.
Rainbow 0.3 dostępny jest na stronie Mozilla Add-Ons.