한 ZimaOS 사용자는 테스트한 모든 장치에서 영화와 MP3 파일을 재생하려 할 때 Jellyfin의 “이 클라이언트에서 미디어가 지원되지 않아 재생하지 못했습니다”라는 메시지를 확인했습니다. 메시지에 미디어 지원 문제가 언급되어 처음에는 브라우저 캐시, 코덱, 트랜스코딩 또는 권한이 원인으로 의심되었습니다.
로그는 전혀 다른 상황을 보여 주었습니다. Jellyfin은 정상적으로 시작되었고 FFmpeg를 찾았으며 여러 오디오 및 비디오 디코더를 사용할 수 있는 상태였고 그래픽 장치 권한도 올바르다고 보고했습니다. 재생이 시작되자 서버에는 파일을 찾을 수 없습니다라는 메시지가 반복해서 기록되었습니다. 커뮤니티 회원 gelbuilding은 이 메시지가 Music 디렉터리만 /Media에 마운트한 Docker 볼륨 경로에서 비롯된 것임을 밝혀냈습니다. 반면 Jellyfin 라이브러리는 여전히 /Media/Music, /Media/Movies, /Media/TV Shows 아래의 파일을 참조하고 있었습니다.
모든 클라이언트에 표시된 재생 오류
MrPenguin은 이전 지원 세션 이후 Jellyfin과 사용자의 DNS 설정이 안정적으로 유지되었다고 보고했습니다. 백업도 생성된 상태였습니다. 새 오류는 모든 장치에서 영화와 음악에 발생했으므로, 원인이 캐시, 코덱 지원 또는 파일 권한인지 확인해 보는 것이 합리적이었습니다.
하드웨어 한계와 저장소 경로 문제를 구분하려는 사용자는 Jellyfin 하드웨어 요구 사항을 참고할 수 있습니다. 그러나 이 사례에서 결정적인 증거는 클라이언트 메시지가 아니라 파일을 찾을 수 없다는 로그였습니다.
로그에서 지원되지 않는 코덱이 아니라 누락된 파일이 확인됨
시작 로그에는 Ubuntu 24.04.3 LTS의 x64 LinuxServer.io 컨테이너에서 실행 중인 Jellyfin 10.10.7이 표시되었습니다. 또한 Jellyfin FFmpeg 7.1.2, 사용 가능한 여러 디코더와 인코더, CUDA, VA-API, QSV, DRM, OpenCL, Vulkan을 포함한 하드웨어 가속 인터페이스도 확인되었습니다.
그래픽 장치 확인 결과도 긍정적이었습니다.
/dev/dri/renderD128의 권한이 올바릅니다
/dev/dri/card0의 권한이 올바릅니다
이후 재생 요청에서 진단을 바꾼 로그가 나타났습니다.
파일 '/Media/Music/Beyonce/Unknown Album/Single Ladies ... .mp3'을 찾을 수 없습니다
누락된 Folder.jpg 경로도 나타났습니다. 이는 Jellyfin 데이터베이스가 현재 컨테이너 내부에 존재하지 않는 라이브러리 경로를 여전히 참조하고 있다는 뜻이었습니다. 서버가 소스 파일을 전혀 열 수 없다면 코덱 호환성도 도움이 될 수 없습니다.
공식 Jellyfin 문제 해결 가이드에서도 클라이언트에 표시되는 메시지에만 의존하지 말고 서버 및 FFmpeg 로그부터 확인하며 재생 문제 진단을 시작할 것을 권장합니다.
컨테이너 경로 확인에 사용한 명령
Gelbuilding은 실행 중인 Jellyfin 컨테이너에서 실제로 무엇을 볼 수 있는지 확인해 달라고 작성자에게 요청했습니다.
docker exec -it jellyfin ls -lah /Media
docker exec -it jellyfin ls -lah "/Media/Music"
docker exec -it jellyfin ls -lah "/Media/Music/Beyonce/Unknown Album" | head
또한 답변에서는 활성 Docker 마운트를 요청했습니다.
docker inspect jellyfin --format '{{json .Mounts}}' | sed 's/},/},\n/g'
이러한 확인 명령은 서로 다른 두 가지 질문에 답합니다. docker exec 명령은 Jellyfin의 관점에서 경로가 존재하는지 보여 주고, docker inspect는 어떤 호스트 디렉터리가 컨테이너에 매핑되었는지 보여 줍니다. 공식 Jellyfin 컨테이너 문서에는 영구 구성 및 미디어 볼륨 매핑에 대한 보다 폭넓은 설명이 나와 있습니다.
실제 볼륨 매핑 문제
작성자가 확인한 출력에는 다음 미디어 매핑이 표시되었습니다.
호스트: /media/2 TB Master Drive/Media/Music
컨테이너: /Media
해당 매핑은 호스트의 다음 폴더 내용을 배치합니다. Music 컨테이너 경로 바로 안에 폴더를 /Media이는 생성하지 않습니다. /Media/Music 컨테이너 내부에서. 따라서 목록에는 아티스트 폴더가 바로 아래에 표시되었습니다. /Media.
동시에 Jellyfin은 다음으로 시작하는 경로를 열려고 했습니다.
/Media/Music/.../Media/Movies/.../Media/TV Shows/...
라이브러리 데이터베이스와 활성 컨테이너 매핑이 더 이상 동일한 디렉터리 구조를 설명하지 않았습니다. 따라서 Jellyfin에서는 미디어 항목이 계속 표시되더라도 재생이 0초에서 실패할 수 있었습니다.
/Media반면 Jellyfin은 해당 컨테이너 디렉터리 아래에 별도의 Music, Movies, TV Shows 경로가 있을 것으로 예상했습니다.커뮤니티에서 제안한 매핑 변경
Gelbuilding은 상위 폴더를 마운트할 것을 권장했습니다. Media 폴더가 아니라 Music 하위 폴더:
다음에서 변경:
/media/2 TB Master Drive/Media/Music → /Media
다음으로 변경:
/media/2 TB Master Drive/Media → /Media
상위 폴더를 마운트하면 컨테이너에서 다음 경로를 노출할 수 있습니다. /Media/Music, /Media/Movies, 그리고 /Media/TV Shows Jellyfin에 이미 저장된 경로를 사용합니다. 공백과 대소문자는 정확히 일치해야 하며, 심지어 다음 경로에서 공백 하나가 빠져도 TV 프로그램 경로를 변경합니다.
수정된 볼륨 매핑을 저장한 후, 답변에서는 Jellyfin을 다시 시작하고 대시보드 → 라이브러리 → 모든 라이브러리 검색을 실행하라고 안내했습니다. 공식 Jellyfin 라이브러리 가이드에는 서버 대시보드에서 라이브러리를 관리하는 위치가 설명되어 있습니다.
애플리케이션을 수정하거나 다시 빌드하기 전에 기존 구성 백업을 보관하세요. 유지 관리 전에 Jellyfin을 백업하는 방법에 관한 Shop 문서에서는 애플리케이션 상태와 미디어 라이브러리를 서로 별도의 복구 대상으로 취급해야 하는 이유를 설명합니다.
확인된 재생 원인이 아니었던 기타 로그 항목
로그에는 다음 주소에 대한 NextPVR 연결 거부도 포함되어 있었습니다. localhost:8866 그리고 정적인 WebRootPath 경고가 있었습니다. 이러한 항목은 Live TV 또는 웹 자산과 관련해 별도로 살펴볼 필요가 있을 수 있지만, 실패한 MP3 요청은 명시적인 파일 없음 오류로 종료되었습니다. 스레드에서는 NextPVR 실패를 음악 및 영화 파일 누락과 연결하지 않았습니다.
마찬가지로 이는 하드웨어 트랜스코딩이 작동하지 않았다는 증거도 아닙니다. 로그에는 FFmpeg와 여러 코덱을 사용할 수 있는 것으로 표시되었습니다. 실제 트랜스코딩 문제라면 ZimaOS 하드웨어 가속 스트리밍 가이드가 관련되지만, 가속 설정을 변경해도 잘못된 Docker 마운트는 수정되지 않습니다.
스레드에서 확인된 내용과 확인되지 않은 내용
로그 증거와 Docker 검사를 통해 경로 매핑 불일치가 명확하게 확인되었고, 마지막 답변에서는 정확한 수정 매핑을 제시했습니다. 그러나 MrPenguin이 변경 사항을 적용한 후 최종 재생 테스트를 게시하기 전에 스레드가 종료되었습니다. 따라서 이 페이지에서는 매핑 수정 사항을 원 작성자가 확인한 성공 사례가 아니라, 커뮤니티의 근거 기반 해결 방법으로 설명해야 합니다.
Jellyfin 재생 및 Docker 경로 FAQ
파일이 없는데 Jellyfin은 왜 미디어가 지원되지 않는다고 표시했나요?
클라이언트에는 일반적인 재생 실패 메시지가 표시되었습니다. 서버 로그에서는 구체적인 원인을 확인할 수 있었습니다. Jellyfin이 데이터베이스에 저장된 라이브러리 경로에서 원본 파일을 찾지 못한 것입니다.
FFmpeg를 다시 설치하거나 코덱을 변경하면 이 문제가 해결되나요?
아니요. 로그에는 이미 Jellyfin FFmpeg와 여러 디코더 및 인코더가 표시되어 있었습니다. 코덱은 컨테이너 경로에 없는 원본 파일을 처리할 수 없습니다.
Jellyfin은 더 이상 재생할 수 없는 라이브러리 항목을 어떻게 표시할 수 있었나요?
Jellyfin은 마운트가 변경된 후에도 스캔한 메타데이터를 데이터베이스에 유지할 수 있습니다. 항목은 계속 표시되지만, Jellyfin이 이전 파일 시스템 경로를 열려고 하면 재생에 실패합니다.
상위 Media 폴더를 마운트해야 하나요?
이 스레드에 표시된 폴더 구조라면 맞습니다. 호스트의 상위 Media 디렉터리를 컨테이너 경로에 매핑 /Media 기존 라이브러리에서 예상하는 Music, Movies, TV Shows 하위 디렉터리를 유지합니다.
그 후 재생이 정상적으로 작동했다고 원 작성자가 확인했나요?
표시된 스레드에는 최종 확인 내용이 없습니다. 마지막 답변에서는 불일치를 확인하고 수정된 매핑과 재스캔 단계를 제시했습니다.
