mirror of
https://github.com/jellyfin/jellyfin-web.git
synced 2024-11-17 10:58:20 -07:00
fix the BufferFullError on chromium based browsers
This commit is contained in:
parent
e56414ebe8
commit
b7d02c3990
@ -383,8 +383,22 @@ function tryRemoveElement(elem) {
|
|||||||
setSrcWithHlsJs(elem, options, url) {
|
setSrcWithHlsJs(elem, options, url) {
|
||||||
return new Promise((resolve, reject) => {
|
return new Promise((resolve, reject) => {
|
||||||
requireHlsPlayer(() => {
|
requireHlsPlayer(() => {
|
||||||
|
let maxBufferLength = 30;
|
||||||
|
let maxMaxBufferLength = 600;
|
||||||
|
|
||||||
|
// chromium based browsers cannot handle huge fragments in high bitrate.
|
||||||
|
// This issue usually happens when using HWA encoders with a high bitrate setting.
|
||||||
|
// Limit the BufferLength to 6s, it works fine when playing 4k 120Mbps over HLS on chrome.
|
||||||
|
// https://github.com/video-dev/hls.js/issues/876
|
||||||
|
if ((browser.chrome || browser.edgeChromium) && playbackManager.getMaxStreamingBitrate(this) >= 25000000) {
|
||||||
|
maxBufferLength = 6;
|
||||||
|
maxMaxBufferLength = 6;
|
||||||
|
}
|
||||||
|
|
||||||
const hls = new Hls({
|
const hls = new Hls({
|
||||||
manifestLoadingTimeOut: 20000
|
manifestLoadingTimeOut: 20000,
|
||||||
|
maxBufferLength: maxBufferLength,
|
||||||
|
maxMaxBufferLength: maxMaxBufferLength
|
||||||
});
|
});
|
||||||
hls.loadSource(url);
|
hls.loadSource(url);
|
||||||
hls.attachMedia(elem);
|
hls.attachMedia(elem);
|
||||||
|
Loading…
Reference in New Issue
Block a user