Strumieniowanie
Jest to przesyłanie danych multimedialnych od jednego użytkownika do drugiego. Dane wysyłane z serwera są najpierw kompresowane a następnie nadawane co może się odbywać na dwa sposoby:
Prosto od użytkownika – transmisja na żywo
Z danych przechowywanych na serwerze – transmisja na życzenie
Multimediami strumieniowanymi są przede wszystkim pliki dźwiękowe, filmy ale również inne dane opisowe takie jak napisy do filmów (tłumaczące film z języka obcego, podpisy dla niesłyszących), Real-Time text czy taśmy giełdowe.
Strumieniowanie plików multimedialnych odbywa się na zasadzie kawałków. Pobierany jest jeden mały fragment pliku multimedialnego i jest on odtwarzany. W tym czasie pobierany jest kolejny fragment. Gdy pierwszy fragment zostanie odtworzone, jest on kasowany z pamięci komputera, a odtwarzany jest kolejny. Dane transmitowane są za pomocą protokołu UDP, którego poprzednikiem był protokół TCP. Protokół UDP w porównaniu do swojego poprzednika niesie ze sobą nowe funkcjonalności. Redukuje opóźnienia, jest prostszy, pozwala na transmisję jeden do wielu oraz posiada krótszy nagłówek ramki. Niestety jego minusem jest jego jednokierunkowość (UDP jest protokołem bezpołączeniowym) przez co nadawca nie wie czy dane zostały poprawnie dostarczone odbiorcy. Z pomocą przychodzą protokoły RTP, RTSP, RTCP które dbają by dane dotarły do celu.
Strumieniowanie może odbywać się na kilka sposób (w zależności od odbiorcy)
Anycast – dane wysyłane są potencjalnie wielu odbiorców lecz jednocześnie może je odbierać tylko jeden, najbliższy. Bliskość jest zależna od rodzaju trasowania.
Unicast – dane wysyłane są do jednego, konkretnego odbiorcy.
Multicast – dane wysyłane są do kilku odbiorców jednocześnie.
Broadcast – dane są rozgłaszane do wszystkich w sieci
Do strumieniowania danych nie ma jednej uniwersalnej technologii. Najpopularniejszymi zatem są:
Real Player
Flash Player
Real Media
Windows Media
Najpopularniejszym kodekiem do przesyłania filmów stał się MPEG-4, który pozwala na zachowanie wysokiej jakości. Odbywa się to kosztem większych wymagań sprzętowych ze względu na złożone algorytmy kodowania i dekodowania jednak współczesne komputery radzą sobie z tym doskonale.
Początki strumieniowania miały miejsce w latach dwudziestych XX wieku. George O. Squier otrzymał patent na przesyłanie multimediów drogą elektroniczną. W ten sposób mógł w celach komercyjnych udostępniać muzykę bez użycia radio.
Rozwój tej technologii był bardzo powolny ze względu na wysokie wymagania sprzętowe, które niewiele komputerów było w stanie spełnić w owych czasach. Podstawowymi parametrami, które ograniczały strumieniowanie były:
Moc obliczeniowa procesora
Przepustowość magistrali
Obsługa przerwań systemów operacyjnych, która wpływała na opóźnione buforowanie
Z tych właśnie powodów, przez wiele lat popularniejsze były pobieranie mediów z Internetu i odtwarzanie ich ze swojego dysku twardego, bądź przenoszenie ich na różnego rodzaju nośnikach danych (np. płytkach CD)
Nazwy strumieniowanie, a dokładniej angielskiego „streaming” użyto po raz pierwszy we wczesnych latach dziewięćdziesiątych do lepszego określenia wideo na życzenia w sieciach IP (wcześniejsza nazwa: „store and forward video”)
Kilka dat:
1993 – pierwsza transmisja wykonania muzyki na żywo
1995 – transmisja meczu baseballowego w Internecie oraz transmisja koncertu symfonicznego
Pseudostrumieniowani – wykorzystywane między innymi przez YouTube. Polega na przekazywaniu multimediów na żywo, jedna dane są zapisywane na komputerze w pamięci tymczasowej co pozwala na zatrzymanie czy przewinięcie filmu lub utworu muzycznego. Odbywa się to na protokole http.