流媒体是否使用与下载相同的带宽?


75

假设内容的质量相同(ceteris paribus),流媒体(即视频,音频)使用的带宽与下载的带宽相同吗?

假设我要从亚马逊下载高清电影或将其流式传输,这是否等同于带宽的使用?


2
取决于协议和编解码器:例如,通过http下载并通过rtmp或h264与vp6进行流传输。考虑到要比较的压缩和数据传输方法的数量,IMO这个问题过于广泛。
zamnuts 2014年

只是为了澄清您的问题。带宽是指数据速率,而不是文件(电影)大小?
Matt H

通过流进行下载(技术上来说是下载,但仅供单次使用)的一个优点是,您可以根据需要多次消费素材,而不必每次都花费带宽。某些媒体播放器甚至可以播放您当前正在下载(未完全下载)的视频,从而使流媒体具有“下载”的“感觉”。
ADTC 2014年

3
是的,我指的是数据速率。我问的原因是与姐姐意见不一致,当我上网查找时,只能从Yahoo答案中得到模糊的答案。我意识到这取决于很多变量,但我认为至少值得一问。
stemie 2014年

2
“在计算机网络和计算机科学中,带宽,网络带宽,数据带宽或数字带宽是对可用或消耗的数据通信资源的比特率的度量,以每秒比特数或其倍数(比特/秒,千比特/秒)表示,Mbit / s,Gbit / s等)
-wikipedia.org/wiki/Bandwidth_(计算

Answers:


43

它通常不是等效的。

流媒体提供者使用诸如DASH之类的协议来动态调整电影的质量,以适应​​用户的带宽可用性和质量要求。然后,服务器可能会限制您的连接速率,以便您可以缓冲一定量(大约10秒,也许30分钟或整分钟),然后,您仅获得实时获取内容所需的带宽量。从提供商的角度来看,这是显而易见的优化,因为它可以在用户之间平均分配带宽,并且还避免了白白传输数据(例如,当用户观看480p电影10分钟时,没有速率限制和如果使用常见的下行链路,则下载的内容可能远远超过已下载的内容,但如果用户停止观看视频,则会浪费很多资源)。

传输的数据量是相同的。但是流式传输可能会花费更长的时间,因为提供者可能将数据传输的速率限制为实时以给定质量交付内容所需的速率。

Dailymotion是对连接进行速率限制的提供者之一。从具有至少100 Mbit / 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

该费率远低于可能的水平(其他提供商可以实现)。此外,如果您尝试使用其他材料,您会发现速率很大程度上取决于单个视频:完整高清视频的下载速度> 1 MiB / s轻松,而诸如此类的音乐视频则保持在200 KiB / s左右或以下。

概括起来,并消除一些可能的误解:一些提供商可能会通过其客户端应用程序(例如,带有html5或Flash视频播放器的youtube)或通过服务器方式对流式下载的速率进行限制。如果它们没有通过服务器的方式来限制您的速率,那么下载将消耗更多的带宽,因为客户端应用程序在流传输期间可能会应用的速率限制不会发生。当消耗的带宽相对于原始问题有所不同时,这是主要情况。


  1. 我知道这是种脚手架的证据-但是我一直观察到这种行为。

3
@Psycogeek Youtube是使用DASH的示例之一(如果此注释对您没有意义,请阅读我链接的文章的介绍性部分)。这意味着客户端正在使用的播放器无论如何都必须请求连续的视频块。如果玩家不在跑步,那么从那里采取步骤停止请求更多块是很自然的。像这样的下载器youtube-dl将继续请求更多块,直到视频完全下载为止。因此,使用DASH进行流式传输会产生更多的开销,但是(对于用户和提供者而言)值得并且可以忽略不计。
乔纳斯·谢弗(JonasSchäfer)2014年

1
假设使用相同的数据编码和定义(请参阅psychogeek注释),下载使用更多的总带宽。视频的下载几乎可以肯定是通过TCP完成的,而流媒体将采用UDP或类似的非保证交付方式。因此,TCP将至少发送更多的ack,并且由于您可能会丢失或破坏至少几个数据包,因此tcp方法实际上也将更多地下载(因为它还将获取丢失的数据包)。尽管与下载大小相比差异很小,但是这大部分是学术性的。
dsollen 2014年

2
@dsollen:除非UDP发送方只是让数据包流动而不关心预期的接收方是否仍然存在,否则UDP和TCP都将需要定期确认;无论哪种情况,确认将仅代表总流量的一小部分。此外,以即使即使没有接收到先前分组也能理解每个分组的方式格式化数据通常意味着超出TCP所需的水平开销。
2014年

7
如果我有足够的代表,我会否决这个答案:它不能回答问题,关键短语是“质量相同”。当提供者降低质量时,这绝非轻而易举
zamnuts 2014年

1
@zamnuts,然后发布更好的一个,让社区决定。FWIW,当您考虑提供商决定质量下降时,有点像苹果和橘子,但我认为如果没有它,答案是不完整的。
paqogomez 2014年

19

假设我们在谈论相同的质量(即没有节流,跳帧或质量较低的流),那么尽管流可以按时间/速率进行,但充其量,流最多将占用与下载相同的带宽。对提供商来说更加方便。根据视频的压缩方式,它还可能需要更多的带宽-大多数情况下,整个图像都不会发送,而只是发送帧之间的变化(或增量)。这意味着存在的历史越多(即使用来自帧Y中像素X的蓝色色调),则需要发送的历史越少。这通常不会弹出太多,但是当流由于任何原因暂停/中断时,此“历史记录”将丢失,需要重新传输,从而增加了带宽,而在下载时,可以恢复它。在“休息”时,并假设接收者已经拥有此信息。同样的方法也可以用于音频,尤其是在没有固定速率的情况下(例如FLAC而不是mp3)

跳来跳去(跳过,重绕等)也会影响使用情况-向前经过缓冲区将减少流使用的带宽量,但是任何重绕都会增加流的带宽。另外还会有一个中断,这将导致使用率的增加(请参见上文),并且任何形式的“缩略图预览”(例如youtube和netflix的使用)也会稍微增加带宽。

最后要注意的是:压缩:这可以用于下载,但不能用于流媒体-告诫的是,大多数视频已经被压缩,因此在这里不会有太多收获(尽管在超级视频中可能还有收获的空间高分辨率/质量部门)。


7

流将使用较少的带宽,尤其是在网络条件恶劣的情况下,但这是有代价的

有争议的是需要发送的数据。在下载模型中,无论如何,所有数据都必须以正确的顺序到达客户。如果网络状况不好,并且某些数据无法到达客户端,则必须重新发送它们,这会增加带宽使用率。如果某些数据混乱,则必须先将其放回原位,然后再进行显示,这会降低响应速度。

在流模型中,如果某些数据未到达客户端,则可以。如果您正在流传输电影而帧没有到达那里,则可以跳过并继续播放,这样就不会在重发时使用额外的带宽。如果有些帧乱七八糟,那就播放那些前进的帧。暂时没有问题,因此可以提高响应速度。但是,这也意味着您不一定要获取完整的数据:所见即所得就是第一枪。

如果必须在模型之间进行选择,请根据要对数据进行选择。如果您想对其进行存档和/或可能进行多次查看,请下载该文件,以确保获得所有内容。如果您不打算归档,或者只计划查看一次数据,则继续进行流式处理;您可能不会在单次观看中注意到差异,并且如果网络条件严重到足以引起您的注意,那么下载将更加糟糕。


您是说流服务使用UDP而不是TCP来故意允许丢弃的数据吗?
FreeAsInBeer 2014年

1
@FreeAsInBeer:是的。TCP内置了许多可靠性机制和其他功能,这些功能对于大多数可想象的应用程序非常有用。但是用例确实存在着比可靠性更重要的事情,而流就是其中之一:在正确的时机显示正确的帧比显示每个帧更重要。出于同样的原因,在线游戏是UDP流行的另一个示例:停止纠正玩家状态轨迹的动作比必须纠正偶尔的掉线状态更糟糕。
2014年

实际上,许多系统通过TCP传输数据并在客户端进行缓冲。对于流电影,延迟不是关键。如果某些帧恰好在显示它们之前在缓冲区中坐了一分钟,则不会给用户带来不便。但是对于诸如视频会议之类的交互用途,延迟至关重要。
卡巴斯德(Kasperd),2014年

1
kasperd:严格来说,这不是流媒体。其他答案也提到了下载的服务,但在下载完成之前就开始播放,这就是您描述的系统正在执行的操作。
2014年

+1(迄今为止)在该主题中的混淆最少。
Cosmic Ossifrage

5

如果您真正要求的是“带宽”(字节/秒)而不是“总数据”(字节),那么关键的问题是:在什么时间段?如果我们假设用户观看了整个视频,并且返回了相同的编解码器/质量等,而忽略了流式传输请求/响应的少量开销,那么返回的总数据将是相等的。

现在,带宽是多少?有两种方法可以理解您的问题:

  1. 直到下载完成为止的时间带宽。对于流式传输,您应该看到高带宽的尖峰(当请求下一个块时),当您观看该块时,该带宽又回到零,直到您接近该块的末尾,并且带宽再次出现尖峰。对于下载,您应该在10分钟内看到非常高的带宽,例如,整个视频下载完成后,带宽就会降为零。如果您现在停止实验,则下载带宽显然会更高,因为这样做会使下行链路最大化,直到完成。

  2. 观看视频期间的带宽。假设流和下载都立即开始观看,那么观看视频的时间对于流媒体和下载来说都是相同的。总数据大小也相同。由于带宽是每次的数据,因此在两种情况下都是相同的。

在下面的示例中,始终总共下载了40个(数据单位)。但是对于“下载”,在第一时间单位为40,而对于“流传输”,在第一时间单位为20(为了获得较大的初始块),然后为两个额外的块两次。请注意,虽然带宽是在y轴上绘制的,但是两个图形中每个图形下面的区域都对应于数据(字节)-如果对字节/时间进行积分,则会得到字节。


4

它们不可比。

首先,用于本地观看的最佳编码与用于流观看的最佳编码不同。

让我们谈谈视频编码。

在大多数视频编码格式中,通常有两种类型的帧:

  1. 帧内编码帧(I-Frame)-这些是完整传输的帧,可以在不了解任何其他帧的情况下对该帧进行解码。帧内编码帧本质上是静态图像。编码器会在突然转换时生成这些。这些压缩效率较低。
  2. 预测帧(P帧)或双向预测帧(B帧)-这些帧仅存储帧之间的差异,只有在查看者也知道前一帧和/或后一帧的情况下,才能对其进行解码。这些压缩效率更高。

用于本地查看的编码可以利用快速磁盘搜索来利用更多的P和B帧,而为有效流传输而编码的视频将不得不在整个视频中编码更多的冗余I帧,即使没有突然的过渡来适应随机寻找。

同样,有两种不同类型的流。您可以流式传输预先录制的流(大多数Youtube视频)和实时事件流(例如Youtube Live)。由于需要等待时间,流媒体直播事件无法利用需要很长时间或不可预测时间的高级编码技术,而预记录的流可能需要花费很多时间来编码。

流视频通常也以恒定比特率(CBR)进行编码。对于相同的目标大小,可变比特率(VBR)视频通常具有比CBR视频更高的质量。相反,对于相同质量的CBR视频,VBR视频较小。像DASH这样的自适应流协议具有自适应比特率(ABR),这是CBR和VBR之间的折衷方案。ABR允许观看者适应网络带宽的变化。给定恒定,一致的带宽,ABR与CBR几乎相同。

所有这些意味着在给定相同的质量和观看体验的情况下,您可以比流式传输视频更有效地对视频进行编码以进行本地观看,并且可以比实时流更有效地对预记录流进行视频编码。

然后,流协议中也有开销。常规的HTTP下载可以使用分块传输编码来下载整个文件,而该文件的开销非常小。流式下载将必须协商要传输的块和块的质量。在总体方案中,传输协议的开销相对较小。

总体而言,对于观看相同数量的视频,流式视频最终将占用大量带宽。就带宽使用而言,流传输的主要优点是可以节省下载但不完整观看视频的人的费用,这是非常重要的节省。


1

答案是“取决于”。

对于通常托管视频的提供商,答案是否定的。流式传输视频的一半像样的提供者进行速率控制,以确保为尽可能多的人提供流畅的播放和最佳带宽。因此,即使您可能有很多带宽,它也可能决定只给您5Mbit,看起来仍然很不错。

如果您执行HTTP下载,则TCP速率控制算法将启动,以确保您使连接的一端或两端或中间的任何一端饱和。因此,如果您有100Mbit的可用空间,它将使用它可以获得或接近100Mbit的所有空间。

当然,这假定在客户端和服务器之间的任何地方都没有QoS发生。

您的问题太宽松了,我也可以这样做,以便在某些简单的设置中答案也是肯定的(假设),带宽是相同的。为此,只需将文件拖放到基本Web服务器上,然后使用浏览器将其打开,以使观众可以进入。或者将视频嵌入基本Web服务器,然后再次将其在浏览器中播放,并使用相同的带宽以下假设...没有其他用户,没有其他人与您共享网络...没有其他因素会影响您的带宽。

请记住,当您从网站下载文件然后再次下载时,第一次下载和第二次下载之间的带宽可能会有所不同。这仅仅是因为服务器上的负载会发生变化,并且网络和网络路径上的拥塞也会发生变化。

所以你有它...这取决于。


“第一次下载和第二次下载之间的带宽可能会有所不同”,但是即使最后一次下载花费的时间比另一次更长,或者网络条件已经改变,但可以肯定的是,它最终下载的是相同数量的数据。
斯蒂米

@stemie,它将关闭。不同的协议会增加协议开销。但是,如果在流传输过程中没有代码转换或质量/速率变化,那么理论上它应该是相同数量的视频数据。
Matt H

1

从网络的角度来看,“下载”和“流”是不同的服务,称为“流量配置文件”

对于流服务,网络必须提供最小的恒定吞吐量(从技术上讲,“带宽”意味着不同),流服务对中断和抖动很敏感。它不需要最大的网络吞吐量,延迟或延迟不是关键。

从最终用户的角度来看,这意味着:视频应平稳运行,不会出现中断或掉落。视频是早于还是晚几秒开始都没关系。

“下载”通常要求最大可能的网络吞吐量,下载应尽快完成。延迟,中断和抖动并不重要。

网络可能会提供更多完全不同的流量配置文件。例如,语音服务(简单的电话呼叫)要求非常低的吞吐量,但对延迟(小于200毫秒)非常敏感


0

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

现在,假设一切都相等(没有自动质量选择,没有来自服务器和/或ISP的限制)...

带宽通常定义为size_of_data除以total_time。(从技术上讲,“正确的”术语是吞吐量,但我离题了)。

假设您要流式传输2000秒大小为60 MB的视频。

使用流传输时,流传输程序可能会进行自己的速率限制以防止缓冲区溢出。因此,其HTTP请求标头可能包含Range域。自流传输开始到流传输结束为止的有效带宽约为60 MB / 2000秒= 30 KB / s = 240 kbps。

但是,如果你下载的视频顾左右而言他,你会得到最多的互联网服务的最大带宽。当然,要同时取决于其他用法。因此,假设Internet服务为6 Mbps,可用带宽为50%,您将获得3 Mbps的视频下载带宽。


0

流式传输实际上是一种下载方式。

当您观看流式电影时,媒体播放器将下载其中的一部分,向他们展示,并即时丢弃文件中显示的部分。

通常,当您下载文件时,您等待下载完成,然后才开始观看它。但是有些媒体播放器可以向您显示文件的下载部分,并自动暂停并等待其他文件的下载。有点喜欢流媒体,但不丢弃文件。

从技术上讲,当关注的是传输的数据总量时,下载的方式无关紧要,而是下载的文件和媒体播放器为您以流形式下载的文件之间的区别。它们可能是完全相同的文件,并且在两种情况下都意味着相同的带宽。

流媒体站点通常对其内容进行编码,以使其比特率低于商店购买的光盘。但是,您可以使用操作系统的文件共享功能,通过WiFi在笔记本电脑上通过台式机在PC上观看电影,这将占用与在台式机上观看电影几乎相同的流量(从硬盘读取字节)。驾驶)。从技术上讲,当您在观看电影的同时不断下载并丢弃其中的一部分时,它将是流式传输。

