Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/video/2.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
videojs:使用quality selecton以块形式下载/流式传输视频_Video_Video Streaming_Video.js_Http Live Streaming - Fatal编程技术网

videojs:使用quality selecton以块形式下载/流式传输视频

videojs:使用quality selecton以块形式下载/流式传输视频,video,video-streaming,video.js,http-live-streaming,Video,Video Streaming,Video.js,Http Live Streaming,我想创建一个视频流网站,比如youtube,我一直坚持两个要求,我不确定videojs是否解决了这两个要求 假设有一个1小时的视频,我希望视频被下载并分块传输,而不是整个文件。我看到像HLS和DASH这样的流媒体格式解决了这个问题(查看chrome的网络选项卡,我看到视频播放时下载的块)。但另一方面,我认为它阻止了我的第二个要求 不同品质的选择。我在查看演示和文档时发现,视频的质量似乎是由某些策略自动选择的(可以覆盖),但不能由用户具体选择 我在想也许我没有正确地理解事情?浏览器是否足够聪明,能

我想创建一个视频流网站,比如youtube,我一直坚持两个要求,我不确定
videojs
是否解决了这两个要求

  • 假设有一个1小时的视频,我希望视频被下载并分块传输,而不是整个文件。我看到像HLS和DASH这样的流媒体格式解决了这个问题(查看chrome的网络选项卡,我看到视频播放时下载的块)。但另一方面,我认为它阻止了我的第二个要求
  • 不同品质的选择。我在查看演示和文档时发现,视频的质量似乎是由某些策略自动选择的(可以覆盖),但不能由用户具体选择

  • 我在想也许我没有正确地理解事情?浏览器是否足够聪明,能够单独满足我的第一个要求?

    您可以通过以下方式满足第二个要求

       //initilaize your player 
       var player = videojs(element_id);
    
        player.ready(function () {        
            player.src({
                src: hls_url,
                type: 'application/x-mpegURL'
            });
            player.play();
        });
    
        player.on('loadedmetadata', function () {
            var _hls = player.hls;
    
            //get quality list
            var  quality_list = _hls.representations();  //load it to your custom dropdown
    
            //you can change quality using below (it will select quality greater than 720)
            _hls.representations().forEach(function (rep) {
    
           //you can change the condition as per your dropdown selection
    
                if (rep.width > 720) {
                    rep.enabled(true);  //select this quality
                } else {
                    rep.enabled(false);  //disable this quality
                }
            });
    
        })
    

    不。浏览器没有内置的功能。您必须使用播放机,或者自己编写。要在DASH中实现此功能,您可以参考以下链接,其中包含了实现您的需求的所有方法。