題 流媒體使用與下載相同的帶寬量?


假設內容具有相同的質量(其他條件不變),流媒體(即視頻,音頻)是否使用與下載相同的帶寬量?

假設我是從亞馬遜下載高清電影或者流式傳輸它,它是否相當於使用帶寬?


74
2017-10-08 09:33


起源


取決於協議和編解碼器:例如通過rtmp或h264 vs vp6通過http和流下載。考慮到壓縮量和數據傳輸方法的比較,IMO這個問題過於寬泛。 - zamnuts
只是為了澄清你的問題。通過帶寬,您指的是數據速率,而不是文件(電影)大小? - Matt H
通過流式傳輸下載(技術上下載但僅供一次性使用)的一個優點是,您可以根據需要多次使用該材料,而無需每次都花費您的帶寬。有些媒體播放器甚至可以播放您當前正在下載的視頻(未完全下載),從而具有下載優勢的流媒體“感覺”。 - ADTC
是的我指的是數據速率。我問的原因與我的妹妹有分歧,當我在網上看到所有我能找到的是來自雅虎答案的模糊答案。我意識到這取決於很多變量,但我認為這至少值得一提。 - stemie
“在計算機網絡和計算機科學中,帶寬,網絡帶寬,數據帶寬或數字帶寬是可用或消耗數據通信資源的比特率的度量,以每秒比特或其倍數表示(比特/秒,千位/秒) ,Mbit / s,Gbit / s等) - wikipedia.org/wiki/Bandwidth_(computing)" - stemie


答案:


它通常不相同。

流媒體提供商使用協議,例如 短跑,動態調整電影的質量,以滿足用戶的帶寬可用性和質量要求。然後,服務器可以對您的連接進行速率限制,以便您可以緩沖一定量(例如10秒,可能30或整分鐘),之後您只能獲得實時獲取內容所需的帶寬量。從提供商的角度來看,這是一個明顯的優化,因為它在用戶之間更均勻地分配帶寬,另外避免數據無法傳輸(例如,當用戶觀看480p電影10分鐘時,沒有限速和使用共同的下行鏈路,可能比已經下載的更多,但如果用戶停止觀看視頻則浪費了。

大量的 數據 轉移是一樣的。但是流式傳輸可能需要更長時間,因為提供商可能會將數據傳輸速率限制為實時傳送給定質量內容所需的速率。

Dailymotion是對連接進行速率限制的提供商之一。從具有至少100Mbit / s對稱連接的服務器,我們看到以下行為¹:

youtube-dl http://www.dailymotion.com/video/xhc3zz_long-distance-calling-into-the-black-wide-open_music
[dailymotion] xhc3zz: Downloading webpage 
[dailymotion] xhc3zz: Extracting information 
[dailymotion] xhc3zz: Downloading embed page 
[download] Destination: LONG DISTANCE CALLING - ' Into The Black Wide Open '-xhc3zz.mp4 
[download]   5.8% of 51.99MiB at 203.89KiB/s ETA 04:06

費率遠低於可能的水平(並且與其他提供者一起實現)。此外,如果你嘗試不同的材料,你會發現速率高度依賴於單個視頻:全高清視頻可以輕鬆下載> 1MiB / s,而像這樣的音樂視頻大約或低於200KiB / s 。

總結一下並澄清一些可能的誤解:一些提供商可能會通過客戶端應用程序(例如帶有html5或flash視頻播放器的youtube)或服務器方式對流式傳輸進行速率限制。如果他們沒有按服務器方式對您進行速率限制,那麼下載將消耗更多帶寬,因為客戶端應用程序在流式傳輸期間可能應用的速率限制不會發生。當消耗的帶寬相對於原始問題不同時,這是主要情況。


  1. 我知道這是一種非法的證據 - 但我一直觀察到這種行為。

42
2017-10-08 10:20



@Psycogeek Youtube是使用DASH的例子之一(如果這個評論對你沒有意義,請閱讀我鏈接的文章的介紹部分)。這意味著客戶端正在使用的播放器必須始終請求連續的視頻塊。如果玩家沒有跑步,從那裡採取步驟停止請求更多的塊是自然的。下載者如 youtube-dl 在視頻完全下載之前,我們會繼續請求更多塊。因此使用DASH進行流式處理會產生更多的開銷,但它可能是值得的(對於用戶和提供商而言)並且可以忽略不計。 - Jonas Schäfer
假設使用相同的數據編碼和定義(參見psychogeek評論)下載 將 使用更多的總帶寬。幾乎可以肯定使用TCP完成視頻下載,而流式傳輸將是UDP或類似的非保證傳送方式。因此TCP將至少發送更多的ack,並且因為你可能會丟失或損壞至少幾個數據包,所以tcp方法實際上也會下載更多(因為它也會獲取丟失的數據包)。雖然與下載的大小相比,差異非常小,但這主要是學術性的。 - dsollen
@dsollen:除非UDP發送者只是讓數據包流動而不關心預期的接收者是否仍然存在,否則UDP和TCP都需要定期確認;在任何一種情況下,確認都將佔總流量的很小一部分。此外,以這樣的方式格式化數據,即即使沒有接收到先前的分組,也可以理解每個分組通常意味著超出TCP所需的級別開銷。 - supercat
如果我有足夠的代表,我會給你這個答案:它確實如此 不 回答這個問題,關鍵詞是“同一品質”。當提供商降低質量時,事實並非如此 其他條件不變。 - zamnuts
@zamnuts,然後發布一個更好的,讓社區決定。 FWIW,當你考慮提供商決定質量下降時,它有點蘋果和橘子,但我不認為如果沒有它,答案是完整的。 - paqogomez


假設我們正在討論相同的質量(即沒有限制,跳幀或低質量流),那麼最好的流將採用與下載相同的帶寬量,儘管它可以在一個時間/速率下完成提供商更方便。它還可能需要更多帶寬,具體取決於視頻的壓縮方式 - 大部分時間不發送整個圖像,而只是幀之間的變化(或增量)。這意味著存在的歷史越多(即,在幀Y中使用來自像素X的藍色的色調),需要發送的越少。這通常不會彈出太多,但是當流因任何原因暫停/中斷時,此“歷史記錄”將丟失並需要重新傳輸,從而增加帶寬,而在下載時,可以恢復在“休息”,並假設接收器已經有這個信息。同樣可以用於音頻,特別是在沒有固定速率的情況下(即FLAC而不是mp3)

跳躍(跳過,重新纏繞等)也可能影響使用 - 前進緩衝區會減少流使用的帶寬量,但任何重新纏繞都會增加它。還會有一個中斷,這將導致使用量增加(見上文),任何類型的“縮略圖預覽”,如youtube和netflix使用的也會略微增加帶寬。

最後一點:壓縮:這可以用於下載,但對於流不是很多 - 需要注意的是大多數視頻已經被壓縮了,所以這裡不會有太大的收穫(儘管在超級中可能有收穫的空間)高分辨率/質量部門)。


19
2017-10-08 14:21





流式傳輸將使用更少的帶寬,尤其是在網絡狀況不佳的情況下,但這需要付出代價

問題是需要發送的數據。 在下載模型中,無論如何,所有數據都必須以正確的順序到達客戶。如果網絡狀況不好並且某些數據位沒有到達客戶端,則必須重新發送它們,這會增加帶寬使用。如果某些數據無序排列,則必須在呈現之前將其重新排序,這會降低響應速度。

在流模型中,如果某些數據未到達客戶端,則可以。如果您正在播放電影並且幀沒有到達那裡,您可以跳過它並繼續前進,因此您不會在重新發送時使用額外的帶寬。如果某些幀出現故障,只需播放前進的幀;短暫的曇花一現並不重要,因此這增加了響應能力。然而,這也意味著你不一定得到完整的數據:無論你看到的是第一槍上的任何東西。