因此答案是,它绝对取决于两个文件的大小 -通过媒体播放器流式传输并下载到磁盘上。


0

流式传输确实会使用您的下载吞吐量,因此您可以将其视为下载。关于您认为要下载的内容,您的问题有些含糊。您只能下载并愿意提供尽可能多的上载。因此,最后,例如,如果您要比较从HTTP到DASH的直接下载(仍为HTTP),则必须检查每个下载的下载量。

因此,我想答案是,它可能使用的数量相同或更少或更多。取决于服务器及其为您提供服务的速度。


-2

是的,它是等效的。下载=您只能下载一次,并且它会保留在您的计算机上。Stream =您将“内容”临时下载到计算机上。


传输的数据量和使用的带宽之间存在差异。
乔纳斯·谢弗(JonasSchäfer)2014年

好在我的Android设备上观看来自流的视频或下载具有相同数据使用量的视频
Tiago Ribeiro 2014年

@JonasWielicki一个聪明人曾经说过:“传输的数据量是相同的”。确保使用的带宽量有所不同,因为由于缓冲,传输速度会随着时间的推移而变慢。
Nenotlep 2014年

1
在很多情况下,这实际上是正确的答案。在很多情况下,流媒体和下载通常会使用完全相同的资源和协议。如果要通过HTTP播放资源,则与下载资源没有什么不同,除了要在下载资源时对其进行播放之外。当然,有一些针对流的优化,以及不同的协议,这些协议可能会在您流式传输时改变比特率,但是我认为这不是要问的问题的核心。(不过,他们的确值得一提。)
布拉德2014年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.