youtube - 如何提供像 Youtube 这样的视频?几乎即时播放和快速搜索

标签 youtube streaming video-streaming progressive-download pseudo-streaming

如何像 Youtube 一样提供视频服务?即使视频很长(将近 2 小时)并且以高清格式观看,它也会 几乎立即播放寻找尚未加载的零件非常快 .

我正在使用来自 Rackspace 的专用服务器,该服务器具有 100Mb 的上行/下行速度,我对服务器的 ping 时间低于 50ms。我的本地互联网连接为 10Mb,当我从服务器下载某些内容时,我可以最大化我的互联网连接,因此与服务器的连接不是这里的问题。

我正在尝试模拟这一点,并尝试使用 Wowza 进行实时流式传输,并使用 H264 Streaming Module 进行伪流式传输。 .两者都无法与 Youtube 提供视频的速度相提并论。

视频测试文件为 MP4 (h.264),300MB,时长 2 小时,总码率设置为 500kbps,视频播放器为 JWPlayer

  • Wowza 流媒体 (RTMP) - 加载然后播放视频很快,但不如 youtube 快。寻找并不像它需要的那么快
    大约 5 - 7 秒移动到新位置并继续播放视频。
  • 伪流 H264 流模块 (HTTP) - 加载视频需要很长时间,因为它先下载了视频标题
    玩它。一个 2 小时的视频大约有 2.5MB 的 MOOV ATOM(视频
    头文件),它需要先下载才能播放。
    一旦它开始播放寻求未下载的部分是看齐的
    Wowza 但不如 Youtube 快。

  • 以 Youtube 的速度提供视频需要什么? 我还需要它在暂停时缓冲/下载视频就像 Youtube 一样,像 Wowza 这样的 Real Streaming 已经出来了。

    使用 H264 Streaming 模块的伪流会很好,因为它在暂停时会缓冲,只是初始加载时间很长!无论如何我可以删除初始加载时间?

    我还有哪些其他选择?我对可以在我的服务器中使用的任何其他选项持开放态度。

    最佳答案

    YouTube 的工作方式有所不同,他们不断改变工作方式。通过在过去 4 年中通过wire-shark 捕获 YouTube 提要对此进行逆向工程告诉我,这种模式非常动态。分割是一个关键,双缓冲区,多个缓存服务器和技术,使用客户端机器作为缓冲区渲染,播放器的功能很重要。有许多因素使 YouTube 视频快速流畅。

    您可以在某种程度上模仿相同的东西,但构建完全相同的东西需要大量的努力和基础设施。

    关于youtube - 如何提供像 Youtube 这样的视频?几乎即时播放和快速搜索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16801194/

    相关文章:

    iframe - 延迟加载 youtube iframe 但继续关注播放/暂停按钮?

    php - YouTube数据API返回的结果多于maxResults

    python - 如何在一段时间后停止流式传输推文?

    windows - GStreamer 中的 UdpSink 在 Windows 中不工作

    android - Android中的YouTube横向模式

    python - YouTube Analytics API - 内容所有者按 channel 分组的总观看次数

    javascript - 流式 Web 应用程序 - Twitter、Facebook、NoSQL 还是 SQL?

    html - 使用 nodejs 将视频流式传输到浏览器

    algorithm - H.264编解码器解释

    video-streaming - 如何使用 Shaka Player 播放多个分辨率的视频?