Zakładając, że treść jest tej samej jakości (ceteris paribus), czy media strumieniowe (tj. Wideo, audio) wykorzystują tę samą przepustowość co pobieranie?
Powiedzmy, że mam pobrać film HD z Amazon lub przesłać go strumieniowo, czy byłoby to równoważne wykorzystanie przepustowości?
download
streaming
data-transfer
stemie
źródło
źródło
Odpowiedzi:
Często nie jest równoważny.
Dostawcy transmisji strumieniowych używają protokołów, takich jak DASH , aby dynamicznie dostosowywać jakość filmu do dostępności przepustowości i wymagań jakościowych użytkowników. Następnie serwery mogą ograniczać szybkość połączenia, aby można było buforować określoną ilość (około 10 sekund, może 30 lub całą minutę), a następnie uzyskuje się tylko przepustowość wymaganą do przesłania zawartości w czasie rzeczywistym. Jest to oczywista optymalizacja z punktu widzenia dostawcy, ponieważ równomiernie rozkłada przepustowość między użytkowników, a ponadto unika na próżno przesyłania danych (np. Gdy użytkownik ogląda film 480p przez 10 minut, bez ograniczeń czasowych i przy zwykłym łączu w dół prawdopodobnie jest już o wiele więcej pobrane, ale zmarnowane, jeśli użytkownicy przestaną oglądać wideo).
Ilość przesłanych danych jest taka sama. W przypadku przesyłania strumieniowego może to jednak potrwać dłużej, ponieważ dostawca może ograniczyć transfer danych do prędkości wymaganej do dostarczenia treści o określonej jakości w czasie rzeczywistym.
Dailymotion jest jednym z dostawców, którzy ograniczają stawki połączeń. Z serwera z połączeniem symetrycznym co najmniej 100 Mbit / s widzimy następujące zachowanie¹:
Stawka jest znacznie poniżej tego, co byłoby możliwe (i jest osiągane w przypadku innych dostawców). Ponadto, jeśli spróbujesz innego materiału, okaże się, że szybkość zależy w dużym stopniu od poszczególnych filmów: wideo FullHD łatwo pobiera z> 1 MiB / s, podczas gdy teledysk taki jak ten utrzymuje się na poziomie około 200 KiB / s .
Podsumowując wszystko i usuwając niektóre możliwe nieporozumienia: Niektórzy dostawcy mogą ograniczyć pobieranie podczas przesyłania strumieniowego, za pośrednictwem aplikacji klienckiej (np. YouTube z odtwarzaczem HTML5 lub Flash Video) lub za pomocą serwera. Jeśli nie ograniczają one prędkości za pomocą serwera, pobieranie zużywa większą przepustowość, ponieważ nie ma miejsca ograniczenie prędkości, które może być zastosowane przez aplikację kliencką podczas przesyłania strumieniowego. Jest to główny przypadek, gdy wykorzystywane pasmo różni się w stosunku do pierwotnego pytania.
źródło
youtube-dl
Programy pobierające, takie jak, będą nadal prosić o więcej fragmentów, dopóki film nie zostanie w pełni pobrany. Tak więc przesyłanie strumieniowe za pomocą DASH pociąga za sobą nieco więcej kosztów, ale prawdopodobnie jest tego warte (zarówno dla użytkownika, jak i dostawcy) i można je pominąć.Zakładając, że mówimy o tej samej jakości (tj. Bez ograniczania przepustowości, przeskakiwania klatek lub strumieni o niższej jakości), wówczas w najlepszym wypadku strumienie będą pobierać taką samą przepustowość jak pobieranie, chociaż można to zrobić w określonym czasie / tempie wygodniejsze dla dostawcy. Może to również wymagać większej przepustowości w zależności od sposobu kompresji wideo - przez większość czasu cały obraz nie jest wysyłany, a jedynie zmiana (lub delta) między ramkami. Oznacza to, że im więcej historii (tzn. Użyj odcienia niebieskiego z piksela X w ramce Y), tym mniej trzeba wysłać. Zwykle nie wyskakuje to zbyt wiele, ale gdy strumień zostanie z jakiegokolwiek powodu wstrzymany / przerwany, ta „historia” zostanie utracona i będzie musiała zostać ponownie przesłana, co zwiększy przepustowość, a podczas pobierania można ją wznowić na „przerwie”, i założył, że odbiorca ma już tę informację. To samo można zastosować w przypadku audio, szczególnie tam, gdzie nie ma stałej szybkości (tj. FLAC zamiast mp3)
Przeskakiwanie (przeskakiwanie, ponowne nawijanie itp.) Może również wpływać na użycie - przejście do przodu bufora zmniejszyłoby szerokość pasma wykorzystywanego przez strumień, ale każde ponowne nawijanie zwiększyłoby go. Nastąpiłoby również przerwanie, które spowodowałoby zwiększone użycie (patrz wyżej), a każdy rodzaj „podglądu miniatur”, taki jak użycie YouTube i Netflix, również nieznacznie zwiększyłoby przepustowość.
Ostatnia uwaga: kompresja: można tego dokonać w przypadku pobierania, ale nie w przypadku strumieni - zastrzeżenie polega na tym, że większość filmów jest już skompresowana, więc nie zyska się tutaj wiele (chociaż może być miejsce na zyski w ultra- dział wysokiej rozdzielczości / jakości).
źródło
Strumieniowanie zużywa mniejszą przepustowość, szczególnie jeśli warunki sieciowe są złe, ale ma to swoją cenę .
Problemem są dane, które należy wysłać. W modelu pobierania wszystkie dane muszą docierać do klienta we właściwej kolejności, bez względu na wszystko . Jeśli warunki sieciowe są złe, a niektóre bity danych nie docierają do klienta, należy je ponownie wysłać, co zwiększa wykorzystanie przepustowości. Jeśli niektóre dane nie są uporządkowane, muszą zostać uporządkowane przed ich przedstawieniem, co zmniejsza szybkość reakcji.
W modelu przesyłania strumieniowego jest OK, jeśli niektóre dane nie docierają do klienta . Jeśli przesyłasz strumieniowo film, a klatka tam nie dociera, możesz po prostu go pominąć i przejść dalej, aby nie używać dodatkowej przepustowości przy ponownych wysyłkach. Jeśli niektóre klatki nie działają, po prostu zagraj w te, które idą do przodu; chwilowe uderzenie nie będzie miało znaczenia, więc zwiększa to szybkość reakcji. Oznacza to jednak również, że niekoniecznie dostajesz pełne dane: wszystko, co widzisz, jest tym, co dostałeś na pierwszym zdjęciu.
Jeśli musisz wybierać między modelami, wybierz na podstawie tego, co chcesz zrobić z danymi. Jeśli chcesz go zarchiwizować i / lub ewentualnie wyświetlić wiele razy, pobierz go, aby mieć pewność, że otrzymasz wszystko. Jeśli nie planujesz archiwizować lub planujesz tylko raz wyświetlić dane, możesz przesyłać strumieniowo; prawdopodobnie nie zauważysz różnicy podczas jednego oglądania, a jeśli warunki sieciowe są na tyle złe, że zauważysz, pobieranie będzie jeszcze gorsze.
źródło
Jeśli naprawdę pytasz o „przepustowość” (bajty / s), a nie „dane całkowite” (bajty), kluczowe pytanie brzmi: w jakim okresie? Jeśli założymy, że użytkownik ogląda cały film i że ten sam kodek / jakość jest zwracany itp. I zignorujemy niewielki narzut związany z żądaniami / odpowiedziami przesyłania strumieniowego, wówczas zwrócone dane są równe.
Teraz jaka jest przepustowość? Istnieją dwa sposoby zrozumienia pytania:
Przepustowość w czasie do zakończenia pobierania. W przypadku przesyłania strumieniowego powinieneś zobaczyć gwałtowne wzrosty przepustowości (gdy żądany jest następny fragment), które wracają do zera podczas oglądania tego fragmentu aż do końca fragmentu i ponownie następuje wzrost przepustowości. Podczas pobierania powinieneś zobaczyć bardzo wysoką przepustowość, powiedzmy, 10min, która spada do zera, gdy tylko cały film zostanie pobrany. Jeśli teraz przerwiesz eksperyment, przepustowość pobierania jest oczywiście wyższa, ponieważ maksymalizuje twoje łącze w dół, dopóki nie zostanie zakończone.
Przepustowość podczas oglądania wideo. Czas oglądania wideo jest taki sam dla przesyłania strumieniowego i pobierania, przy założeniu, że oba zaczną oglądać natychmiast. Całkowity rozmiar danych jest również taki sam. Ponieważ przepustowość to dane na czas, jest taka sama dla obu scenariuszy.
W poniższym przykładzie zawsze pobieranych jest w sumie 40 (jednostek danych). Ale w przypadku „pobierania” jest to 40 w pierwszej jednostce czasu, podczas gdy w przypadku „przesyłania strumieniowego” jest to 20 w pierwszych jednostkach czasu (aby uzyskać dużą początkową porcję), a następnie dwa razy 10 w przypadku dwóch dodatkowych części. Zauważ, że chociaż szerokość pasma jest wykreślona na osi y, obszar pod każdym z dwóch wykresów odpowiada danym (bajtom) - jeśli zintegrujesz bajty / czas w czasie, otrzymasz bajty.
źródło
Nie są porównywalne.
Po pierwsze, optymalne kodowanie do oglądania lokalnego różni się od kodowania optymalnego do oglądania strumieniowego.
Porozmawiajmy o kodowaniu wideo.
W większości formatów kodowania wideo występują zwykle dwa rodzaje ramek:
Kodowanie do lokalnego wyświetlania może skorzystać z szybkiego szukania dysku, aby skorzystać z większej liczby ramek P i B, podczas gdy wideo zakodowane w celu wydajnego przesyłania strumieniowego będzie musiało kodować więcej nadmiarowych ramek I wzdłuż całego wideo, nawet jeśli nie ma nagłych przejść, aby pomieścić losowe wyszukiwanie.
Istnieją również dwa różne rodzaje przesyłania strumieniowego. Możesz przesyłać strumieniowo wcześniej nagrany strumień (większość filmów z YouTube) i transmisje z wydarzeń na żywo (np. Youtube Live). Ze względu na opóźnienie transmisja na żywo nie może korzystać z zaawansowanych technik kodowania, które zajmują dużo czasu lub są nieprzewidywalne, a wstępnie nagrany strumień może zająć tyle czasu, ile potrzeba do zakodowania.
Strumieniowe wideo jest również zwykle kodowane ze stałą przepływnością (CBR). W przypadku tego samego rozmiaru docelowego wideo o zmiennej przepływności (VBR) będzie zazwyczaj miało wyższą jakość niż wideo CBR. I odwrotnie, wideo VBR jest mniejsze dla tej samej jakości wideo CBR. Adaptacyjny protokół przesyłania strumieniowego, taki jak DASH, ma adaptacyjną przepływność (ABR), co stanowi kompromis między CBR a VBR. ABR umożliwia przeglądarce dostosowanie się do zmian przepustowości sieci. Biorąc pod uwagę stałą, stałą przepustowość, ABR jest mniej więcej taki sam jak CBR.
Oznacza to, że biorąc pod uwagę tę samą jakość i jakość oglądania , możesz kodować wideo do lokalnego wyświetlania bardziej efektywnie niż wideo przesyłane strumieniowo, i możesz kodować wideo dla wcześniej nagranych strumieni bardziej efektywnie niż strumieni na żywo.
Następnie w protokole przesyłania strumieniowego występuje również narzut. Podczas zwykłego pobierania HTTP można użyć kodowania przesyłania fragmentarycznego, aby pobrać cały plik, który ma bardzo minimalny narzut. Przesyłane strumieniowo pobieranie będzie musiało negocjować porcję i jakość porcji do przesłania. W wielkim schemacie rzeczy narzut protokołu przesyłania jest stosunkowo niewielki.
Ogólnie rzecz biorąc, dla tej samej ilości oglądanych filmów, przesyłane strumieniowo wideo powinno ostatecznie zająć większą przepustowość. Podstawową zaletą przesyłania strumieniowego, jeśli chodzi o wykorzystanie przepustowości, jest to, że może oszczędzać osoby, które pobierają, ale nie oglądają filmu w całości, co może być bardzo znaczącą oszczędnością.
źródło
Odpowiedź brzmi „to zależy”.
Odpowiedź brzmi NIE, w przypadku dostawców hostujących wideo w ogóle. Pół przyzwoitych dostawców, którzy przesyłają strumieniowo wideo, kontroluje szybkość transmisji, aby zapewnić płynne odtwarzanie i optymalną przepustowość dla jak największej liczby osób. Więc nawet jeśli masz dużą przepustowość, może zdecydować się dać ci tylko 5Mbit i nadal wyglądać całkiem przyzwoicie.
Jeśli pobierzesz HTTP, uruchomią się algorytmy kontroli szybkości TCP, aby zapewnić nasycenie jednego lub obu końców połączenia lub cokolwiek pomiędzy. Więc jeśli miałeś 100Mbit dostępne, wykorzysta wszystko, co może uzyskać lub blisko 100Mbit.
To oczywiście zakłada, że pomiędzy klientem a serwerem nie zachodzi QoS.
Twoje pytanie jest tak luźne, że mógłbym je również zadać, aby w niektórych naiwnych konfiguracjach odpowiedź brzmiała TAK (przy założeniu), przepustowość jest identyczna. Aby to zrobić, po prostu upuść plik na podstawowy serwer sieciowy i otwórz go w przeglądarce, aby uruchomić przeglądarkę. Lub umieść wideo na podstawowym serwerze internetowym i ponownie, będzie on odtwarzany w przeglądarce i użyje identycznej przepustowości z następujące założenie ... brak innych użytkowników, nikt inny nie współużytkuje sieci z tobą ... żadnych innych czynników, które mogą wpłynąć na przepustowość.
Należy pamiętać, że podczas pobierania pliku ze strony internetowej, a następnie pobierania go ponownie, przepustowość między pierwszym a drugim pobieraniem może się różnić. Jest tak po prostu dlatego, że obciążenie serwera może się zmieniać, a przeciążenie sieci i ścieżki sieciowe mogą się zmieniać.
Więc masz to ... to zależy.
źródło
Z punktu widzenia sieci „pobieranie” i „streaming” to różne usługi, nazywa się to „profilem ruchu”
W przypadku usługi przesyłania strumieniowego sieć musi zapewniać minimalną stałą przepustowość (technicznie „przepustowość” oznacza coś innego), usługa przesyłania strumieniowego jest wrażliwa na przerwy i fluktuacje. Nie wymaga maksymalnej przepustowości sieci, opóźnienia ani opóźnienia nie jest krytyczna.
Z punktu widzenia użytkownika końcowego oznacza to: Wideo powinno działać płynnie, bez przerw i upuszczeń. Nie ma znaczenia, czy wideo rozpocznie się kilka sekund wcześniej czy później.
„Pobieranie” zwykle wymaga maksymalnej możliwej przepustowości sieci, pobieranie powinno zostać zakończone tak szybko, jak to możliwe. Opóźnienia, przerwy i fluktuacje nie są krytyczne.
Sieć może zapewniać więcej profili ruchu, które są zupełnie inne. Na przykład usługi głosowe (proste połączenia telefoniczne) wymagają bardzo niskiej przepustowości, ale są bardzo wrażliwe na opóźnienia (mniej niż 200 ms)
źródło
Aby dodać do innych odpowiedzi, moja odpowiedź brzmi: niekoniecznie .
Teraz, zakładając, że wszystko jest równe (brak automatycznego wyboru jakości, brak ograniczania przepustowości z serwera i / lub dostawcy usług internetowych) ...
Przepustowość jest zwykle definiowana jako wielkość_danych podzielona przez całkowity czas. (Technicznie „właściwy” termin to przepustowość , ale dygresuję).
Załóżmy, że zamierzasz przesyłać strumieniowo 2000-sekundowy film o rozmiarze 60 MB.
W przypadku przesyłania strumieniowego program do streamingu może wprowadzać własne ograniczenia prędkości, aby zapobiec przepełnieniu bufora. Tak więc nagłówek żądania HTTP może zawierać pole Range . Efektywna przepustowość od streamingu zaczyna aż strumieniowych końców będzie wówczas ~ 60 MB / 2000 sekund = 30 KB / s = 240 kbps.
Jednakże, jeśli pobrać film wprost, dostaniesz się do maksymalnej przepustowości swojego serwisu internetowego. Oczywiście w zależności od innych zastosowań w tym samym czasie. Zakładając, że usługa internetowa wynosi 6 Mb / s przy 50% dostępnej przepustowości, uzyskasz przepustowość 3 Mb / s do pobierania filmów.
źródło
Streaming to naprawdę sposób pobierania.
Podczas oglądania filmu przesyłanego strumieniowo odtwarzacz multimedialny pobierze jego części, wyświetli je i odrzuci pokazane części pliku w locie.
Zwykle podczas pobierania pliku czekasz na zakończenie pobierania, a dopiero potem zaczynasz go oglądać. Istnieją jednak odtwarzacze multimedialne, które potrafią wyświetlić pobraną część pliku i automatycznie wstrzymać i poczekać na pobranie kolejnych plików. Trochę jak streaming, ale bez odrzucania pliku.
Technicznie, gdy problemem jest łączna ilość przesłanych danych, nie ma znaczenia, jak je pobierzesz, ale różnica między plikiem, który pobierasz, a plikiem, który odtwarzacz multimediów pobiera dla Ciebie jako strumień. Mogą to być dokładnie te same pliki, co w obu przypadkach oznacza taką samą przepustowość.
Witryny mediów strumieniowych zwykle kodują ich zawartość w celu uzyskania niższej przepływności niż płyta kupiona w sklepie. Ale możesz oglądać film z komputera stacjonarnego na notebooku przez Wi-Fi, korzystając z funkcji udostępniania plików w swoim systemie operacyjnym, i będzie on zajmował prawie taki sam ruch, jak gdybyś oglądał go na komputerze (jako odczyt bajtów z twardego napęd). Technicznie rzecz biorąc, byłby przesyłany strumieniowo, gdy oglądasz film, podczas gdy jego części są ciągle pobierane i odrzucane.
Odpowiedź brzmi: to absolutnie zależy od wielkości dwóch plików - przesyłanych strumieniowo przez odtwarzacz multimedialny i pobieranych na dysk.
źródło
Przesyłanie strumieniowe wykorzystuje przepustowość pobierania, dlatego można uznać to za pobieranie. Twoje pytanie jest nieco niejednoznaczne, co uważasz za pobranie. Możesz pobrać tylko tyle plików, ile mogą i są skłonni zaoferować. Na koniec, jeśli chcesz na przykład porównać proste pobieranie z HTTP przez DASH (wciąż HTTP), musisz sprawdzić, ile pobierasz z każdego.
Wydaje mi się, że odpowiedź brzmi, że można użyć tej samej kwoty ... lub mniej ... lub więcej. w zależności od serwerów i stawki, którą ci obsługują.
źródło
Tak, to jest odpowiednik. Pobierz = pobierasz go tylko raz i pozostaje na twoim komputerze. Strumień = Tymczasowo pobierasz „coś” na swój komputer.
źródło