strum

Grupa ćwicz.

1

Grupa lab.

1

Zespół.

2

Data wykonania.

14.04.2014r

Data odbioru

28.04.2014r

Nr ćwicz./ wersja

6

Temat ćwiczenia.

Strumieniowanie

Imiona i nazwiska.

Adamski Damian       Bosak Katarzyna

Ocena i uwagi

 

 

Wstęp teoretyczny:

Strumieniowanie danych- „Ciągły transfer danych z jednego komputera do drugiego w czasie rzeczywistym”. Główna różnica pomiędzy strumieniowaniem a pobieraniem danych polega na tym, że w przypadku pobierania dane nie mogą być otwarte dopóki pobranie nie zostanie zakończone. 

Typy strumieniowania

Na żądanie (on demand) – strumienie są dostępne na serwerze przez dłuższy czas i są gotowe do odtworzenia

Na żywo (live) dane są dostępne tylko w konkretnym momencie tak jak w przypadku audycji radiowych

 

Rodzaje transmisji video:

Unicast (transmisja jeden-do-jednego) – pojedynczy pakiet przesyłany(w oparciu o protokół RTP) od jednego nadawcy do jednego odbiorcy. Za  pomocą RTP serwer odpowiada klientowi, przesyłając informację opisującą material video jako sesję strumieniowania (składającą się z 1 lub więcej strumieni). Serwer pokazuje klientowi informację jak dużo strumieni powinien on oczekiwać oraz podaje dokładne dane np. typ przesłanych danych

Multicast(transmisja jeden-do-wielu)- pojedynczy pakiet danych jest adresowany do wielu odbiorców(router docelowy może wysyłać pakiety nie tylko do użytkowników końcowych ale także do innych routerów)

Broadcast (transmisje rozgłoszeniowe) składają się z pojedynczego pakietu danych,kopiowanego i przesyłanego do wszystkich węzłów sieciowych. Pakiet jest adresowany przez węzeł źródłowy specjalnym adresem rozsyłającym, a następnie przesyłany do sieci, która tworzy kopie pakietu i wysyła je do każdego węzła sieci

 

 

Formaty plików:

W  tej chwili dominują 3 formaty:

1. pliki AVI w środowisku Microsoft Windows

2.pliki MOV technologii Quick Time komputerów Apple

3.format MPEG, szczególnie wersja MPEG-4

Praktycznie w plikach AVI i MOV wykorzystywane są te same algorytmu kompresji (te same kodeki), a kompresja MPEG-4 jest już traktowanajak kodek, dzięki czemu pliki zakodowane w MPEG-4 są plikami w formacie AVI. Dominującym kodekiem w kamerach cyfrowych i kartach montażu wideo jest kodek DV,kompresujący obraz ze stałą kompresją 5:1. Kompresja DV pozwala zapamiętać film z wyśmienitą jakością, porównywalną z jakością analogową BetaCAM. Niestety tak zakodowane filmy generują duże pliki wideo, które są znakomite do dalszego montażu cyfrowego, ale absolutnie nie nadają się do udostępniania i przesyłania w sieci Internet, ani nawet w sieciach lokalnych. Format MPEG-4, zorientowany głównie na telewizję cyfrową, też nie daje możliwości bezproblemowego przesyłania w sieciach, choć kompresja jest w tym przypadku bardzo efektywna. Kodowanie MPEG-4 czy też DivX, bazujące czy wręcz powielające ideę MPEG-4, pozwalają zapisać na zwykłej płycie CD (700 MB) standardowy film o długości 90 minut.

Protokoły transmisji danych:

TCP- Dominujący protokół przesyłania danych w Internecie Pozwala on niezawodnie przesyłać dane, wykorzystując mechanizmy sekwencjonowania - potwierdzenia przesłania i retransmisji pakietów. W protokole TCP przeprowadza się efektywną kontrolę przepływu i przeciążeń oraz umożliwia pracę w pełnym układzie dupleksowym i multipleksowanie. Niestety nie obsługuje transmisji jeden-do-wielu.

UDP-   obsługuje takie transmisje jeden-do-wielu; bezpołączeniowy protokół transportowym, który nie zapewnia żadnych gwarancji dostarczenia, gdyż nie posiada mechanizmów zabezpieczeń przed przesyłaniem zduplikowanych pakietów UDP, tzw. datagramów, nie kontroluje przepływu pakietów i nie retransmituje pakietów. UDP jest protokołem bezpołączeniowym,gdyż może wysyłać datagramy bez nawiązania połączenia z odbiorcą, a droga ich przesyłania może zmieniać się podczas transmisji.

