H.264가 정상 작동한다는 것은 H.264에 GPU 경로가 작동한다는 뜻이지만, 동일한 하드웨어가 AV1 디코딩, 인코딩, 프로파일 또는 비트 깊이까지 지원한다는 의미는 아닙니다.
하드웨어 트랜스코딩은 코덱별 작업이 연결된 과정입니다. 소스를 디코딩하고, 크기 조정 또는 톤 매핑을 적용한 다음, 클라이언트에 맞게 선택된 출력 형식으로 인코딩합니다. 구형 및 중간 세대 GPU는 H.264 가속은 지원하면서도 AV1 소프트웨어 디코딩만 지원하거나, AV1 하드웨어 디코딩은 지원하지만 AV1 인코딩은 지원하지 않거나, 둘 다 지원하지 않는 경우가 많습니다. 전역 가속 설정을 변경하기 전에 먼저 어떤 AV1 단계에서 문제가 발생하는지 확인하세요.
AV1 디코딩과 AV1 인코딩 중 어느 쪽이 실패하는지 확인
현재 실행 중인 FFmpeg 명령과 트랜스코딩 사유를 확인하세요. 입력 코덱, 하드웨어 디코더, 필터 경로, 출력 코덱, 하드웨어 인코더, 첫 번째 오류 줄을 기록합니다.
서버가 AV1을 디코딩하고 H.264로 인코딩할 수도 있고, H.264를 디코딩한 뒤 AV1로 인코딩을 시도할 수도 있습니다. 이는 서로 다른 기능입니다. Jellyfin 하드웨어 관련 논의에는 다른 코덱의 하드웨어 경로는 사용할 수 있었지만, 설치된 GPU에서 AV1 QSV 및 VA-API 경로가 지원되지 않았던 시스템이 소개되어 있습니다.
미디어 서버에서 두 선택지를 모두 제공하는 경우에만 AV1 입력에서 H.264 출력으로 변환하는 테스트와 H.264 입력에서 AV1 출력으로 변환하는 테스트를 각각 한 번씩 실행하세요. 첫 번째는 성공하고 두 번째가 실패한다면 AV1 디코딩은 가능하지만 AV1 인코딩은 불가능한 것입니다.
코덱 방향과 프로파일별 하드웨어 지원 확인
실제 GPU 세대와 장치 ID를 확인한 다음 디코딩과 인코딩 지원을 각각 비교하세요. AV1 Main 프로파일, 8비트와 10비트, 크로마 형식, 해상도, 최대 레벨을 포함해 확인해야 합니다.
최신 장치에서도 코덱 지원이 부분적일 수 있습니다. Intel 미디어 드라이버 보고서에서는 Tiger Lake에서 AV1 하드웨어 디코딩이 실패했지만 소프트웨어 디코딩은 작동했습니다. 이는 특정 커널과 드라이버 조합에서 사용 가능한 AV1 코드 경로도 실패할 수 있음을 보여줍니다.
H.264 사용률, GPU 제품군, 애플리케이션의 체크박스만으로 AV1 지원 여부를 추정하지 마세요. 정확한 소스 프로파일과 요청한 출력 엔트리 포인트를 설치된 스택이 보고하는 내용과 대조해 확인하세요.
호스트에 노출된 디코딩 및 인코딩 프로파일 확인
사용하려는 렌더 또는 CUDA 장치에 플랫폼의 지원 기능 도구를 실행하세요. VA-API의 경우 프로파일과 엔트리 포인트 출력을 캡처하고, NVIDIA의 경우 설치된 드라이버와 FFmpeg에서 사용 가능한 디코더 및 인코더를 확인하세요.
AV1이 디코딩에는 표시되지만 인코딩에는 표시되지 않을 수 있으며, 저전력 인코딩 모드에는 H.264에서 필요하지 않은 펌웨어가 필요할 수 있습니다. Intel 미디어 드라이버 저장소의 설명에 따르면 AVC, HEVC, VP9, AV1의 저전력 비트레이트 제어는 HuC 펌웨어 사용 가능 여부에 따라 달라질 수 있습니다.
호스트에서 필요한 AV1 엔트리 포인트를 노출하지 않는다면 호스트 계층에서 중단하세요. 커널과 사용자 공간 드라이버가 제공하지 않는 코덱 블록을 컨테이너 권한이나 미디어 서버 설정을 변경한다고 만들어낼 수는 없습니다.
커널, 펌웨어, 사용자 공간 드라이버 버전 비교
커널, 펌웨어 패키지, GPU 사용자 공간 드라이버, libva 또는 CUDA 스택, 컨테이너 런타임, FFmpeg 빌드를 기록하세요. 업데이트 후 H.264는 계속 안정적으로 작동하면서 새로운 AV1 경로만 문제가 생길 수 있습니다.
초기 Intel Arc 배포 환경에서는 주변 커널과 미디어 드라이버 스택이 성숙할 때까지 AV1을 비롯한 여러 코덱에서 VA-API 디코딩 및 인코딩 오류가 보고되었습니다. 이 사례는 새로운 코덱 경로에서 드라이버 스택 호환성이 중요한 이유를 보여줍니다.
현재 버전을 마지막으로 정상 작동했던 구성 및 배포판에서 지원하는 패키지 조합과 비교하세요. 새로운 사용자 공간 미디어 드라이버를 호환되지 않는 구형 커널과 섞거나, 배포판에서 제공한 FFmpeg 구성 요소를 개별적으로 교체하지 마세요.
컨테이너 내부에서 동일한 장치와 FFmpeg 빌드 테스트
미디어 서버 컨테이너에 들어가 렌더 노드 또는 NVIDIA 장치, 숫자 그룹, 드라이버 라이브러리, 포함된 FFmpeg 코덱 목록을 확인하세요. 호스트에서 기능이 지원된다고 해서 컨테이너가 동일한 스택을 사용한다는 의미는 아닙니다.
하드웨어 디코딩을 사용해 짧고 정상 작동이 확인된 AV1 샘플을 실행하고, HDR, 자막, 크기 조정 없이 간단한 H.264 출력으로 변환하세요. 그런 다음 애플리케이션의 FFmpeg 바이너리와 실제 장치 선택을 사용해 반복합니다.
ZimaSpace의 하드웨어 트랜스코딩 확인 가이드는 컨테이너가 소프트웨어로 조용히 폴백하지 않고 예상한 장치를 사용하는지 입증하는 데 필요한 인접 테스트를 제공합니다.
AV1 비디오 처리와 전송 컨테이너 문제 구분
AV1 소스가 정상적으로 디코딩되더라도 클라이언트에서 오디오 변환, 다른 HLS 세그먼트 유형, HDR 처리 또는 선택한 조합을 지원하지 않는 전송 컨테이너를 요구하면 실패할 수 있습니다.
Jellyfin Web 이슈에서는 한 HLS 컨테이너 선택에서 오디오 트랜스코딩을 포함한 AV1 재생이 실패했지만 fMP4-HLS를 활성화하면 작동했습니다. 이는 전송 컨테이너가 실패 계층일 수 있음을 보여줍니다.
간단한 SDR AV1 파일, 호환되는 오디오, 자막 없음, H.264 출력을 사용해 다시 테스트하세요. 오디오 변환, HDR 톤 매핑, 자막, 일반 클라이언트 프로파일은 한 번에 하나씩 추가하세요.
분류를 마친 후에만 소프트웨어 폴백 또는 호환 출력 사용
GPU가 AV1 디코딩은 지원하지만 인코딩은 지원하지 않는다면 하드웨어 디코딩을 유지하고, 지원되는 경우 클라이언트 출력을 H.264 또는 HEVC로 인코딩하세요. AV1 디코딩을 지원하지 않는다면 낮은 해상도에서는 소프트웨어 디코딩이 작동할 수 있지만, 고비트레이트 4K에서는 너무 느릴 수 있습니다.
클라이언트 지원 여부도 AV1 출력을 유용하게 사용할 수 있는지에 영향을 줍니다. Jellyfin Web에서는 일부 브라우저 프로파일이 AV1 클라이언트 지원이 여전히 프로파일에 따라 달라지기 때문에 H.264를 계속 선택하는 현상을 추적하고 있습니다.
테스트한 AV1 파일이 의도한 하드웨어 디코더 또는 측정된 소프트웨어 폴백을 사용하고, 출력 코덱이 클라이언트와 일치하며, 트랜스코딩 속도가 실시간보다 빠르고, AV1 관련 변경 후에도 H.264 세션이 계속 작동한다면 문제가 해결된 것입니다.
지원 및 팁
더 읽어보기

Docker 볼륨을 복원하면 파일 내용은 복원되지만 확장 속성은 사라지는 이유는 무엇인가요?
xattr 인벤토리, tar 및 Rsync 옵션, 네임스페이스, 대상 지원, 권한, 레이블, 앱 메타데이터와 테스트를 다루는 볼륨 복원 진단.

Compose 파일을 변경한 후에도 실행 중인 컨테이너의 메모리 제한이 기존 값으로 유지되는 이유는 무엇인가?
실행 중인 cgroup, 재시작과 재생성, Compose 필드, 하드 및 소프트 제한, 상위 범위, 스왑, 런타임 힙을 다루는 메모리 제한 진단입니다.

리버스 프록시를 재시작하면 셀프 호스팅 앱 하나의 모든 세션이 무효화되는 이유는 무엇인가요?
재시작 범위, 쿠키 소유권, 비밀 키 순환, 캐시 기반 세션, 스티키 라우팅, 인증 게이트웨이 및 복구를 다루는 세션 손실 진단.

