Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/facebook/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
阻止来自YouTube的DASH视频流_Youtube_Video Streaming_Mp4_Mpeg Dash_Roku - Fatal编程技术网

阻止来自YouTube的DASH视频流

阻止来自YouTube的DASH视频流,youtube,video-streaming,mp4,mpeg-dash,roku,Youtube,Video Streaming,Mp4,Mpeg Dash,Roku,我有一个Roku应用程序,其中一些视频来自Youtube。我没有问题检索视频,但如果我选择一个高清视频,它想自动流Dash版本。我可以阻止破折号,如果我强制非高清版本,但谁想看SD版本 因此,我想知道有没有办法强制mp4流与Dash流相反 我读到XP不玩Dash,所以我尝试使用WindowsNT5.1作为用户代理,但没有成功 任何帮助都将不胜感激。DASH和MP4并不是相互排斥的-它们在视频传输中执行不同的功能 简单地说,您可以这样看: 摄像头捕获帧-“原始视频” “原始视频”以某种方式编码以

我有一个Roku应用程序,其中一些视频来自Youtube。我没有问题检索视频,但如果我选择一个高清视频,它想自动流Dash版本。我可以阻止破折号,如果我强制非高清版本,但谁想看SD版本

因此,我想知道有没有办法强制mp4流与Dash流相反

我读到XP不玩Dash,所以我尝试使用WindowsNT5.1作为用户代理,但没有成功


任何帮助都将不胜感激。

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

简单地说,您可以这样看:

  • 摄像头捕获帧-“原始视频”
  • “原始视频”以某种方式编码以存储它,通常以一种平衡视频大小和质量的方式。然后,该视频有时由所使用的编码器(编解码器)参考-例如,如果使用h.264编解码器,则该视频可被称为h.264视频
  • 视频流,即构成视频的所有单个帧,被打包到一个容器中。这个容器可能包含视频和音频流,甚至可能有多个视频流。然后,视频通常被容器格式引用-例如,如果上面的h.264编码视频被打包到MP4容器中,则通常被称为MP4视频,即使MP4“容器”可能包含多个视频和音频曲目
  • 为了提高视频流的质量,视频还可以使用诸如MPEG-DASH之类的流协议。这里的理论很简单:视频的多个拷贝以不同的比特率创建,因此大小和质量也不同。例如,这些副本中的每一个都被分成10秒的块。创建一个称为清单的索引文件,并包含指向每个视频和音频流的指针。播放视频的客户端(例如浏览器)会根据需要请求每10秒的块。它根据当前的网络条件选择下一块视频的副本。这意味着,如果网络状况良好,它可以为下一个区块切换到更高质量的拷贝,如果出现问题,它可以切换到较低质量的区块。如果我们以h.264编码的视频为例,将其放入MP4容器中,现在就可以使用DASH流格式对其进行打包。这样打包的视频通常称为短跑视频
上面是一个简化的概述,但希望强调的是,您的视频可能实际上是MP4和DASH,事实上通常是

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