From be3d57ff952ee494029bb490dd64fed9007cbe66 Mon Sep 17 00:00:00 2001 From: arabcoders Date: Sun, 2 Nov 2025 19:50:22 +0300 Subject: [PATCH] minor fixes to video player --- app/library/SegmentEncoders.py | 6 ++---- ui/app/components/VideoPlayer.vue | 10 ++-------- 2 files changed, 4 insertions(+), 12 deletions(-) diff --git a/app/library/SegmentEncoders.py b/app/library/SegmentEncoders.py index fb333fc3..eb42a828 100644 --- a/app/library/SegmentEncoders.py +++ b/app/library/SegmentEncoders.py @@ -180,10 +180,8 @@ class QsvBuilder(_BaseBuilder): new_args += [ "-vf", "scale=trunc(iw/2)*2:trunc(ih/2)*2,format=nv12,hwupload=extra_hw_frames=64", - # Favor widely-supported constant quality path and disable LA - "-b:v", - "0", - "-global_quality", + # Use ICQ (Intelligent Constant Quality) ratecontrol mode with quality level + "-q:v", "23", "-look_ahead", "0", diff --git a/ui/app/components/VideoPlayer.vue b/ui/app/components/VideoPlayer.vue index e26407ad..1c4580ef 100644 --- a/ui/app/components/VideoPlayer.vue +++ b/ui/app/components/VideoPlayer.vue @@ -721,22 +721,16 @@ const src_error = async () => { return } - // If we already successfully captured a frame, that means the streamed video codec is working. - if (havePoster.value) { - return - } - await nextTick() if (destroyed.value) { return } - // Check if video is actually paused. - if (video.value && video.value.paused) { + if (video.value && (notFirefox && video.value.paused)) { return } - console.warn('Source failed to load, attempting HLS fallback...') + console.warn('Source failed to load, attempting HLS fallback via hls.js...') attach_hls(makeDownload(config, props.item, 'm3u8')) }