RTP- Protokół do transportu danych aplikacji czasu rzeczywistego stosuje specjalny mechanizm, aby stało się możliwe przesyłanie danych czasu rzeczywistego, takich jak wideokonferencje w sieciach bazujących na IP. W pierwszym kroku, strumień danych jest dzielony na pakiety, które transmitowane są oddzielnie. Transmisje mogą mieć charakter jeden-do-jednego lub jeden-do-wielu. Następnie po stronie odbiorcy, otrzymane pakiety muszą być ustawione w poprawnej kolejności. Są również synchronizowane z innymi napływającym strumieniami. Odbiorca otrzymuje również dodatkowe informacje zwane metadanymi. Większość działań RTP polega na oznakowaniu właściwych danych audio/wideo i ich źródła, przydziale numerów sekwencyjnych i stempli czasowych dla każdego z pakietów, a także na monitorowaniu warunków sieciowych oraz na transmitowaniu informacji o sesjach użytkowników. Jednakże, sam RTP nie dostarcza metadanych oraz funkcjonalności monitoringu.

RTSP  jest protokołem poziomu aplikacji, mającym za zadanie sterowanie dostarczaniem danych czasu rzeczywistego. Mimo że jest on wręcz powszechnie stosowany w aplikacjach związanych z przesyłaniem danych multimedialnych (pierwszy dokument RFC datowany jest na kwiecień 1998), nie jest on jeszcze ustanowionym oficjalnie standardem, lecz jedynie jego propozycją ulegającą ciągłym zmianom i korektom (ang. draft). Protokół RTSP dostarcza użytkownikowi jakby elastycznego szkieletu, bazy, która może być rozwijana i dopasowywana do potrzeb użytkownika, aby umożliwić sterowanie transmisją na żądanie danych czasu rzeczywistego takich jak audio i wideo. Źródła danych mogą zawierać dane dwojakiego rodzaju: materiały odtwarzane „na żywo” oraz gromadzone w bazie danych do późniejszego odtworzenia.

.

Część praktyczna

Sprzęt: Komputer znajdujący się w budynku B5 410

Procesor Intel Core2 Quad Q8200

Architektura x86_64(64b)

RAM 4GB

SO Microsoft Windows XP Professional SP3

Użytkownik Student

Do przeprowadzenia testów użyliśmy trzech komputerów o identycznych parametrach, na jednym założony był serwer, na dwóch pozostałych klienci, jednak dane pobieraliśmy tylko z jednego klienta. Niestety z powodu powtarzających się awarii programu(który co chwila się wyłączał w trakcie strumieniowania) nie udało nam się wykonać całego ćwiczenia.

Opis programu:

VLC media player to darmowy odtwarzacz multimedialny który odtworzy prawdopodobnie każdy format wideo. Prostota obsługi i szybkość działania sprawiają, że VLC to jeden z najlepszych playerów na rynku. VLC jest programem niezwykle wszechstronnym. Odtwarza filmyDVD, DivX, MKV, pliki muzyczne, telewizję i radio internetowe. Potrafi przechwycić i zapisać strumień wideo lub rozpocząć nadawanie twojego własnego programu telewizyjnego przez internet. Obsługuje napisy i umożliwia ich synchronizację z filmem, jeśli nie działają one poprawnie. Podczas odtwarzania filmu możemy dzięki VLC zmienić jego kolory, kontrast i poziom jasności. Odtwarzany obraz można postawić na głowie lub na boku - na przykład po to by oglądać na leżąco. VLC umożliwia dodawanie do obrazu efektów specjalnych - efekt wody, szumu lub innych bardziej psychodelicznych efektów. Można tez rozbić obraz na kawałki i oglądać jako mozaikę. VLC posiada własny zestaw kodeków - oznacza to że nie trzeba niczego dodatkowo instalować. VLC media player potrafi również odtworzyć niekompletne filmy pobrane z internetu. 

Opis wykonanego ćwiczenia:

  1. Uruchomienie VLC na komputerach

  2. Pobranie plików video ze strony http://home.agh.edu.pl/~opal/sieci/video

  3. Uzupełnienie tabelki

