Dźwięk i obraz w Internecie (3):
Transmisje i telefony

Omawiane w poprzedniej części tego artykułu aplikacje telekonferencyjne, takie jak vat czy nv, mogą być rzecz jasna używane nie tylko do telekonferencji sensu stricto, gdzie każdy z uczestników sesji jest zarazem nadawcą i odbiorcą, ale także do transmitowania przez sieć dźwięku i obrazu w sposób przypominający klasyczne radio lub telewizję: z jednym nadawcą i wieloma odbiorcami. Chociaż w tym zastosowaniu programy te zyskały sobie znaczną popularność wśród użytkowników wywodzących się z instytucji naukowo-akademickich i rządowych (z użyciem tych właśnie aplikacji transmitowane są np. obrady Kongresu USA i loty promów kosmicznych), to zupełnie nie udało im się "przebić" do środowiska użytkowników komercyjnych, w coraz większym stopniu obecnego w Internecie. Jedną z istotnych przyczyn tego stanu rzeczy wydaje się być fakt, że aplikacje multicastingowe przez długi czas rozwijane były (i są nadal) głównie dla różnych wersji Unixa, podczas gdy wśród typowych użytkowników "biurowych" przeważają raczej wszelkie odmiany systemu MS-Windows (3.1x, NT, 95). "Chcąc nie chcąc" świat komercyjny stworzył więc sobie własne aplikacje do transmisji audiowizualnych, dostępne dla użytkowników Windows (niestety, na ogół nie korzystające z multicastingu oraz niezgodne z programami Unixowymi). Dwoma najpopularniejszymi programami z tej grupy są: RealAudio, produkt firmy Progressive Networks, służący - jak nietrudno się domyślić z nazwy - do transmisji dźwiękowych, oraz StreamWorks, firmowany przez Xing Technology Corporation, umożliwiający przekaz zarówno dźwięku, jak i obrazu. Zwłaszcza pierwszy z tych programów cieszy się ogromną popularnością; według danych producenta na świecie zainstalowanych zostało już ponad 4 miliony jego kopii. Dźwięk w systemie RealAudio "emitują" dziesiątki serwerów - samych tylko stacji radiowych retransmitujących swój program w Internecie tą metodą naliczyć można ponad 80 (przede wszystkim w USA). Warto nadmienić, że począwszy od 29 maja br. z użyciem RealAudio transmitowane są posiedzenia Sejmu RP - jest to pierwsze zastosowanie serwera RealAudio w Polsce.

Na żywo i na żądanie

Pomiędzy oboma wspomnianymi programami istnieje znaczne podobieństwo pod względem funkcjonalnym. Podobnie do klasycznych usług internetowych, takich jak ftp czy WWW, a inaczej niż w przypadku "symetrycznych" aplikacji telekonferencyjnych, programy te są "niesymetryczne": istnieje osobne oprogramowanie klienta i serwera. Do nadawania dźwięku lub obrazu niezbędny jest serwer: klient służy jedynie do odbioru nadawanej transmisji. Oprogramowanie klienta dostępne jest z reguły bezpłatnie, natomiast za serwer - jak można się domyślić - trzeba zapłacić, i to na ogół sporo.

Obydwa programy pomyślane są głównie do zainstalowania w charakterze rozszerzeń przeglądarek WWW; w ten sposób dla rozpoczęcia słuchania czy oglądania nadawanej transmisji wystarczy kliknąć na odpowiednim odsyłaczu w stronie WWW, prowadzącym do niewielkiego - typowo kilkadziesiąt bajtów - pliku z informacjami sterującymi, niezbędnymi do odbioru właściwej transmisji (dla RealAudio są to pliki z rozszerzeniem .ram, dla StreamWorks - .xdm). "Odbiornik" RealAudio lub StreamWorks instalowany jest jako tzw. helper application dla tego typu plików (zewnętrzna aplikacja do ich obsługi), tak więc jest on automatycznie uruchamiany przez przeglądarkę WWW po "ściągnięciu" pliku na dysk naszego komputera. Na podstawie odczytanych z pliku informacji program łączy się z odpowiednim serwerem i rozpoczyna odbiór transmisji. W przypadku StreamWorks wspomniane pliki mają postać binarną, nieczytelną dla użytkownika, natomiast pliki wykorzystywane przez RealAudio zawierają po prostu "adres" nadawanej transmisji zapisany w swoistej odmianie notacji URL, o postaci pnm://adres.serwera/katalog/katalog/plik.ra (np. wspomniana transmisja z Sejmu dostępna jest - oczywiście w czasie trwania posiedzeń - jako pnm://gmach.sejm.gov.pl/sejm.ra).

Odbiór transmisji możliwy jest oczywiście także niezależnie od przeglądarki WWW - w przypadku RealAudio wystarczy po prostu podać odpowiedni "URL" o powyższej postaci w okienku pojawiającym się po wybraniu - znanej skądinąd z przeglądarek WWW - opcji "Open Location", natomiast dla StreamWorks procedura jest bardziej zawikłana. Po podaniu adresu serwera, z którym chcemy się połączyć, na ekranie pojawia się lista "słów kluczowych" opisujących sesje oferowane przez dany serwer. Wśród tych słów kluczowych panuje całkowita dowolność, a nawet chaos: są tu nazwiska, nazwy gatunków muzycznych, ale także szybkości transmisji w kilobajtach na sekundę czy też ogólne określenia takie jak "live" czy "video". Dopiero po wybraniu jednego ze słów kluczowych pojawia się wykaz przypisanych do niego sesji, spośród których wybieramy tę właściwą - trudno powiedzieć, czemu taka komplikacja ma służyć.