如果您必須在模型之間進行選擇,請根據您要對數據執行的操作進行選擇。 如果您想將其存檔和/或可能多次查看,請下載它以便您確保獲得所有內容。如果您不打算進行歸檔,或者只計劃一次查看數據,那麼請繼續進行歸檔;您可能不會注意到單次查看的差異,如果網絡條件非常糟糕,您會注意到,那麼下載會更糟。


7
2017-10-09 12:55



您是說流媒體服務使用UDP而不是TCP來故意允許丟棄數據? - FreeAsInBeer
@FreeAsInBeer:是的。 TCP構建了一系列可靠性機制和其他對大多數可以想像的應用程序非常有用的功能。但是用例DO存在的地方甚至比可靠性更重要,而流媒體就是其中之一:在正確的時刻顯示正確的幀比顯示每一幀更重要。在線遊戲是UDP受歡迎的另一個例子,原因相同:停止重建玩家狀態跟踪的動作比糾正偶爾掉線狀態更糟糕。 - The Spooniest
實際上,許多系統通過TCP和客戶端緩衝區傳輸數據。對於流式傳輸電影,延遲並不重要。如果某些幀碰巧在顯示它們之前在緩衝區中待了一分鐘,則對用戶沒有不便。但對於視頻會議等交互式用途,延遲至關重要。 - kasperd
kasperd:嚴格來說,這不是流媒體。其他答案提到了下載但在下載完成之前開始播放的服務,這就是您描述的系統正在做的事情。 - The Spooniest
+1表示此帖子中最簡單的答案(迄今為止)。 - Cosmic Ossifrage


如果您真的要求“帶寬”(字節/秒)而不是“總數據”(字節),那麼關鍵問題是:在什麼時間段內?如果我們假設用戶觀看整個視頻並且返回相同的編解碼器/質量等,並忽略流請求/響應的小開銷,那麼返回的總數據是相等的。

現在,帶寬是多少?有兩種方法可以理解您的問題:

  1. 下載完成之前的帶寬。 對於流式傳輸,您應該會看到高帶寬的尖峰(當請求下一個塊時),當您正在觀察該塊時,它會回到零,直到您接近塊的末尾並再次出現帶寬峰值。對於下載,您應該看到一個非常高的帶寬,比如10分鐘,一旦整個視頻下載,它就會降至零。如果你現在停止實驗,下載的帶寬明顯更高,因為它會最大化你的下行鏈路直到它完成。

  2. 觀看視頻時的帶寬。 觀看視頻的時間對於流式傳輸和下載都是相同的,假設兩者都立即開始觀看。總數據大小也是一樣的。由於帶寬是每次數據,因此兩種情況都是相同的。

在下面的示例中,總共下載了40個(數據單位)。但是對於“下載”,它在第一個時間單位是40,而對於“流”,它在第一個單位時間內是20(獲得一個大的初始塊),然後兩個額外的塊兩次10。請注意,雖然帶寬是在y軸上繪製的,但兩個圖形中每個圖形下面的區域對應於數據(字節) - 如果你 整合 字節/時間隨著時間的推移,你得到字節。


5
2017-10-09 15:58





他們沒有可比性。

首先,本地觀看的最佳編碼不同於流觀看的最佳編碼。

我們來談談視頻編碼。

在大多數視頻編碼格式中,通常有兩種類型的幀:

  1. 幀內編碼幀(I幀) - 這些是完全傳輸的幀,可以在不知道任何其他幀的情況下解碼該幀。幀內編碼幀本質上是靜態圖像。編碼器會在突然轉換期間生成這些。這些壓縮效率較低。
  2. 預測幀(P幀)或雙預測幀(B幀) - 這些幀僅存儲幀之間的差異,只有在觀看者也知道前一幀和/或後一幀時才能解碼。這些壓縮效率更高。

用於本地觀看的編碼可以利用快速磁盤尋求利用更多P和B幀,而編碼用於高效流的視頻將必須在整個視頻上編碼更多冗餘I幀,即使在沒有突然轉換以容納時也是如此隨意尋求。