Nazwa Kodek video Rozdzielczośc Liczba klatek Kodek audio Częstotliwość próbkowania
2_adrenalinerush.wmv H264 MPEG-4 AVC(part 10) (avc1) 1280x720 23 MPEG ACC Audio(mp4a) 48kHz
4_legend.mov H264 MPEG-4 AVC(part 10) (avc1) 848x352 24 MPEG ACC Audio(mp4a) 48kHz
6_killbill.mov MPEG-4 Video(mp4v) 480x278 25 MPEG ACC Audio(mp4v) 44kHz
  1. Uruchomienie monitorów zasobów

  2. Przeprowadzenie strumieniowania.

Port: HTTP:8080

Użyte kodeki:

  1. Mp3-  – algorytm kompresji stratnej dźwięku, przetworzonego uprzednio na sygnał cyfrowy. Popularnie zwany formatem MP3 lub standardem MP3. Jest zdefiniowany przez IETF w dokumencie RFC 5219.

  2. Ogg-rodzina kodeków. Format plików muzycznych tworzonych z kompresją stratną. Zapewnia wyższą jakość dźwięku przy tej samej wielkości pliku co przy użyciu Mp3

  3. Flac- format bezstratnej kompresji dźwięku z rodziny kodeków Ogg. W przeciwieństwie do stratnych kodeków dźwięku takich jak Vorbis, MP3 i AAC, kodek FLAC nie usuwa żadnych danych ze strumienia audio, dzięki czemu po dekompresji otrzymujemy dźwięk identyczny z pierwowzorem. Format FLAC jest obecnie obsługiwany przez większość oprogramowania służącego do edycji i odtwarzania dźwięku

  4. Theora- darmowy, stratny kodek obrazu, stworzony przez Xiph.Org Foundation na podstawie kodeka VP3. Theora wraz z wcześniej opracowanym przez Xiph.Org kodekiem dźwięku Vorbis oraz kontenerem multimedialnym Ogg, stanowi samodzielny zestaw technologii pozwalających na wolne od opłat i ograniczeń patentowych kodowanie materiału audio i wideo. Jest to rozwiązanie konkurencyjne do innych popularnych kontenerów multimedialnych takich jak AVI, RealMedia, WMV, MOV czy MP4, które wykorzystują opatentowane kodeki dźwięku np. (MP3, AAC+, WMA) i obrazu np. (DivX, MPEG-2 czy H.264).

Wyniki:

  1. Adrenalinerush.wmv

    1. Theora+Flac

Użycie procesora na serwerze:

Użycie procesora na kliencie:

Użycie sieci na serwerze:

Użycie sieci na kliencie:

Serwer:

Klient:

1.2 DIV3

Użycie procesora na kliencie:

Użycie procesora na serwerze:

Użycie sieci na kliencie:

Użycie sieci na serwerze:

Serwer:

Klient:

Video:Windows Media Video 1280x720

Audio:WMAP, 48kHz, 440kb/s

Kodek
Theora + Flac (OGG)
DIV3 + MP3 (ASF)

Widzimy, że zużycie procesora w przypadku tych dwóch różnych kodeków niewiele się różni między sobą odpowiednio dla serwera i dla klienta(różnice do 3%)

Natomiast w przypadku zużycia sieci dostrzegamy gwałtowny wzrost dla kodeka DIV3 (dla serwera dwukrotny, dla klienta prawie pięciokrotny) w porównaniu do Theory. Również dla tego kodeka przepływowość jest większa.

2.Legend.mov

2.1 TTheora+Flac

Użycie procesora na serwerze:

Użycie procesora na kliencie:

Użycie sieci na kliencie:

Serwer:

Klient:

  1. Div3

Użycie procesora na kliencie:

Użycie procesora na serwerze:

Użycie sieci na kliencie:

Klient:

Serwer:

Video:H264-MPEG-4 AVC, 848x352

Audio:MPEG AAC 48kHz, 4608kb/s

Kodek
Theora + Flac (OGG)
DIV3 + MP3 (ASF)

Jak w poprzednim przypadku, użycie sieci i przepływowość dla DIV3 jest większa niż dla Theory. Różnice użycia procesora dla klienta sięgają 2% natomiast dla serwera wynoszą już 7%.

  1. KillBill.mov

3.1 Theora+Flac:

Użycie procesora na kliencie:

Użycie procesora na serwerze:

Użycie sieci na kliencie:

Serwer:

Klient:

3.2 DIV3:

Użycie procesora na kliencie:

Użycie procesora na serwerze:

Użycie sieci na kliencie:

Użycie sieci na serwerze:

Serwer:

Klient:

Video:MPEG-4 Video(mp4v) 480x278

Audio:MPEG AAC Audio (mp4a) 44,1kHz, 1411kb/s

Kodek
Theora + Flac (OGG)
DIV3 + MP3 (ASF)

Przepływowość i zużycie sieci większe dla DIV3. Zużycie procesora dla klienta jest równe dla obydwu kodeków, natomiast dla serwera jest większe o 7% dla Thoera

 

Z danych, które posiadamy, wynika, iż zużycie sieci na kliencie jest największe dla pliku adrenalinerush.wmv Również możemy zauważyć, iż większe zużycie sieci jest zawsze dla pliku z użyciek kodeka DIV3.

Największe zużycie procesora na kliencie otrzymaliśmy dla pliku adrenalinerush.wmv przy użyciu kodeka DIV3. Jednak w przypadku użycia CPU na kliencie wyniki nie mamy drastycznej różnicy pomiędzy wynikami.

Jeżeli chodzi o zużycie procesora na serwerze, najwięcej zużywa również adrenalinerush.wmv jednak tym razem przy użyciu kodeka Theora.v

Wnioski:

Jak już wcześniej sygnalizowaliśmy, z powodu błędu programu, który wyłączał się jak tylko próbowaliśmy rozpocząć proces strumieniowania, nie przeprowadziliśmy wszystkich założonych początkowo testów.

Największe zużycie zarówno procesora zanotowaliśmy dla pliku adrenalinerush.wmv. Jest to związane z tym, iż ten plik miał największą rozdzielczość z wszystkich plików testowych.

Zużycie procesora na kliencie stosunkowo niewiele się różniło od siebie, nie przekraczając 5%. Natomiast zużycie procesora na serwerze sięgało nawet do 25% a różnice pomiędzy poszczególnymi kodekami były o wiele większe niż w przypadku ich odpowiedników na kliencie. Zatem przy strumieniowaniu zapotrzebowanie na zasoby jest ogromne na serwerze. Jest to związane z obróbką przesyłanego filmu w sieci, który musi zostać podzielony na odpowiednie pakiety, oraz przyporządkowanie odpowiednich informacji wymaganych do poprawnego odtworzenia na kliencie.

Również największe zużycie sieci zanotowaliśmy dla pliku adrenalinerush.wmv. Zużycie na kliencie było o wiele wyższe niż na serwerze. Nie możemy jednoznacznie stwierdzić dlaczego, gdyż w niektórych pomiarach program Netmeter nie zmierzył obciążenia sieci. Możemy tylko przypuszczać, że ma Większa ilość klatek na sekundę spowodowała intensywniejsze obciążenie sieci, co było związane z większą liczbą przesyłanych informacji(pakietów).

W niektórych momentach mogliśmy obserwować spadek jakości strumieniowanego sygnału, filmy przycinały się na serwerze jak i na kliencie, czego prawdopodobnym skutkiem była dodatkowe zadania które musiał wykonać PC.

Przy strumieniowaniu odtwarzanie na kliencie miało miejsce w czasie rzeczywistym, jeżeli jakiś pakiet został zgubiony to występowały przerwy w odtwarzania, przeskoki obrazu. W przypadku strumieniowania stracone pakiety nie są wysyłane ponownie w odbiorcy, ponieważ używane protokoły tego nie zapewniają.

Przy strumieniowaniu ważniejsze jest szybkość przesyłanych danych, niż liczba pakietów dostarczonych do klienta.

Podsumowując możemy z całą pewnością stwierdzić, że użycie odpowiedniego profilu strumieniowania ma duży wpływ na jakość odtwarzanego filmu oraz na obciążenia związane z pracą serwera i klienta.

Wszystkie screeny dostępne pod adresem:


Wyszukiwarka

Podobne podstrony:
Wykład Miesz strum powietrza FR
MALEWSKI, strum, strum
Wykresy strum doc
grisza strum budryk

więcej podobnych podstron