videojs:通过质量选择功能批量下载/流式传输视频

时间:2018-07-30 16:07:22

标签: video video-streaming video.js hls

我想创建一个像youtube这样的视频流网站,但我一直坚持2个要求,我不确定videojs是否可以解决。

  1. 假设有一个1小时的视频,我希望视频以块而不是整个文件的形式下载并流式传输。我已经看到像HLS和DASH这样的流式格式可以解决此问题(在chrome的网络标签上,我看到在视频播放时下载了块)。但另一方面,我认为这阻止了我的第二个要求。
  2. 不同的质量选择。我查看了videojs-contrib-hls,并查看了演示和adaptive bitrate switching文档,似乎视频的质量是由某些政策(可以覆盖)自动选择的,但不能由用户专门选择。

我想知道我是否理解不正确?浏览器足够聪明,可以自己满足我的第一个要求吗?

1 个答案:

答案 0 :(得分:0)

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

   //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
            }
        });

    })