youtube - 阻止来自 YouTube 的 DASH 视频流

标签 youtube video-streaming mp4 mpeg-dash roku

我有一个 Roku 应用程序,其中一些视频来自 Youtube。我检索视频没有问题,但如果我选择高清视频,它希望自动流式传输 Dash 版本。如果我强制使用非高清版本但谁想观看标清版本,我可以阻止 Dash。

所以我想知道有没有办法强制 mp4 流反对 Dash 流?

我读到 XP 不玩 Dash,所以我尝试使用 Windows NT 5.1 作为用户代理,但没有奏效。

任何帮助将不胜感激。

最佳答案

DASH 和 MP4 并不相互排斥 - 它们在视频传输中执行不同的功能。

简单来说,您可以这样查看:

  • 相机捕捉帧 - '原始视频'
  • “原始视频”以某种方式编码以存储它,通常以平衡视频大小与质量的方式进行。然后,视频有时会被使用的编码器(编解码器)引用 - 例如,如果使用 h.264 编解码器,则视频可能被称为 h.264 视频。
  • 视频流,即构成视频的所有单个帧,被打包到一个容器中。这个容器可能包含视频和音频流,甚至可能有多个视频流。然后视频通常由容器格式引用 - 例如,如果我们上面的 h.264 编码视频被打包到 MP4 容器中,它通常被称为 MP4 视频,即使 MP4“容器”可能包含多个视频和音轨。
  • 为了提高视频流的质量,视频还可以使用 MPEG DASH 等流协议(protocol)。这里的理论很简单:视频的多个副本是用不同的比特率创建的,因此大小和质量也不同。这些副本中的每一个都被分成例如 10 秒的 block 。创建一个索引文件,称为 list ,并包含指向每个视频和音频流的指针。播放视频的客户端(例如浏览器)根据需要请求每 10 秒的 block 。它根据当前的网络条件选择从哪个视频副本中选择下一个 block 。这意味着如果网络良好,它可以为下一个 block 切换到更高质量的副本,如果出现问题,它可以切换到较低质量的 block 。如果我们将 h.264 编码的示例视频放入 MP4 容器中,我们现在可以使用 DASH 流格式对其进行打包。像这样打包的视频通常被称为 DASH 视频。

  • 以上是一个简化的概述,但它希望强调您的视频实际上可能是 MP4 和 DASH,实际上通常是。

    作为附加说明,不同的设备可能支持不同的编解码器(甚至编解码器配置文件)、打包格式和流格式 - 例如,iOS 设备在撰写本文时倾向于支持 HLS 而不是 DASH。随着设备和标准的发展,这种情况经常发生变化,这也是很难找到一种可以在所有设备和客户端上播放的单一格式的原因之一——因此,服务器通常会以多种编解码器和流格式提供相同的视频以支持尽可能多的设备和客户端。

    关于youtube - 阻止来自 YouTube 的 DASH 视频流,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41728741/

    相关文章:

    xhtml - 如何链接没有字幕的 YouTube 视频?

    ffmpeg - 如何通过 UDP 发送 MPEG TS 流

    ffmpeg - 检测为 UDP 的 RTP 数据包

    java - 有没有一种简单的方法来检查 mp4 文件是否有效?

    video - 如何避免 ffmpeg filter_complex 覆盖文件的 fps?

    mp4 - mp4 和 mpegts 有什么区别?

    javascript - 是否可以在youtube.com中控制嵌入式视频播放器?

    javascript - 按下按钮即可在网站其余部分的顶部播放视频

    javascript - youtube api 视频结束加载函数

    video-streaming - 使用 vlcj 通过 http 进行实时视频流