서버/리눅스 서버

인텔 11세대 PLEX HW 트랜스코딩 안되는 문제 수정

ㅋㅋ잠자 2023. 5. 29. 04:05
반응형

안녕하세요? 도정진입니다.

 

이전에 아래와 같이 intel-media-driver 를 설치한 적이 있습니다.

https://blog.djjproject.com/821

 

다만, 저는 plex 를 컨테이너에 설치했기 때문에 intel-media-driver 를 업데이트 해 봤자, 컨테이너에 반영하지 않으면 동작하지 않게 됩니다.

 

일단 최신 plex에 반영되었다고 생각하고 컨테이너를 업데이트 해봅니다.

 

1. PLEX 컨테이너 업데이트 하기

root@debian:~# docker stop plex
root@debian:~# docker commit plex plex_back
root@debian:~# docker images | grep plex
plex_backup                          latest                  da0b1e3fe671   14 minutes ago   657MB
plexinc/pms-docker                   latest                  1d8699187e52   10 days ago      325MB
plexinc/pms-docker                   1.27.2.5929-a806c5905   bd30c8482314   11 months ago    656MB

일단 먼저 돌아가던 plex 컨테이너를 위와 같이 백업합니다.

그리고 아래와 같이 업데이트를 하면서 새 컨테이너를 생성합니다.

root@debian:~# docker rm -f plex
docker run -dit --restart unless-stopped --privileged --name plex --cpus=2 --network host -e TZ="Asia/Seoul" -v /media:/mediat -v /opt/plex/config:/config -e PLEX_UID=998 -e PLEX_GID=997 --device /dev/dri:/dev/dri plexinc/pms-docker:latest

위 명령어는 개인에 따라 다를 수 있고, 설정이 조금 추가된 제 설정입니다.

 

2. 확인해보기

와 여전히 SW 인코더로 돕니다.

흠 로깅을 켜서 에러를 확인해았습니다.

영상을 재생할 때 아래의 에러가 발생하네요.

[Req#95b3d/Transcode/51s5h1xsxnd0qzcilpox1q49/35adc72e-774e-4f6a-aca1-793aa94fac8d] [h264_vaapi @ 0x7f42321ba040] Driver does not support any RC mode compatible with selected options (supported modes: CQP).
[Req#95b5e/Transcode/51s5h1xsxnd0qzcilpox1q49/35adc72e-774e-4f6a-aca1-793aa94fac8d] Error initializing output stream 0:0 -- Error while opening encoder for output stream #0:0 - maybe incorrect parameters such as bit_rate, rate, width or height

이런 에러를 검색해보면 아래의 글들을 찾을 수 있었습니다.

https://www.reddit.com/r/PleX/comments/r1g3wl/plex_hardware_transcoding_issue_with_pms_on_intel/

https://forums.plex.tv/t/can-jasper-lake-n6005-use-hardware-transcoding/758158/54

 

해결 방법은 i915 모듈 로딩 시 옵션을 주는 것인데요.

아래 옵션입니다.

options i915 enable_guc=2

바로 확인을 해보겠습니다.

 

3. 모듈 로딩에 옵션 추가

아래 명령으로 modprobe 설정을 추가합니다.

i915 모듈 로딩 시 enable_guc=2 옵션을 주는 것입니다.

root@debian:/etc/modprobe.d# cat i915-driver.conf
options i915 enable_guc=2

root@debian:/etc/modprobe.d# update-initramfs -u

--> 해결이 안되었습니다.

 

4. 커널 업데이트 수행

현재 PVE 설치 당시 커널 버전이 5.15입니다.

latest stable 로 버전업을 해보겠습니다.

 

먼저 아래와 같이 버전을 확인해보았습니다.

root@debian:~# apt search pve-kernel-headers

pve-headers-6.1.15-1-pve/stable 6.1.15-1 amd64
  Proxmox Kernel Headers

pve-headers-6.1.2-1-pve/stable 6.1.2-1 amd64
  Proxmox Kernel Headers

pve-headers-6.1.6-1-pve/stable 6.1.6-1 amd64
  Proxmox Kernel Headers

pve-headers-6.2/stable 7.4-3 all
  Latest Proxmox VE Kernel Headers

pve-headers-6.2.11-1-pve/stable 6.2.11-1 amd64
  Proxmox Kernel Headers

root@debian:~# apt install pve-kernel-6.2 pve-headers-6.2

설치를 하고 재부팅하면 6.2 커널로 바뀌어 있음을 확인할 수 있습니다.

# 이전
root@debian:/etc/modprobe.d# uname -r
5.15.85-1-pve

# 이후
root@debian:~# uname -r
6.2.11-2-pve

다시 테스트 해보았습니다.

 

아 잘 작동하네요.

커널 업데이트 만으로 해결이 됩니다.

 

5. 해결 결론

5.15커널이면 5.17버전 이상으로 버전업을 하면 해결이 됩니다.

컨테이너의 경우 /dev/dri 만 컨테이너 내부에 연결하면 해결 됩니다.

 

마치겠습니다.

 

감사합니다.

반응형