diff --git a/src/features/slop/ui/slop-video.tsx b/src/features/slop/ui/slop-video.tsx index c0e5b17..1d16b96 100644 --- a/src/features/slop/ui/slop-video.tsx +++ b/src/features/slop/ui/slop-video.tsx @@ -31,7 +31,19 @@ const SlopVideo = ({ src, closeVideo }: SlopVideoProps) => { }; if (Hls.isSupported()) { - const hls = new Hls(); + const hls = new Hls({ + startLevel: 0, // 가장 낮은 품질로 시작 + initialLiveManifestSize: 1, // 첫 번째 세그먼트만 다운로드 + maxBufferLength: 15, // 버퍼 길이를 줄임 (기본값보다 낮춤) + maxMaxBufferLength: 30, // 최대 버퍼 길이도 줄임 + manifestLoadingTimeOut: 10000, // 매니페스트 로딩 타임아웃 감소 + manifestLoadingMaxRetry: 1, // 매니페스트 로딩 재시도 횟수 감소 + levelLoadingTimeOut: 10000, // 레벨 로딩 타임아웃 감소 + levelLoadingMaxRetry: 1, // 레벨 로딩 재시도 횟수 감소 + fragLoadingTimeOut: 20000, // 프래그먼트 로딩 타임아웃 설정 + fragLoadingMaxRetry: 2, // 프래그먼트 로딩 재시도 횟수 설정 + startFragPrefetch: true, // 재생 시작 전에 첫 번째 프래그먼트 프리페치 + }); hlsRef.current = hls; hls.loadSource(src);