1

我正在使用 dash.js 库并为我的音频播放器使用 DASH 协议实现自适应比特率。

我在其中一种情况下面临问题,当我不想自适应地改变比特率时,我希望它是特定的,即 320 kbps。我正在使用 dash.js 库中提供的方法,如下所示。但无法为我的整个音频文件获取静态比特率段。

(function () {
    var url = "https://xxxxxxxxxxxx.xxxxxxxx.net/myplaylist.mpd";
    var player = dashjs.MediaPlayer().create();
    player.initialize(document.querySelector("#audioPlayer"), url, true);
    player.setInitialBitrateFor('audio', 320);
    player.setQualityFor('audio', 320);
    player.setAutoSwitchQualityFor('audio', false);
    player.getDebug().setLogToBrowserConsole(false);
})();

所以基本上有两个选项:: auto 和 320kbps

auto 将允许自适应比特率,但在此后的任何时间选择 320 kbps 时,它应该只获取该比特率的片段。

对于后一种情况,我面临着这个问题。

有什么方法可以做到吗?我在这里错过了什么吗?

4

1 回答 1

3

它没有设置比特率,因为它正在为比特率进行精确匹配。

到目前为止,如何使用 dash.js 设置比特率如下。

当你 player.setInitialBitrateFor('audio', 320);第一次这样做时,它将从 mpd 文件中获取带宽。然后有一个内部机制将带宽除以 1000,然后将值四舍五入。因此,如果您的 mpd 文件包含诸如带宽 =“320000”之类的值,则关闭此选项player.setInitialBitrateFor('audio', 320);将起作用。

带宽可能会发生变化,例如 321684,它将生成比特率值 = 321。在这种情况下,您必须执行player.setInitialBitrateFor('audio', 321); 将工作

setQualityFor方法也将索引作为第二个参数。所以可以做

player.setQualityFor('audio', indexValue);

考虑到有三个适应集和

low bitrate (64 kbps)     ==> 0 (indexValue)
Medium bitrate (128 kbps) ==> 1 (indexValue)
High bitrate (320 kbps)   ==> 2 (indexValue)
于 2017-03-20T10:18:14.190 回答