gpt4 book ai didi

http - 未缓冲的视频流如何中途​​启动

转载 作者:行者123 更新时间:2023-12-03 05:49:53 24 4
gpt4 key购买 nike

我最近在 YouTube 上播放一个视频,我想到了一个想法。播放视频时,用户可以在视频中向前跳过,视频会在该点继续播放,没有任何问题。

我似乎无法找到它是如何工作的,我知道当我通过 HTTP 请求文件时,它会下载整个文件,因此使用 HTTP 似乎无法在视频中途启动二进制流。是否有关于浏览器如何执行此操作的 RFC 或相关文档?

谢谢

最佳答案

有几种不同的技术,但它们基本上都允许您在视频中指定一个偏移量,然后从那里下载一个“ block ”。
做到这一点的简单方法是使用字节范围和 HTTP 渐进式下载 0 有一个 RFC 涵盖了这一点:

  • https://www.rfc-editor.org/rfc/rfc7233

  • 各种自适应比特率协议(protocol)(如 HLS、MPEG-DASH、Smooth-streaming 等)背后有一个类似但稍微复杂一点的机制。这些协议(protocol)将视频分成多个 block (例如 10 秒长的片段)并创建视频的几种不同编码,每种编码都以不同的比特率。
    然后,客户端可以根据当前的网络条件请求下一个 block - 如果网络繁忙或客户端正在使用低频段女巫连接,它可以从视频的低比特率编码请求下一个 block 。如果网络连接性得到改善,那么它可以请求逐渐更高的比特率,直到达到最大值。
    如果您查看 YouTube 中可用的“ Nerd 统计数据”(如果您右键单击视频),您可以看到这一点 - 查看连接速度图表。
    这种机制还意味着客户端可以从比视频中当前位置更靠前(或后)的位置请求 block - 只要它不是很明显!
    如果您确实向前跳,它还允许更快的启动,因为播放可以从较低的比特率开始,下载速度更快,然后再次达到更高的比特率。在玩 Netflix 等服务时,您经常会看到这一点 - 如果您继续前进,最初可能会在一段时间内降低质量。

    关于http - 未缓冲的视频流如何中途​​启动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37589444/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com