此外,還有兩種不同類型的流媒體。您可以播放預先錄製的流(大多數Youtube視頻)和直播活動流(例如Youtube Live)。由於延遲需要,流直播事件不能利用需要很長或不可預測的時間量的高級編碼技術,而預先錄製的流可能需要花費盡可能多的時間來編碼。

流視頻通常也以恆定比特率(CBR)編碼。對於相同的目標大小,可變比特率(VBR)視頻通常具有比CBR視頻更高的質量。相反,對於相同質量的CBR視頻,VBR視頻較小。像DASH這樣的自適應流傳輸協議具有自適應比特率(ABR),這是CBR和VBR之間的折衷。 ABR允許觀眾適應網絡帶寬的變化。給定恆定,一致的帶寬,ABR與CBR大致相同。

所有這些意味著什麼 給予相同的質量和觀看體驗,您可以比流式視頻更有效地對視頻進行本地查看編碼,您可以比實時流更有效地為預先錄製的流編碼視頻。

然後在流協議中也有開銷。常規HTTP下載可以使用分塊傳輸編碼來下載整個文件,該文件具有非常小的開銷。流式下載必須協商要傳輸的塊的塊和質量。在宏觀方案中,傳輸協議的開銷相對較小。

總體而言,對於觀看的視頻量相同,流式視頻應最終佔用更大的帶寬。就帶寬使用而言,流式傳輸的主要優勢在於它可以節省下載但不完整觀看視頻的人,這可以是非常顯著的節省。


4
2017-10-09 00:48





答案是“這取決於”。

對於一般託管視頻的提供商,答案是否定的。 流式傳輸視頻的半數提供商會進行速率控制,以確保盡可能多的人能夠順利播放和獲得最佳帶寬。所以即使你可能有很多帶寬,它可能決定只給你5Mbit,看起來仍然相當不錯。

如果您進行HTTP下載,則TCP速率控制算法將啟動以確保您使連接的一端或兩端飽和或兩者之間的任何內容。因此,如果您有100Mbit可用,它將使用它可以獲得或接近100Mbit。

當然,假設客戶端和服務器之間的任何地方都沒有QoS發生。

你的問題是如此鬆散,我也可以在一些天真的設置中做到這一點 答案也是YES(假設),帶寬是相同的。要做到這一點,只需將文件放到您的基本網絡服務器上,然後用瀏覽器將其打開,以便觀眾能夠進入。或者將視頻嵌入到您的基本網絡服務器上,然後再次在瀏覽器中播放並使用相同的帶寬以下假設......沒有其他用戶,沒有其他人與您共享網絡...沒有其他因素可能會改變您的帶寬。

請記住,當您從網站下載文件,然後再次下載時,第一次和第二次下載之間的帶寬可能會有所不同。這只是因為服務器上的負載可能會發生變化,網絡和網絡路徑上的擁塞可能會發生變化。

所以你擁有它......這取決於你。


1
2017-10-09 03:59



“第一次和第二次下載之間的帶寬可能會有所不同”,但最終肯定會下載相同數量的數據,即使這種數據需要的時間比另一次/網絡狀況發生變化。 - stemie
@stemie,它會很接近。不同協議增加了協議開銷。但是如果在流媒體處理過程中沒有轉碼或質量/速率變化那麼理論上應該是相同數量的視頻數據。 - Matt H


從網絡角度來看,“下載”和“流媒體”是不同的服務,它被稱為“流量配置文件”

對於流服務,網絡必須提供最小的恆定吞吐量(技術上“帶寬”意味著不同的東西),流服務對中斷和抖動敏感。它不需要最大的網絡吞吐量,延遲或延遲並不重要。

從最終用戶的角度來看,它意味著:視頻應平穩運行,不會出現相互干擾或丟失。視頻是在幾秒鐘之前還是之後開始並不重要。

