j4105 jellyfin transcoding이 잘 안되는 경우

Published by 연유 on

J4105 하드웨어 성능이 크게 나쁘지 않아서 동영상 한 두개 정도는 소프트웨어로도 실시간 트랜스코딩을 할 수 있다. 다만, cpu 점유율이 너무 높기 때문에 기본으로 제공되는 하드웨어 트랜스코딩을 이용하면 더 쾌적하게 이용할 수 있다.

젤리핀, 우분투 20.04 환경에서 하드웨어 트랜스코딩을 VAAPI로 설정하면 한 번에 잘 되지 않는데 두 가지 이유가 있는 것 같다.

https://www.clien.net/service/board/cm_nas/14528256
첫 번째로 윗 글에서처럼 자유 드라이버가 아닌 드라이버가 설치되어 있지 않아서 인코딩 형식이 제한된다. 따라서 위 글에서 설명해주는 것 처럼 intel-media-va-driver-non-free, i965-va-driver-shaders을 설치해주면 지원되는 파일이 늘어난다.

다만, 나의 경우에는 위의 비자유 드라이버를 설치하고도 깍두기 현상이 계속 발생했는데, 구버전 CPU 일부에서 드라이버 라이브러리가 신버전 용으로 자동 사용되고 있는 것 같다.

https://forums.plex.tv/t/heavy-artifacts-with-hardware-transcoding-with-linux-intel/496497/2
https://forums.plex.tv/t/hardware-transcoding-broken-on-intel-nuc-with-j5005-cpu-on-ubuntu-18-04-lts/487616/6
위의 플렉스 포럼의 글 처럼 기본으로 설치되어 있는 iHD_drv_video.so를 이름 변경하자. (우분투 20.04에서는 /usr/lib/x86_64-linux-gnu/dri 아래에 위치하고 있다.) (iHD_drv_video_back.so 이름을 변경하자. 무슨 부작용이 있을지는 모르니, 바로 복구할 수 있도록 지우기 까지는 안 해도 된다.)

이후 페이지를 다시 로드한 후에 동영상을 재생하면 깍두기 현상 없이 vaapi가 정상적으로 작동하고, htop에서도 cpu 점유율이 낮게 유지되는 것을 확인할 수 있다.

Categories: 미분류