Z użyciem wspomnianych programów realizowane są dwa zasadniczo różne typy transmisji: na żywo (live) oraz na żądanie (on demand). Transmisje na żywo podobne są do audycji radiowych bądź telewizyjnych: najczęściej relacjonują jakieś aktualnie dziejące się wydarzenie (chociaż, podobnie jak w radiu czy telewizji, mogą być również odtwarzane z taśmy) i wszyscy odbierający je użytkownicy słyszą i widzą to samo w tym samym momencie. W przypadku transmisji "na żądanie" mamy do czynienia z odtwarzaniem gotowego, wcześniej zarejestrowanego pliku dźwiękowego lub wideo znajdującego się na dysku serwera. Odtwarzanie to rozpoczyna się niezależnie dla każdego użytkownika w chwili jego połączenia z serwerem i zażądania konkretnego pliku. Istnieje wówczas możliwość dowolnego "przewijania" nagrania w przód i w tył za pomocą suwaka znajdującego się w okienku programu (rys.1), co umożliwia np. "przeskoczenie" nieinteresujących fragmentów bądź przeciwnie - powtarzanie szczególnie ciekawych.

RealAudio

Podobieństwa między obydwoma programami kończą się, gdy zaczynamy rozważać szczegóły techniczne, takie jak stosowane formaty przesyłania dźwięku. RealAudio używa dwóch własnych formatów, które określane są jako RA14.4 i RA28.8 - jak nietrudno się domyślić, pierwszy ma być w założeniu przeznaczony dla posiadaczy modemów o szybkości 14.4 kb/s, drugi - dla właścicieli szybszych modeli 28.8 kb/s. Format dźwięku stosowany przez RealAudio charakteryzuje się silną kompresją - według danych podawanych przez producenta 1 minuta dźwięku w formacie RA14.4 zajmuje 60 KB, podczas gdy zapisana w postaci nieskompresowanego pliku .WAV, próbkowanego 8-bitowo z częstotliwością 8 kHz - 470 KB. Częstotliwość próbkowania w formacie RA trudno określić, gdyż zastosowany algorytm kompresji manipuluje nią, uwzględniając różną liczbę próbek w ciągu sekundy w zależności od kształtu wejściowej fali dźwiękowej. Producent twierdzi, iż format RA14.4 ma dawać jakość zbliżoną do radia w zakresie AM, natomiast RA28.8 - bliską radiu FM. Ta druga ocena jest zdecydowanie zbyt optymistyczna; faktycznie mamy raczej do czynienia z jakością popularnego magnetofonu kasetowego z lat siedemdziesiątych.

Dekodowanie dźwięku nadawanego w formacie RealAudio wymaga bardzo dużo mocy obliczeniowej procesora: szczególnie dotyczy to formatu RA28.8, ale i w RA14.4 podczas testów na komputerze 486DX/50 MHz występowały wyraźne przerwy w odtwarzaniu dźwięku podczas korzystania z innych aplikacji Windows. Producent lojalnie ostrzega, że na wolniejszych maszynach odtwarzanie formatu RA28.8 może nie działać, bądź też - jeżeli wybierzemy w programie opcję przydzielającą maksymalną ilość czasu procesora dla RealAudio - w czasie jego działania nie da się korzystać z innych aplikacji.

Zastosowana metoda kompresji wnosi niestety wyraźnie słyszalne zniekształcenia nieliniowe; dźwięk z RealAudio brzmi zdecydowanie bardziej "chropawo" i nieprzyjemnie od innych aplikacji, nawet gdy charakteryzuje się szerszym pasmem przenoszonych częstotliwości. Szczególnie nieprzyjemne zniekształcenia słyszalne są w przypadku, gdy "źródłowe" nagranie dźwiękowe było kiepskiej jakości (stąd też producent bardzo mocno akcentuje w dokumentacji potrzebę korzystania z jak najwyższej klasy źródeł dźwięku), jak również dla plików kompresowanych starym algorytmem, stosowanym w wersji 1.0 serwera RealAudio (obecnie używana wersja 2.0 brzmi już znacznie lepiej). Niemniej jednak, RealAudio spełnia swoje zadanie dostatecznie dobrze dla transmisji mowy (pod warunkiem dobrej wyjściowej jakości dźwięku), natomiast program ten nie nadaje się - przynajmniej w mojej opinii - do przekazu muzyki (do czego również bywa stosowany).

Ciekawostką RealAudio jest funkcja nazwana przez firmę "Synchronized Multimedia": istnieje mianowicie możliwość takiego przygotowania nagrania dźwiękowego, że podczas jego odtwarzania program RealAudio będzie w odpowiednich momentach nakazywał przeglądarce WWW załadowanie stron o określonych adresach (opcja ta działa oczywiście tylko z niektórymi przeglądarkami - w szczególności z Netscape), co umożliwia zrealizowanie Internetowej prezentacji integrującej dźwięk (RealAudio) z tekstem i grafiką (WWW). Ponadto, oprócz odbierania transmisji z Internetu, program pozwala również odsłuchiwać pliki dźwiękowe w formacie RealAudio zapisane na lokalnym dysku, jeżeli takimi dysponujemy.