“下載”通常需要最大可能的網絡吞吐量,下載應盡快完成。延遲,中斷和抖動並不重要。

網絡可以提供更多完全不同的流量配置文件。例如,語音服務(簡單的電話呼叫)需要非常低的吞吐量但對延遲非常敏感(小於200毫秒)


1
2017-10-11 17:47





要添加其他答案,我的答案是: 不必要

現在,假設一切都是平等的(沒有自動質量選擇,沒有來自服務器和/或ISP的限制)......

帶寬 通常定義為size_of_data除以total_time。 (從技術上講,“適當”一詞是 吞吐量,但我離題了)。

我們假設您要傳輸2000秒的視頻大小為60 MB。

隨著流媒體,流媒體計劃 威力 做自己的速率限制,以防止緩衝區溢出。因此,它的HTTP請求標頭可能包含 範圍字段。該 有效 自流式傳輸開始直到流式傳輸結束的帶寬為~60 MB / 2000秒= 30 KB / s = 240 kbps。

但是,如果你直接下載視頻,你就會得到 取決於 您的Internet服務的最大帶寬。當然,取決於其他用途。因此,假設互聯網服務為6 Mbps,可用帶寬為50%,您將獲得3 Mbps帶寬用於視頻下載。


0
2017-10-09 07:46





流式傳輸確實是一種下載方式。

當您觀看流媒體電影時,您的媒體播放器將下載部分電影,向您顯示,並隨時丟棄文件中顯示的部分。

通常,當您下載文件時,您等待下載完成,然後才開始觀看。但是有些媒體播放器能夠向您顯示文件的下載部分並自動暫停並等待下載更多部分。有點像流式傳輸,但不丟棄文件。

從技術上講,當關注的是傳輸的數據總量時,下載它的方式並不重要,而是您下載的文件與媒體播放器為您下載的文件之間的差異。它們可能是完全相同的文件,在兩種情況下都意味著相同的帶寬。

流媒體網站通常將其內容編碼為比商店購買的光盤具有更低的比特率。但是你可以使用操作系統的文件共享功能通過WiFi在筆記本電腦上觀看台式電腦上的電影,它將佔用幾乎相同的流量,就像你在桌面上觀看它一樣(從硬盤讀取字節)駕駛)。從技術上講,它會流式傳輸,因為你正在觀看電影,而部分電影正在不斷下載和丟棄。

所以答案是 它絕對取決於兩個文件的大小  - 通過媒體播放器流式傳輸並下載到磁盤。


0
2017-10-09 22:55





Streaming確實使用您的下載吞吐量,因此您可以將其視為下載。對於您認為下載的內容,您的問題有點模棱兩可。您只能下載他們可以並且願意提供的上傳量。所以最後如果你想比較HTTP上直接下載的DASH(仍然是HTTP),你必須檢查你從每個下載了多少下載。

所以我猜答案是它可以使用相同數量......或更少......或更多。取決於服務器和他們為您服務的費率。


0
2017-10-10 00:56





是的它是等價的。 下載=您只下載一次它並保留在您的計算機上。 Stream =您暫時將“某物”下載到您的計算機上。


-2
2017-10-08 09:50



傳輸的數據量與使用的帶寬之間存在差異。 - Jonas Schäfer
在我的Android上觀看流中的視頻或下載它具有相同的數據用法 - Tiago Ribeiro
@JonasWielicki一位聰明人曾說過:“傳輸的數據量是相同的”。當然,所使用的帶寬量會有所不同,因為由於緩衝,傳輸速度會隨著時間的推移而變慢。 - Nenotlep
在很多情況下,這實際上是正確的答案。在很多情況下,通常使用完全相同的資源和協議進行流式傳輸和下載。如果你想通過HTTP播放資源,那麼下載它就沒有什麼不同了,因為你正在下載它時正在播放它。當然,流式優化和不同的協議可能會在您流式傳輸時改變您的比特率,但我不認為這是被問到的問題的核心。 (但他們確實值得一提。) - Brad