-
v0.4.40 — 셰이더(Iris) 환경 재생 수정
StableAll checks were successfulbuild / build (push) Successful in 1m19sreleased this
2026-06-14 02:57:25 +09:00 | 0 commits to main since this release셰이더(Iris) 환경에서도 영상이 정상 재생되도록 수정.
문제: Iris 셰이더는 프레임당 렌더 패스를 여러 번 돌리는데, 기존 코드가 그때마다 재생 엔트리를 파괴·재생성하는 루프에 빠져 한 화면에 초당 수백 개 디코더가 떠버리고 텍스처 ID가 매 패스마다 바뀌어("Missing resource .../dynamic/") 화면이 안정되지 못함 → 셰이더 쓰는 사람만 영상이 안 보였음. 셰이더 끈 사람은 정상.
수정:
- 텍스처 ID를 블록 좌표 기반 고정값으로 → 재생성돼도 렌더러가 같은 텍스처 참조, dangling 없음.
- 생성/교체를 락 + ConcurrentHashMap으로 원자화 → 패스가 여러 번 불려도 디코더 중복 생성 안 됨.
- BE가 한 틱 안 보인다고 즉시 파괴하지 않고 ~2초 유예 (진짜 삭제는 즉시 정리 유지).
- 업로드 일시 예외로 디코더를 죽이지 않음 (한 번만 로깅).
전 플레이어 v0.4.40으로 업데이트 권장. 셰이더 켜둔 친구도 이제 정상 재생돼야 합니다.
Downloads
-
v0.4.39 — 재생 소스(캐시/스트리밍) 진단 로깅
StableAll checks were successfulbuild / build (push) Successful in 1m23sreleased this
2026-06-14 02:39:31 +09:00 | 1 commits to main since this release진단용 로깅 추가. 코드 동작 변화 없음.
- 영상을 틀 때마다 그 영상이 로컬 캐시로 재생됐는지(CACHE) 실시간 스트리밍으로 갔는지(LIVE STREAM) 로그에 기록.
- 친구가 못 보는 영상이 "캐시 미스→스트리밍 실패"인지 "캐시 적중인데 디코드 실패"인지 로그로 바로 구분 가능.
재현 후 latest.log 의 "play ... -> CACHE/LIVE STREAM", "decoder started", "JavaCV decode error", "preload: cached/failed" 줄 확인.
Downloads
-
v0.4.38 — 재생 URL 자동 인코딩 + 캐시 폴더 자동 생성
StableAll checks were successfulbuild / build (push) Successful in 1m47sreleased this
2026-06-14 02:21:41 +09:00 | 2 commits to main since this releaseURL 자동 인코딩을 재생 경로까지 확장 + 캐시 폴더를 실제 게임 디렉터리에 생성.
- VideoCache.encodeUrl() 공용화: 캐시 다운로드뿐 아니라 FFmpeg 재생에 넘기는 라이브 URL도 퍼센트 인코딩. 캐시 키(lookup)는 원본 URL 유지라 적중 영향 없음.
- 접속 시 video_player_cache/ 폴더를 MC가 실제 실행 중인 게임 디렉터리(vanilla .minecraft 또는 .mc_custom 같은 커스텀 런처 폴더)에 미리 생성하고, 해석된 절대경로를 로그에 출력 → 어느 설치본이 도는지 확인 가능.
v0.4.37의 캐시 다운로드 인코딩 수정 위에 쌓은 버전입니다. 모든 플레이어가 v0.4.38로 업데이트 권장.
Downloads
-
v0.4.37 — 한글 URL 캐시 수정
StableAll checks were successfulbuild / build (push) Successful in 8m8sreleased this
2026-06-14 02:17:27 +09:00 | 3 commits to main since this release캐시 다운로드가 한글 경로 URL에서 HTTP 400으로 매번 실패하던 문제 수정.
- VideoCache.download() 가 raw URL을 그대로 요청해 서버가 400 반환 → 캐시가 비어버리고 모든 클라이언트가 실시간 스트리밍으로 폴백 (빠른 호스트는 즉시, 느린 원격 클라는 10초+/안뜸).
- 요청 시 경로를 퍼센트 인코딩하도록 수정. 캐시 키/파일명/lookup 은 원본 URL 유지라 적중 그대로.
- 검증: raw URL → HTTP 400, 인코딩 → HTTP 200.
각 플레이어(특히 원격 친구)의 클라이언트가 이 버전으로 업데이트해야 합니다. OS에 맞는 fat jar 사용.
Downloads
-
released this
2026-06-05 17:48:41 +09:00 | 4 commits to main since this release커맨드/프리로드 채팅 출력 정리: 커맨드 블럭/유저 사용 시 전체 채팅에 방송하지 않고 실행자 본인과 로그에만 표시되도록 변경.
- /videoPlace, /videoDelete, /videoMute 피드백을 sendSuccess(..., false)로 변경 (실행자/커맨드블럭 로그·서버 로그에만 표시, 전체 op 방송 제거)
- 클라이언트측 [videopreload]/[videocache] 채팅 스팸 제거 (다운로드 상태는 클라이언트 로그에 그대로 기록)
Downloads
-
released this
2026-06-05 02:16:16 +09:00 | 7 commits to main since this releaseCI/release tooling fix — no mod-code change vs v0.4.34.
- Gitea Actions build no longer fails: actions/upload-artifact@v4 (unsupported on Gitea) downgraded to @v3.
- Full 5-jar set attached (base + linux-x86_64 + windows-x86_64 + macosx-x86_64 + macosx-arm64). Use the jar matching your OS; the bare video_player-0.4.35.jar has no bundled natives.
Includes v0.4.34 behavior: purge() cancels in-flight downloads (per-URL cancellation).
Downloads
-
released this
2026-06-04 22:40:43 +09:00 | 8 commits to main since this releasepurge() now cancels in-flight downloads.
videoCache remove (purge) previously only deleted the finalized READY entry + disk file; an in-flight download of the same URL kept running and re-published after the purge. Added a per-URL generation channel (DOWNLOAD_GEN): purge drops the URL gen, so the running download self-cancels and cleans its .part / just-promoted file. Required for the datapack FIFO cache-retention (keep) guarantee.
Downloads
-
released this
2026-06-02 00:59:44 +09:00 | 9 commits to main since this releaseFix black-screen video on widths not aligned to the SIMD boundary (e.g. 1674-wide). swscale pads the RGBA row stride beyond width*4, so the previous copy path dropped every video frame (black screen) while audio kept playing. Now strips the row padding via a stride-aware row-by-row copy.
Downloads
-
released this
2026-06-02 00:40:51 +09:00 | 10 commits to main since this release영상 소리를 가로채는 볼륨 슬라이더를 기존 "플레이어" 에서 "주크박스/노트 블록(음반, RECORDS)" 으로 변경했습니다. 추가로
config/video_player.json에sound_category항목이 생겨서 클라이언트별로 어떤 볼륨 슬라이더가 영상 소리를 제어할지 고를 수 있습니다 (master, music, record, weather, block, hostile, neutral, player, ambient, voice, ui). 기존 config 는 자동으로 항목이 채워집니다. 기본값은 record.Downloads
-
released this
2026-05-20 10:31:45 +09:00 | 11 commits to main since this release플레이어가 아닌 명령어 소스(콘솔, 커맨드블럭, /function)는 권한 레벨 검사를 건너뜁니다. 따라서
functionPermissionLevelgamerule 을 만질 필요 없이 데이터팩 함수에서 /videoPlace 등을 직접 호출할 수 있습니다. 플레이어는 여전히 OP 가 필요합니다.Downloads