【问题标题】:videojs: Download/stream video in chunks with quality selectonvideojs:使用质量选择块下载/流式传输视频
【发布时间】:2019-01-06 22:43:41
【问题描述】:

我想创建一个视频流媒体网站,比如 youtube,但我一直被困在 2 个要求上,我不确定 videojs 是否能解决。

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

我想知道我是否没有正确理解事物?浏览器是否足够智能,可以自行满足我的第一个要求?

【问题讨论】:

  • 没有。浏览器没有内置该功能。您必须使用播放器,或者自己编写。

标签: video video-streaming video.js http-live-streaming


【解决方案1】:

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

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

    })

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-08-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多