Jak już wspomniałem, program "odtwarzacza" RealAudio dostępny jest przede wszystkim dla Windows, istnieją jednak również wersje dla kilku Unixów (Irix, Solaris, Linux; niezbędne X-Window) oraz Macintosha. Oprogramowanie klienta dostępne jest bezpłatnie, bezpłatny jest również koder (dla Windows i Unixa - tym razem w trybie znakowym tego ostatniego), pozwalający zamieniać pliki .WAV na format RealAudio (lub nagrywać pliki w tym formacie bezpośrednio z karty dźwiękowej). Uzyskane w ten sposób pliki możemy lokalnie odtwarzać na naszym komputerze za pomocą "odtwarzacza" RealAudio. Możemy je także umieszczać na stronach WWW, ale będą one odtwarzane w sposób "klasyczny", podobnie jak w przypadku plików .WAV czy .AU - po przetransmitowaniu całego pliku na komputer klienta. Aby zrealizować prawdziwą transmisję dźwięku w czasie rzeczywistym, musimy posiadać oprogramowanie serwera RealAudio, za które już trzeba zapłacić. Dostępne jest ono na platformy Unixa oraz Windows NT, w kilku wersjach różniących się maksymalną liczbą obsługiwanych jednocześnie przez serwer użytkowników (a co za tym idzie, także i ceną...) - program nie wykorzystuje multicastingu. Na najskromniejszą, 5-użytkownikową wersję można otrzymać bezpłatną 30-dniową licencję ewaluacyjną po wypełnieniu obszernej ankiety. W stadium beta testów znajduje się Personal Server, przeznaczony do zastosowania jako dźwiękowe uzupełnienie prywatnych osobistych stron WWW. Działa on pod kontrolą Windows 95 lub Macintosha i obsługuje maksymalnie dwu użytkowników naraz; także i ten program można otrzymać bezpłatnie do testowania po wypełnieniu stosownej ankiety. Wszelkie informacje, oprogramowanie oraz obszerny wykaz serwerów stosujących RealAudio (np. do przekazywania aktualnych przeglądów wiadomości, analogicznych do radiowych) znaleźć można pod adresem http://www.realaudio.com/.

Istnieje również kilka innych, zdecydowanie mniej popularnych programów opartych na podobnej koncepcji co RealAudio - wśród nich warte wymienienia są np. TrueSpeech firmy DSP Group Inc. czy Internet Wave firmy VocalTec - twórcy słynnego Internet Phone (programy te dostępne są prawie wyłącznie dla Windows; TrueSpeech ma jeszcze wersję na Macintosha). Od RealAudio programy te różnią się tym, że nie korzystają ze specjalnego serwera, lecz do transmisji dźwięku wykorzystują zwykły serwer WWW (HTTP). Takie rozwiązanie, oprócz niewątpliwej zalety, jaką jest brak konieczności płacenia za serwer, ma dwie wady. Po pierwsze, przy zastosowaniu serwera WWW możliwe jest tylko realizowanie transmisji "na żądanie", z wcześniej przygotowanych plików, natomiast niemożliwa jest transmisja na żywo. Po drugie, usługa WWW oparta jest na protokole TCP, a nie - jak w przypadku innych opisywanych aplikacji - UDP, co oznacza, że w przypadku trudności w przesłaniu danych, spowodowanych np. dużym obciążeniem sieci, serwer będzie powtarzał transmisję sprawiającego problem pakietu "do skutku", co w skrajnym przypadku może całkowicie wstrzymać przekaz dźwięku na dłuższy czas, w przeciwieństwie do programów opartych na UDP, gdzie w takiej sytuacji wystąpi tylko krótkie "zatkanie się" odtwarzania dźwięku, spowodowane "zgubieniem" przez program pewnej część pakietów. Z tego też powodu programy te - choć niejednokrotnie oferujące lepszą niż RealAudio jakość dźwięku - raczej nie nadają się do zastosowań profesjonalnych.

StreamWorks

W porównaniu z RealAudio, okienko programu StreamWorks robi wrażenie wręcz toporne (rys.2) - pięć przycisków (może ich być więcej, w zależności od liczby prekonfigurowanych w programie serwerów) i ramka do wyświetlania odbieranego obrazu wideo. Bliższe zapoznanie się z techniczną charakterystyką systemu pokazuje jednak, że za tą zewnętrzną topornością stoi niezwykle wyrafinowana technologia, być może najbardziej zaawansowana ze wszystkich omawianych tutaj aplikacji.

Bardzo dużą zaletą StreamWorks jest zgodność z powszechnie przyjętymi w zastosowaniach multimedialnych standardami MPEG dla formatu obrazu wideo. StreamWorks umożliwia odbiór transmisji dźwiękowych i wizyjno-dźwiękowych w formatach zgodnych z MPEG-1 oraz MPEG-2 (dla MPEG-2 tylko dźwięk), o różnych wymiarach, różnej rozdzielczości kwantyzacji obrazu (chodzi tu o wielkość charakterystycznych "kwadracików", wyraźnie widocznych na obrazach w formatach JPEG i MPEG), liczbie kolorów i przy różnych prędkościach transmisji. Dla odbioru transmisji w formatach MPEG potrzebne jest co najmniej połączenie 28.8 kb/s (lepiej szybsze); posiadacze wolniejszych modemów mogą skorzystać z dodatkowej możliwości odbioru wyłącznie dźwięku w firmowym formacie o nazwie LBR, wymagającym tylko 8.5 kb/s.

