我正在使用dash.js库并使用DASH协议为我的音频播放器实现自适应比特率。
我在其中一种情况下遇到问题,当我不是自适应地改变比特率时,我希望它是特定的,即320kbps。我正在使用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时,它应该只获得该比特率的段。
对于后一种情况,我正面临这个问题。
有没有办法做到这一点?我在这里错过了什么吗?
答案 0 :(得分:2)
它没有设置比特率b'因为它正在进行比特率的精确匹配。
截至目前,使用dash.js设置的比特率如下:
首先执行player.setInitialBitrateFor('audio', 320);
时,它将从mpd文件中获取带宽。
然后有一个内部机制,它将带宽除以1000然后再舍入该值。所以,因为如果您的mpd文件包含像bandwidth =" 320000"这样的值,
那么player.setInitialBitrateFor('audio', 320);
就可以了。
可能会出现像321684这样的带宽变化,这会产生比特率值= 321.在这种情况下你必须做 player.setInitialBitrateFor(' audio',321); 会工作
setQualityFor 方法将index作为第二个参数。 所以可以做到
player.setQualityFor('audio', indexValue);
考虑有三个适应集和
low bitrate (64 kbps) ==> 0 (indexValue)
Medium bitrate (128 kbps) ==> 1 (indexValue)
High bitrate (320 kbps) ==> 2 (indexValue)