hls buffering tweaks (#5266)
parent
db38438549
commit
b04ecbe54d
|
@ -35,7 +35,13 @@ export function VideoEmbedInnerWeb({
|
||||||
if (!ref.current) return
|
if (!ref.current) return
|
||||||
if (!Hls.isSupported()) throw new HLSUnsupportedError()
|
if (!Hls.isSupported()) throw new HLSUnsupportedError()
|
||||||
|
|
||||||
const hls = new Hls({capLevelToPlayerSize: true})
|
const hls = new Hls({
|
||||||
|
capLevelToPlayerSize: true,
|
||||||
|
maxMaxBufferLength: 10, // only load 10s ahead
|
||||||
|
// note: the amount buffered is affected by both maxBufferLength and maxBufferSize
|
||||||
|
// it will buffer until it it's greater than *both* of those values
|
||||||
|
// so we use maxMaxBufferLength to set the actual maximum amount of buffering instead
|
||||||
|
})
|
||||||
hlsRef.current = hls
|
hlsRef.current = hls
|
||||||
|
|
||||||
hls.attachMedia(ref.current)
|
hls.attachMedia(ref.current)
|
||||||
|
|
|
@ -130,8 +130,12 @@ export function Controls({
|
||||||
if (focused) {
|
if (focused) {
|
||||||
// auto decide quality based on network conditions
|
// auto decide quality based on network conditions
|
||||||
hlsRef.current.autoLevelCapping = -1
|
hlsRef.current.autoLevelCapping = -1
|
||||||
|
// allow 30s of buffering
|
||||||
|
hlsRef.current.config.maxMaxBufferLength = 30
|
||||||
} else {
|
} else {
|
||||||
|
// back to what we initially set
|
||||||
hlsRef.current.autoLevelCapping = 0
|
hlsRef.current.autoLevelCapping = 0
|
||||||
|
hlsRef.current.config.maxMaxBufferLength = 10
|
||||||
}
|
}
|
||||||
}, [hlsRef, focused])
|
}, [hlsRef, focused])
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue