为播放器

时间:2017-11-08 10:36:09

标签: video video-streaming html5-video streaming

我使用以下代码

使用HTML5视频播放器
<video id="my-video" class="video-js" controls preload="auto" width="100%"  height="600"
   data-setup="{}">
    <source src="" type='video/mp4'>
    <source src="" type='video/webm'>
    <p class="vjs-no-js">
      To view this video please enable JavaScript, and consider upgrading to a web browser that
      <a href="http://videojs.com/html5-video-support/" target="_blank">supports HTML5 video</a>
    </p>
  </video>

有没有办法为播放器添加设置选项,比如播放较小版本hd,我正在以不同的速度对视频进行编码。或者是否有一些提供此类功能的免费播放器

1 个答案:

答案 0 :(得分:0)

听起来您正在使用具有多种比特率视频的ABR流。

ABR,自适应比特率流,实质上允许客户端设备或播放器以块的形式下载视频,例如10秒块,并从最适合当前网络条件的比特率中选择下一个块。请参阅此答案中的更多信息:https://stackoverflow.com/a/42365034/334402

大多数常见的开源DASH或HLS(ABR格式)播放器都包含选择所需曲目的机制。

例如,在dash.js播放器中,查看MediaPlayer.js源代码:

和函数'setQualityFor':

/**
     * Sets the current quality for media type instead of letting the ABR Heuristics automatically selecting it.
     * This value will be overwritten by the ABR rules unless setAutoSwitchQualityFor(type, false) is called.
     *
     * @param {string} type - 'video' or 'audio'
     * @param {number} value - the quality index, 0 corresponding to the lowest bitrate
     * @memberof module:MediaPlayer
     * @see {@link module:MediaPlayer#setAutoSwitchQualityFor setAutoSwitchQualityFor()}
     * @see {@link module:MediaPlayer#getQualityFor getQualityFor()}
     * @instance
     */
    function setQualityFor(type, value) {
        if (!playbackInitialized) {
            throw PLAYBACK_NOT_INITIALIZED_ERROR;
        }
        abrController.setPlaybackQuality(type, streamController.getActiveStreamInfo(), value);
    }