W przeciwieństwie do RealAudio, które zarówno od strony klienta, jak i serwera jest realizowane całkowicie programowo (nie licząc oczywiście typowego wyposażenia dźwiękowego komputera), nadawca transmisji StreamWorks potrzebuje dodatkowego sprzętu: produkowanych przez firmę Xing Technology Corp. specjalnych koderów, przetwarzających doprowadzony do nich sygnał audio i wideo na gotowy strumień danych w formacie StreamWorks, wprowadzany do sieci lokalnej nadawcy. Kodery te są samodzielnymi urządzeniami podłączanymi bezpośrednio do sieci i obsługiwanymi za pomocą SNMP. Wytworzony za ich pomocą strumień danych trafia do klienta za pośrednictwem serwera StreamWorks, który m.in. dostosowuje go do różnych szybkości transmisji poprzez odpowiednią redukcję liczby klatek na sekundę. Transmisja może też być jedynie rejestrowana przez serwer (bez przesyłania do klientów), dla późniejszego odtworzenia "na żądanie" (do transmisji "na żądanie" koder nie jest niezbędny; dostępne jest oprogramowanie pozwalające przetworzyć do postaci akceptowanej przez StreamWorks dowolny plik w formacie MPEG). Konfigurując swój "odbiornik" StreamWorks musimy określić szybkość połączenia do Internetu, jakim dysponujemy - wartość ta jest używana do wstępnego określenia parametrów strumienia, który będzie do nas przesyłany. Dodatkowo, w trakcie transmisji klient przesyła do serwera informacje zwrotne o liczbie otrzymanych pakietów, co pozwala serwerowi na wyznaczanie na bieżąco szybkości transmisji i dostosowywanie do niej ilości przesyłanych danych (podobną technikę, aczkolwiek nie tak zaawansowaną, stosuje również RealAudio). Technologia StreamWorks została przez firmę Xing Technologies pomyślana jako przeznaczona nie tylko dla Internetu, ale i sieci lokalnych, wewnątrzfirmowych (tzw. Intranetów), stąd też obok podstawowej wersji serwera Internetowego o maksymalnej przepustowości 1.5 Mb/s znajdujemy w ofercie, na drugim końcu listy cen, serwery o wydajności setek, a nawet ponad tysiąca megabitów na sekundę, przeznaczone dla sieci korporacyjnych z kilkoma "nitkami" FDDI czy ATM i umożliwiające transmisję w nich obrazu o standardzie telewizyjnym z towarzyszeniem dźwięku Hi-Fi.

Pozostańmy jednak - ze zrozumiałych względów - przy transmisjach Internetowych. Większość z możliwych do obejrzenia i wysłuchania transmisji dostępna jest na serwerach StreamWorks w kilku wariantach dostosowanych do różnej szybkości transmisji, a mianowicie:

Jak już wspomniano wcześniej, serwer StreamWorks ma możliwość dynamicznej redukcji ilości przesyłanych danych w zależności od aktualnej szybkości transmisji (wynikającej np. z obciążenia sieci). Strumień przeznaczony dla szybkości 112 kb/s może być zredukowany nawet do 32 kb/s, a strumienie 24 kb/s lub 56 kb/s - do 16 kb/s. Dzieje się to oczywiście kosztem pogorszenia jakości transmitowanego obrazu i dźwięku: zmniejsza się liczba klatek na sekundę, przez co ruch obrazu staje się bardziej skokowy, zaś spadek częstotliwości próbkowania dźwięku powoduje zawężenie przenoszonego pasma częstotliwości.

