云服务器价格_云数据库_云主机【优惠】最新活动-搜集站云资讯

分布式数据库_tp5阿里云短信_限时特惠

小七 141 0

Cloudflare如何流动

每天,近10亿人通过Cloudflare观看视频。每个月有100兆字节的视频。去年,视频占所有互联网流量的73%,这就是为什么今天早些时候,我们宣布推出Cloudflare Stream,这是一款端到端视频解决方案,旨在为任何设备和网络连接带来即时视频。下面是Stream如何优化视频上传、编码和传输。上传使用Cloudflare Stream首先调用Stream API来/上传视频。默认情况下,HTTP不能为大文件提供可靠的上载机制,这会使上载高质量视频等大型媒体内容变得困难。如果网络连接有任何延迟,超时可以取消整个上载,并要求客户端重新启动。我们使用一个名为Tus的开源上载协议,它允许在上载之前失败的情况下进行可恢复的上载。Tus通过将下载分成可管理的块并在服务器上跟踪完成的块来实现这一点。编码视频文件是包含视频文件、音频曲目和一些元数据的容器。视频文件由编解码器压缩。编解码器是一种用于编码视频流的压缩算法。浏览器使用编解码器来确定应该如何解码和解压缩视频以供播放。常见的容器格式包括MPEG、AVI、OGG和MP4。(你通常可以通过文件扩展名来判断容器的格式)常见的编解码器包括H.264、HEVC(苹果刚刚宣布支持iOS11的一部分)和VP9。不同的浏览器支持不同的编解码器,因此为了在所有浏览器和设备上运行最佳质量的视频,视频提供商需要将单个视频编码为多种格式。例如,Netflix使用HEVC/H.265比其前代产品节省50%的比特率,但这种格式仅在最新Mac和iOS操作系统上的最新版本Safari上受支持,因此在其他浏览器和设备上进行流媒体传输时,它们会有所下降。同样,YouTube使用VP9以一半的带宽传输4K视频,但Safari、IE或Opera不支持它,所以他们在这些浏览器上使用其他格式。将视频上载到Cloudflare Stream后,Cloudflare立即开始编码视频并存储每个编码版本。今天,我们将编码为H.264,这是所有现代浏览器都支持的,以支持包括4K在内的高质量视频而闻名,而MP4则是对传统支持的编码。我们正在添加更多优化的编解码器,如VP9和HEVC next。传送:流媒体对于普通的HTTP流,客户端在用户观看视频的同时将其拉下来。这意味着要想在没有缓冲的情况下播放视频,比特率必须低于连接上可用带宽的比特率。随着越来越多的客户从手机上观看视频,带宽连接通常较低,这种方法牺牲了视频质量。相反,我们使用渐进式下载(也称为伪流式下载),即视频从HTTP服务器流式传输,然后缓存到客户端,从硬盘或内存播放。这使我们能够以更高的比特率编码,保持质量。除了渐进式下载之外,我们还使用了一种称为自适应流媒体的技术,在这种技术中,服务器提供多个比特率流,客户机根据当前的网络连接在它们之间进行切换。为了实现这一点,视频被分块,客户端可以通过从不同的比特率流下载下面的块在视频块之间切换配置文件。您可能在观看图像质量随网络连接而变化的视频时看到了这一点。每个块包含一个有效的视频文件、音频文件和一些元数据,这意味着每个块都可以独立播放。每个流上的块上的视频文件之间的区别是像素尺寸和帧速率(也称为细节质量)。但是,每个块的开始时刻在流之间排列,因此在客户端在流之间切换时不会跳过。客户机知道每个比特率流的来源,因为视频传递是通过传递包含每个可用流及其位置的单个清单文件开始的。下面是一个用于自适应流的m3u8格式清单文件的示例。这里有一个可用比特率列表及其每个清单文件的位置:#外部M3U#外景-X-媒体:类型=音频,GROUP-ID="audio-1",NAME="audio",LANGUAGE="en",AUTOSELECT=YES,URI="audio_128000_hls.m3u8"#EXT-X-流-INF:带宽=9728000,CODECS="avc1.64000d,mp4a.40.2",分辨率=1920x1080,AUDIO="AUDIO-1"视频\u 0_4800000_hls.m3u8#EXT-X-流-INF:带宽=4928000,CODECS="avc1.64000d,mp4a.40.2",分辨率=1280x720,AUDIO="AUDIO-1"视频\u 0_2400000_hls.m3u8#EXT-X-流-INF:带宽=2528000,CODECS="avc1.64000d,mp4a.40.2",分辨率=854x480,AUDIO="AUDIO-1"视频\u 0_1200000_hls.m3u8#EXT-X-流-INF:带宽=1728000,CODECS="avc1.64000d,mp4a.40.2",分辨率=640x360,AUDIO="AUDIO-1"视频\u 0_800000_hls.m3u8然后,如果你打开一个比特率的清单文件,你会找到每个数据块的位置(这就是我们如何将客户机路由到第一个数据段的最低延迟数据中心,而对于后续的数据段,这是我们将客户机路由到成本最低的数据中心的方式——稍后将详细介绍):#外部M3U#EXT-X-媒体-序列:0#外部X目标t持续时间:10#绝种:10,#绝种:10,#绝种:10,#EXT-X端列表Cloudflare使用两种自适应流媒体标准:HLS和MPEG-DASH。这两个标准的工作原理基本上是一样的——它们包含一些小的差异,比如MPEG-DASH默认使用较小的块大小(2-4秒对10秒),因此切换频道的速度更快。MPEG-DASH对广告插入也有更好的支持。另一方面,苹果httplivestreaming是苹果产品流媒体的理想选择,因为它是由苹果设备和软件支持的。送货:世界何处Cloudflare在超过115个POP中运行一个全球网络。在我们的每个数据中心,我们都有大量的服务器连接到互联网上。这些数据中心的流量根据一天中的时间增减。由于每个数据中心都为该地区的游客提供服务,因此,当午夜时分,该地区的人们正在睡觉时,交通流量就会下降。您可以在世界各地数据中心的带宽图中看到这一点。我们将根据30天内的峰值使用量对带宽进行计费。这意味着,如果我们在任何数据中心的低谷期使用更多的带宽,就不会产生任何额外的成本。同样,我们为运行在这些数据中心的服务器支付的费用是固定的。每一分钟,我们没有充分利用一个服务器,实际上,我们在未充分利用我们已经支付的资源。事实证明,视频传输是填补这些未充分利用的资源的完美任务。为了更快,只需要前几个字节来自离视频查看器最近的数据中心。其余的部分有一点缓冲时间,而视频的前几秒正在被观看以到达客户端,并且可以来自任何当前有多余资源的数据中心。我们如何做到这一点是通过动态分配数据中心的IP范围来实现的,这些IP范围是当前未充分利用的。然后,视频被加载到一个清单文件旁边,让播放器指向他们可以为每个比特率定位不同视频块的位置。(如前所述,这就是自适应流的工作原理:播放器使用这个清单文件快速定位不同的比特率格式,并在网络延迟变化时在它们之间切换)。该清单文件是动态生成的,针对第一个数据块,使用Cloudflare的默认选播IP指向最近的数据中心,然后指向未充分利用的数据中心以获取后续数据块。最终的结果是第一个环节速度快,后续环节成本低。这使我们能够以最优惠的价格提供一个视频解决方案,因为让我们面对现实吧,今天启用视频非常昂贵且不可预测,而且不一定非得如此。它是一只鸟!这是一架飞机!这是一个Cloudflare应用程序!