Jak widać, transmisje za pomocą StreamWorks charakteryzują się zdecydowanie najwyższą jakością z opisywanych dotychczas aplikacji. Wprawdzie z Polski jest to nieco trudno sprawdzić, gdyż większość serwerów StreamWorks znajduje się w USA i rzadko udaje się uzyskać efektywną szybkość transmisji większą niż "w porywach" ok. 30-40 kb/s, ale nawet przy tej szybkości obejrzenie i wysłuchanie demonstracyjnych plików dostępnych z serwera Xing Technology Corp. (http://www.xingtech.com/), zwłaszcza tych zapisanych w formacie 112 kb/s, robi duże wrażenie. Jeżeli dodać do tego fakt, że wszystkie elementy systemu StreamWorks (koder, serwer, klient) potrafią korzystać z multicastingu, jeżeli istnieje między nimi routing multicastingowy, oraz że serwery StreamWorks potrafią spełniać wzajemnie dla siebie funkcje "reflektorów", pozwalających np. europejskim użytkownikom na odbieranie transmisji programu telewizyjnego NBC Pro (jedna ze stacji stale retransmitowanych w systemie StreamWorks) z bliższego im geograficznie serwera TeleJazz w Finlandii zamiast bezpośrednio z USA, to wydaje się całkiem uzasadniona opinia, iż mamy do czynienia z produktem bardzo wysoko zaawansowanym technologicznie. Na niekorzyść programu trzeba zapisać jego stosunkowo niską stabilność, przynajmniej w testowanej przeze mnie wersji dla Windows - program kilkakrotnie się zawiesił, potrafił też zawiesić całe Windows - może to być jednak spowodowane zainstalowaniem go w polskiej wersji tego systemu.

Oprogramowanie klienta StreamWorks dostępne jest bezpłatnie pod wspomnianym adresem WWW w wersjach dla Windows, Unixa (SGI, Sun, Linux + X-Window) oraz Macintosha. Program serwera StreamWorks nabyć można dla analogicznych platform Unixowych oraz dla Windows NT. Ciekawostką jest fakt produkowania przez firmę Xing wolnostojącego odbiornika transmisji StreamWorks - swoistego "sieciowego telewizora", podłączanego jako samodzielne urządzenie do sieci i sterowanego, podobnie jak kodery, za pomocą SNMP, bądź też bezpośrednio za pomocą przycisków i przełączników na panelu sterującym.

Vosaic - dźwięk i wideo na stronach WWW

Wszystkie omówione powyżej programy są wykorzystywane głównie jako rozszerzenia możliwości WWW. Generalna tendencja do integrowania usługi WWW z przekazem audio i wideo znalazła swoją najpełniejszą realizację w postaci Vosaic - przeglądarki WWW zaprojektowanej z góry dla integralnego włączania elementów audiowizualnych do prezentowanych stron. Wydawałoby się, iż dźwięk i wideo w WWW nie jest niczym nowym; strony zawierające pliki tego typu istnieją wszak od dawna. Przeglądarki WWW niemal "od zawsze" miały możliwość obsługi takich danych za pomocą dodatkowych zewnętrznych programów odtwarzających (tzw. helper applications). Najnowsze wersje przeglądarek potrafią już odtwarzać dźwięk czy wideo samodzielnie, bez potrzeby instalowania dodatkowych aplikacji, a nawet "wmontowywać" te elementy jako integralną część strony - np. atrybut <BODY BGSOUND=...> czy <IMG DYNSRC=...> w Microsoft Internet Explorerze (aczkolwiek jest to niestandardowe). Po co zatem specjalna przeglądarka? Otóż wszystkie te sekwencje wizyjno-dźwiękowe, czy to odtwarzane przez dodatkowe aplikacje, czy samą przeglądarkę, odtwarzane są "off-line", to znaczy po przetransmitowaniu na dysk naszego komputera całego pliku zawierającego nagranie dźwiękowe czy wizyjne. Przy przeciętnych szybkościach transmisji występujących w Internecie takie "ściągnięcie" pliku trwa dłużej, niż jego późniejsze odtworzenie, nie mówiąc już o niezbędnej ilości wolnego miejsca na dysku...

Vosaic pozwala wbudowywać w strony WWW dźwięk i obraz przesyłany w czasie rzeczywistym, tak jak w programach typu RealAudio czy StreamWorks. Możliwe jest przy tym nawet tworzenie odnośników prowadzących do innych dokumentów w obrębie sekwencji wideo - kliknięcie na wyróżniony ramką obiekt (dom, człowieka...) w oglądanym filmie może np. przenosić nas do strony z informacjami na jego temat (przez analogię do hipertekstowych odnośniki takie wypada chyba nazwać "hiperwizyjnymi"?).

Jak nietrudno się domyślić z nazwy, Vosaic jest programem napisanym na bazie NCSA Mosaic, zresztą w tym samym miejscu - University of Illinois. Zasób rozpoznawanych przez program poleceń języka HTML został wzbogacony o nowe znaczniki, takie jak "<audio src=...>" czy "<video src=...>", pozwalające odwoływać się w treści strony do elementów audiowizualnych. Elementy te transmitowane są ze specjalnego serwera - vs (video server), komunikującego się z przeglądarką Vosaic za pomocą własnego protokołu VDP (Video Datagram Protocol). Aktualna wersja serwera pozwala jedynie na transmisje "na żądanie", planowane jest jednakże rozszerzenie go także o możliwości transmisji "na żywo". Przesyłane sekwencje wizyjne i dźwiękowe zapisane są w standardzie MPEG; w zależności od wymiarów obrazu, liczby klatek na sekundę oraz dokładności kwantyzacji wymagane jest różne pasmo przepustowe - najczęściej rzędu kilkudziesięciu kb/s, ale dostępne są i filmy, dla których wystarcza 16 kb/s.

Niestety Vosaic jest jak na razie programem dostępnym tylko dla komputerów Sun i Silicon Graphics. Trwają jednak intensywne prace nad wersją dla PC (była zapowiadana już na maj 96, jednak wciąż jeszcze jej nie ma), która ma być zrealizowana w postaci modułu rozszerzającego (plug-in) do popularnej przeglądarki Netscape. Póki co, posiadacze wymienionych typów maszyn mogą bezpłatnie "ściągnąć" zarówno Vosaic, jak i oprogramowanie serwera spod adresu http://choices.cs.uiuc.edu/Vosaic/Vosaic.html.

Wprowadzenie przez Netscape, począwszy od wersji 2.0, wspomnianej techniki modułów rozszerzających, pozwalających rozbudowywać możliwości przeglądarki WWW o obsługę nowych typów danych, zaowocowało powstaniem wielu innych modułów realizujących podobną co Vosaic koncepcję: odtwarzanie plików wizyjnych i dźwiękowych w czasie rzeczywistym, równocześnie z ich transmisją, a nie po jej zakończeniu, jak to jest w przypadku standardowo skonfigurowanej przeglądarki. Mamy zatem całą serię plug-ins (przede wszystkim dla Windows 95, część także dla Windows 3.1 bądź Macintosha) pozwalających wbudowywać "żywy" obraz i dźwięk w strony oglądane za pomocą Netscape. Część z nich - jak np. ToolVox czy VivoActive - stosują własne, silnie skompresowane formaty plików dla polepszenia skuteczności transmisji po wolnych łączach; inne natomiast, jak CineWeb czy CoolFusion, pozwalają na odbiór w czasie rzeczywistym plików w "standardowych" formatach wizyjnych i dźwiękowych takich jak MPEG, AVI, WAV czy AU, zwykle spotykanych na stronach WWW. Zainstalowanie modułów tego drugiego typu umożliwia zatem odbiór obrazu i dźwięku w czasie rzeczywistym bez konieczności żadnych zmian w źródłowym dokumencie (!), z drugiej jednakże strony wymagana szybkość transmisji jest w tym wypadku bardzo wysoka - pamiętajmy, że zwykły próbkowany 8-bitowo z częstotliwością 8 kHz plik typu .WAV wymagał będzie dla nieprzerwanego odtwarzania transmisji z szybkością 64 kb/s ! Wszystkie wspomniane moduły (z wyjątkiem - rzecz jasna - RealAudio, dostępnego także jako plug-in) korzystają natomiast ze zwykłego serwera HTTP do przesyłania plików - niepotrzebne jest specjalne oprogramowanie serwera (ale niesie to ze sobą także rozważane wcześniej niedogodności), mogą być natomiast - w przypadku programów stosujących własne formaty plików - potrzebne konwertery, umożliwiające zamianę pliku w "normalnym" formacie (np. WAV) na używany przez program. Dokładniejsze informacje o wszystkich tych modułach znaleźć można na stronie "konfiguracyjnej" macierzystego serwera Netscape, pod adresem http://home.netscape.com/comprod/products/navigator/version_2.0/plugins/audio-video.html.

"Dla porządku" trzeba jeszcze wspomnieć o swoistym substytucie wideo w postaci szeroko już stosowanych na stronach WWW animowanych plików .GIF, które najnowsza wersja Netscape także potrafi wyświetlać - podobnie jak wszystkie pliki .GIF - w trakcie ich ładowania.

Internetowe telefony

Ostatnią grupą aplikacji związanych z transmisją dźwięku, które omawiam w niniejszym tekście, są niezwykle ostatnio popularne programy do telefonowania przez Internet. "Boom" na sieciowe telefonowanie rozpoczął się około połowy ubiegłego roku, za sprawą programu Internet Phone firmy VocalTec. Od tego czasu stworzono co najmniej kilkanaście aplikacji tego typu; redaktorzy Internetowego magazynu komputerowego "c|net" w opublikowanym w początkach br. przeglądzie (dostępnym pod adresem http://www.cnet.com/Content/Reviews/Compare/Wphone/) doliczyli się ich dwunastu, a od tego czasu powstały jeszcze nowe. W większości są to programy komercyjne, i w lwiej części przeznaczone dla komputerów z systemem MS-Windows; kilka programów dostępnych jest na Macintosha, a chyba tylko jedna aplikacja - zresztą public domain - ma wersję dla systemu Unix.

Fala zainteresowania programem Internet Phone skłoniła prasę komputerową do spekulacji, czy "darmowe" sieciowe telefonowanie zagrozi normalnym międzymiastowym i międzynarodowym rozmowom telefonicznym. Na razie nic takiego nie wydaje się realne z kilku powodów. Po pierwsze, mnogość istniejących programów tego typu - oczywiście wzajemnie niekompatybilnych - jest ich słabością, nie pozwalającą im wyjść poza status ciekawostki i stać się realnie użyteczną usługą sieciową. Jeżeli chcemy bowiem porozumieć się za pomocą "Internetowego telefonu" z innym użytkownikiem sieci, musimy mieć ten sam program co on. Oczywiście nie wszystkie programy są jednakowo popularne, niemniej jednak aby mieć możliwość porozumiewania się z większością użytkowników, trzeba byłoby posiadać przynajmniej kilka najpopularniejszych (w obecnej chwili do tych najpopularniejszych zaliczają się wspomniany już Internet Phone, WebTalk firmy Quarterdeck i mający duże szanse na szerokie rozpowszechnienie, gdyż dostarczany wraz z przeglądarką Netscape Navigator w wersji 3.0, CoolTalk firmy InSoft, wykupiony przez Netscape).

Po drugie, nawet najzagorzalsi zwolennicy Internetu nie pracują w sieci non-stop. Aby zaś można było "odbierać" Internetowy telefon w każdej chwili, tak jak zwykły, trzeba by mieć komputer cały czas włączony, podłączony do Internetu i z czuwającym programem do telefonowania. Jest to sytuacja bardzo rzadko spotykana, a w przypadku użytkowników posiadających dostęp do sieci typu dial-up - wręcz niemożliwa. Jeżeli nawet wiemy, że użytkownik ma w danej chwili uruchomiony program (np. umówiliśmy się z nim wcześniej za pomocą e-maila albo... zwykłego telefonu), to występują - opisane dalej - problemy ze znalezieniem właściwego "numeru", na który należy "zatelefonować", czyli adresu IP komputera, na którym interesująca nas osoba pracuje. Po trzecie wreszcie, jakość dźwięku przekazywanego przez większość programów typu "Internetowy telefon" wciąż jest wyraźnie gorsza od zwykłego telefonu.

Mimo wszystkich powyższych ograniczeń istnieją niewątpliwie sytuacje, w których programy tego typu mogą być użyteczne. Spróbujmy się zatem przyjrzeć ich charakterystycznym cechom.

Ponieważ programy te tworzone są przede wszystkim z myślą o użytkowniku dysponującym połączeniem modemowym z Internetem, muszą zawierać silną kompresję, pozwalającą "zmieścić" strumień danych w przepustowości zapewnianej przez modem - 14.4 lub 28.8 kb/s. Najczęściej stosowany jest algorytm GSM (zob. druga część artykułu) lub własne algorytmy producenta programu, o zbliżonym do GSM stopniu kompresji. Niestety stosowana kompresja z reguły wnosi wyraźnie słyszalne zniekształcenia, utrudniające zrozumienie rozmówcy.

O ile przez prawdziwy telefon można przekazywać dźwięk równocześnie w obu kierunkach (jest to tzw. pełny dupleks), o tyle większość popularnych kart dźwiękowych do komputerów PC pracuje tylko w półdupleksie - tzn. nie może jednocześnie próbkować i odtwarzać dźwięku, możemy zatem albo mówić, albo słuchać (tak jak przez CB-radio). Konieczne jest przełączanie między tymi dwoma trybami pracy. W większości programów może ono być dokonywane zarówno ręcznie, jak i za pomocą tzw. aktywacji głosowej: gdy zaczynamy mówić do mikrofonu, program automatycznie przełącza się na "nadawanie"; jeżeli nic nie mówimy, ustawia się na "odbiór". Wszystkie ważniejsze aplikacje potrafią obsługiwać również bardziej wyrafinowane karty dźwiękowe wyposażone w pełny dupleks, jednak i w tym przypadku zastosowanie aktywacji głosowej może mieć sens - aby nie obciążać niepotrzebnie sieci nadawaniem zbędnych bajtów w okresach ciszy pomiędzy naszymi wypowiedziami i ułatwić komunikację z użytkownikami mającymi tylko półdupleks.

Najciekawszym elementem Internetowych telefonów są funkcje służące do identyfikacji adresu użytkownika, do którego chcemy "zadzwonić". Otóż aby "zatelefonować" do kogoś przez Internet, osoba ta nie tylko musi mieć w danej chwili uruchomiony odpowiedni program, ale też nasz program musi znać adres IP komputera tamtej osoby. Jako że chodzi o PC, z reguły nie jest to ten sam komputer, na który wskazuje adres e-mail użytkownika; co więcej, adres ten może się zmieniać - np. z powodu dynamicznego przydziału adresów dla połączeń typu dial-up, albo dlatego, że użytkownik na zmianę pracuje na różnych komputerach w sieci lokalnej w firmie. Każdy producent programu typu "Internetowy telefon" uruchamia więc w sieci specjalne serwery, zbierające informacje o wszystkich aktywnych w danej chwili użytkownikach programu (przede wszystkim chodzi o ich aktualne adresy IP) i ułatwiające potencjalnym rozmówcom połączenie ze wskazaną osobą. Oczywiście jeżeli skądinąd wiemy, że dana osoba ma aktualnie uruchomiony program i znamy jej adres IP, w prawie wszystkich programach możemy nawiązać połączenie bez pośrednictwa serwera, wpisując jawnie ten adres w odpowiednie okienko (wyjątkiem jest tu Internet Phone, gdzie korzystanie z pośrednictwa serwera jest obligatoryjne).

Wspomniane serwery działają na ogół w taki sposób, że z chwilą uruchomienia programu "Internetowego telefonu", sygnalizuje on ten fakt serwerowi, przesyłając równocześnie zdefiniowane przez nas w konfiguracji programu dane personalne (zwykle podaje się nazwisko i adres e-mail; opcjonalnie - jeżeli chcemy - możemy podać także inne dane). Serwer ustala adres IP, skąd nastąpiło połączenie, i dopisuje te dane do swojej bazy aktywnych użytkowników, którą inni użytkownicy mogą przeszukiwać używając jako klucza nazwiska bądź adresu e-mail. Na ogół po dokonaniu takiego wyszukiwania wystarczy tylko kliknąć myszą na odpowiednią pozycję w liście odnalezionych użytkowników, aby rozpocząć proces "dzwonienia" do danej osoby.

Zupełnie inaczej działają serwery wykorzystywane przez program Internet Phone. Zasada ich działania bardzo przypomina IRC, bo też w istocie są to lekko zmodyfikowane typowe serwery IRC, działające w wydzielonej sieci połączeń międzyserwerowych, odrębnej od "zwykłego" IRC. Uruchamiając po raz pierwszy program użytkownik musi sobie wybrać pseudonim, pod jakim będzie widoczny w sieci; następnie, po połączeniu z serwerem, jego oczom ukazuje się lista dostępnych kanałów, każdy poświęcony innemu tematowi rozmów. Użytkownik wybiera kanały, do których chce się dołączyć (można też utworzyć nowy kanał), po czym staje się dla niego dostępny wykaz pseudonimów osób znajdujących się aktualnie na danym kanale, i vice versa - on staje się widoczny dla tych osób. Można teraz zainicjować połączenie klikając na pseudonimie wybranego użytkownika (system ten wykorzystywany jest również - obok opisanego powyżej "zwykłego" przeszukiwania bazy - w programie WebTalk).

Zarówno jeden, jak i drugi typ serwera służy tylko ułatwieniu "znalezienia się" chcących porozmawiać użytkowników - samo nawiązanie połączenia dźwiękowego jest już wyłącznym zadaniem programów telefonicznych obu użytkowników i serwer nie bierze w tym procesie udziału. Internetowy telefon, podobnie do jego pierwowzoru, może być "zajęty" - znakomita większość programów pozwala na realizację tylko jednego połączenia naraz. Użytkownik może również "nie odebrać" telefonu, jeżeli np. nie ma go w danym momencie przy komputerze. Niektóre z programów dysponują funkcją "automatycznej sekretarki", pozwalającą w takim przypadku odtwarzać nagraną (w postaci pliku .WAV) informację powitalną i rejestrować na dysku wiadomości pozostawiane przez "dzwoniących" rozmówców.

Najnowszą tendencją wśród oprogramowania typu "telefon przez Internet" jest rozbudowywanie go - poza samą komunikacją dźwiękową - o funkcje pracy grupowej: tabliczkę rysunkową, wymianę komunikatów tekstowych (chat), przesyłanie plików czy nawet możliwość zdalnego korzystania z aplikacji Windows na komputerze rozmówcy. Standardowo wyposażony w te funkcje (nie wszystkie) jest CoolTalk, ma je także jego najnowszy konkurent - NetMeeting firmy Microsoft, oferowany jako uzupełnienie przeglądarki Internet Explorer 3.0. Także Internet Phone doczekał się towarzyszącego mu programu do pracy grupowej - Internet Conference.

Speak Freely

Jako się rzekło, rozliczne aplikacje spełniające rolę "Internetowych telefonów" są zwykle całkowicie niekompatybilne ze sobą, aczkolwiek bardzo zbliżone w oferowanych możliwościach. Jeżeli o "telefonach" chcemy myśleć jako o poważnej usłudze Internetowej, niezbędne jest opracowanie wspólnego standardu, w oparciu o który programy te mogłyby się porozumiewać.

W tym kontekście warto więc zwrócić uwagę na program wprawdzie nie najpopularniejszy, ale za to kompatybilny z niewątpliwymi standardami ze świata Unixowego, posiadający przy tym możliwości w innych programach tego typu nieobecne. Możliwości te sytuują go gdzieś pomiędzy typowym Internetowym telefonem a "prawdziwym" programem telekonferencyjnym, takim jak vat.

Speak Freely jest jednym z nielicznych "Internetowych telefonów" dostępnych za darmo (co więcej, rozprowadzany jest wraz z kodem źródłowym) - można go "ściągnąć" spod adresu http://www.fourmilab.ch/speakfree/windows/. Program pozwala połączyć się i porozmawiać nie tylko z innym użytkownikiem tego samego programu; korzysta z protokołu RTP i jest kompatybilny z vat'em, co pozwala na komunikację z użytkownikami komputerów Unixowych wykorzystującymi ten ostatni (istnieje również wersja Speak Freely dla Unixa, ale jest ona bardzo niewygodna w użyciu, jako że składa się z kilku odrębnych programów uruchamianych z linii komend w trybie tekstowym, co przy aplikacji pracującej w czasie rzeczywistym raczej nie jest najlepszym pomysłem). Obsługiwane są wszystkie formaty kompresji dźwięku stosowane przez vat (bez kompresji - PCM, DVI, GSM, LPC), zaś przy połączeniu między dwoma programami Speak Freely także dodatkowy format kompresji LPC-10. Ten ostatni pozwala zredukować szybkość przesyłania danych nawet do 4800 bitów/s (!), aczkolwiek wymaga bardzo dużej mocy obliczeniowej - w dokumentacji podaje się jako minimum procesor Pentium 75 MHz.

Jeżeli pozwala na to przepustowość sieci oraz wydajność procesora, program umożliwia - w przeciwieństwie do większości Internetowych telefonów - na nawiązanie kilku połączeń naraz, co umożliwia zrealizowanie namiastki telekonferencji. Dzięki tej możliwości programu nie istnieje też sytuacja "zajętości" telefonu - jeżeli ktoś "dzwoni" do użytkownika Speak Freely w trakcie prowadzenia rozmowy, na ekranie po prostu otwiera się okno kolejnego połączenia i słyszymy mówiącego do nas drugiego rozmówcę (jeżeli mu nie odpowiemy, po kilkunastu sekundach połączenie zostanie zamknięte automatycznie).

Możliwe jest też zrealizowanie "prawdziwej" telekonferencji z wykorzystaniem multicastingu, aczkolwiek program nie obsługuje wysyłanych przez vat'a informacji o sesji, pozwalających np. pokazywać listę uczestników konferencji. Poza przekazywaniem dźwięku bezpośrednio z mikrofonu program pozwala również wysłać wcześniej przygotowany plik dźwiękowy w formacie .WAV lub .AU. Cechą zupełnie niespotykaną w konkurencyjnych programach jest natomiast możliwość szyfrowania rozmowy za pomocą algorytmu DES (podobnie jak robi to vat), IDEA lub własnego prostego szyfru z użyciem dowolnego pliku-klucza. Program potrafi samodzielnie wygenerować klucze dla algorytmów DES lub IDEA, co więcej - jeżeli użytkownik ma na komputerze zainstalowany program PGP, automatycznie zakodować wygenerowany klucz za pomocą PGP i przekazać go rozmówcy(om). Możliwość szyfrowania rozmowy może być bardzo istotna dla użytkowników chcących wykorzystywać Internetowy telefon do zastosowań profesjonalnych, np. w biznesie.

W niniejszym tekście, choć dosyć długim, przedstawiono zaledwie drobną część spośród istniejących aplikacji związanych z przekazywaniem dźwięku i obrazu przez Internet. Niewątpliwie warto śledzić nowości w tej dziedzinie zastosowań sieci, rozwijającej się w ostatnim czasie chyba najbardziej dynamicznie ze wszystkich. Z pewnością obecnie dostępne programy i usługi nie są ostatnim słowem w tym zakresie.


Jarosław Rafa 1996. Tekst udostępniony na licencji Creative Commons (uznanie autorstwa - użycie niekomercyjne - bez utworów zależnych). Kliknij tutaj, aby dowiedzieć się, co to oznacza i co możesz z tym tekstem zrobić. W razie jakichkolwiek wątpliwości licencyjnych bądź w celu uzyskania zgody na rozpowszechnianie wykraczające poza warunki licencji proszę o kontakt e-mailem: raj@ap.krakow.pl.

Wersja HTML opracowana 19.08.96.


Powrót do wykazu artykułów o Internecie Statystyka