½Ã³î·ÎÁö Jellyfin H/W Æ®·£½ºÄÚµù ±îÁö 1ºÐ ¿Ï¼º °¡À̵å

   Á¶È¸ 5388   Ãßõ 0    

https://raw.githubusercontent.com/PeterSuh-Q3/tinycore-redpill/main/j¡¦ (303)
https://github.com/PeterSuh-Q3/tinycore-redpill/blob/main/jellyfin-ig¡¦ (326)

Jellyfin 에 트랜스코딩 OpenCL (톤매핑) 을 활성화 하지 못해서 만 하루를 소요했습니다.

구글링을 엄청 많이 한것 같네요.

결국 솔루션을 찾았습니다.

 

상세한 가이드는 기존에 서버포럼 달소님 가이드 한번 미리 보시는것도 좋을것 같습니다.

https://svrforum.com/nas/1668940

 

저는 인텔 iGPU opencl 트랜스코딩까지 활성화 하도록한 도커 초간단 설치 방법을 알려 드리겠습니다.

시놀로지에 도커 (컨테이너 매니저) 만 준비 되어 있으시면 됩니다.

DSM 버전은 7.2.2 에서 시험했습니다.

 

1. 먼저 ssh 로 접속하셔서 아래처럼 커맨드해서 jellyfin 전용 ffmpeg 를 설치해 주시면 됩니다.

인텔 iGPU H/W 트랜스코딩에 필수 프로그램 입니다.

 

sudo -i

bash -c "$(curl https://raw.githubusercontent.com/PeterSuh-Q3/tinycore-redpill/main/jelly.sh )"

 

이 스크립트의 내용은 참고만 하시라고 여기 적겠습니다.

#!bin/sh

mkdir -p /volume1/docker/jellyfin/config
mkdir -p /volume1/docker/jellyfin/cache

curl -kLO# https://github.com/jellyfin/jellyfin-ffmpeg/releases/download/v6.0.1-8/jellyfin-ffmpeg6_6.0.1-8-bookworm_amd64.deb
dpkg-deb -x jellyfin-ffmpeg*.deb temp_dir
mkdir -p /usr/lib/jellyfin-ffmpeg
rsync -av temp_dir/usr/lib/jellyfin-ffmpeg/ /usr/lib/jellyfin-ffmpeg/
cd /usr/lib/jellyfin-ffmpeg
./ffmpeg
복사

 

ffmpeg version 6.0.1-Jellyfin Copyright (c) 2000-2023 the FFmpeg developers
  built with gcc 14.1.0 (crosstool-NG 1.26.0.93_a87bf7f)
복사

 

2. 달소님 가이드 중간에 나오는 도커 (컨테이너 매니저) 상의 프로젝트를 바로 생성합니다.

도커 프로젝트 생성에 필요한 yaml 은 이 링크 파일을 다운받으셔서 사용하셔도 좋고

이 내용을 긁어서 카피해서 붙여 넣으셔도 무방합니다.

 

https://github.com/PeterSuh-Q3/tinycore-redpill/blob/main/jellyfin-igpu.yaml 


트랜스코딩의 Intel opencl 을 활성화 하는 옵션은 

환경변수중 하나에 자동추가되는 아래 값입니다. 이것 찾는데 꼬박 하루가 걸렸네요.


                  - DOCKER_MODS=linuxserver/mods:jellyfin-opencl-intel 


version: '3.x'
services:
  jellyfin:
    image: jellyfin/jellyfin:latest
    container_name: jellyfin-igpu
    environment:
        - UID=1026
        - GID=100
        - TZ=Asia/Seoul
        - DOCKER_MODS=linuxserver/mods:jellyfin-opencl-intel
    network_mode: 'host'
    ports:
      - 8096:8096
    volumes:
      - ./config:/config
      - ./cache:/cache
      - /volume1/_DRAMA:/volume1/_DRAMA
      - /usr/lib/jellyfin-ffmpeg:/ffmpeg
    devices:
      - "/dev/dri/card0:/dev/dri/card0"
      - "/dev/dri/renderD128:/dev/dri/renderD128"
    privileged: true
    restart: always
복사

 

 볼륨 설정중

/volume1/_DRAMA:/volume1/_DRAMA 

는 본인의 영화 공유폴더 상황에 맞게 적절히 수정해서 사용하시기 바랍니다.

 

3. jellyfin 대시보드 트랜스코딩 활성

홈에서 3선설정메뉴->대시보드->재생->트랜스코딩에서 Vaapi 또는 QSV는 아래처럼 AV1을 제외한 모든항목을 활성화 하시되

이 캡쳐처럼 저전력 모드는 건들지 마시기 바랍니다. 바로 오류로 빠지고 재생이 처음부터 중단합니다.

그리고 HDR 소스의 톤매핑 처리까지 사용하시려면 아래처럼 VPP 톤매핑을 활성화 체크해 주십시요.

 

Intel OpenCL 톤매핑이 자꾸 풀리는 현상이 확인되었습니다.

OpenCL 톤매핑 보다는 (Vaapi 또는 QSV) + VPP 톤매핑을 권장드립니다.

단 QSV 는 인텔5세대 이후부터 사용가능합니다.








4. 트랜스 코딩 테스트는 영상하나 재생하시고 바퀴모양 설정에서 

1080p 해상도 기준으로 했을때 720p 나 480p 정도로 저해상도로 퀄리티를 떨어 뜨리시고

트랜스코딩이 잘되는지는 바퀴모양 설정에서 [재생데이터] 옵션을 선택해 주시면 영화 좌상부에 상세 내용이 아래처럼 표시됩니다.

트랜스코딩이란 글자가 확인되시면 시놀로지의 CPU 부하량을 확인해 보시기 바랍니다.

적절히 낮은 부하량을 잘 유지하고 있으면 성공입니다.



 





 

 


image
GPGPU 09-15
°­Á °¨»çÇÕ´Ï´Ù ¤¾¤¾
n100 ¹Ì´ÏPC »ç¸é ¼³Ä¡ÇØ ºÁ¾ß °Ú³×¿ä
dateno1 09-15
ÄÚµ¦ ¹«Á¶°Ç ´Ù üũÇÏ¸é ¾È µË´Ï´Ù

Àú°Ç ÇöÁ¦ »ç¿ëÁßÀÎ ÄÄÀÇ ±×·¡ÇÈ ¼¼´ë¸¦ È®ÀÎÈÄ °Å±â ¸ÂÃ߾ Áö¿øÇÏ´Â ÄÚµ¦¸¸ üũÇØ¾ß ÇÕ´Ï´Ù

alderÀÌ»ó ¾²½Å´Ù¸é ´Ù µÇ°ÚÁö¸¸ ƯÈ÷ AV1Àº ±¸Çü¿¡¼­ 100% ¾È µÇ´Â ÄÚµ¦ÀÔ´Ï´Ù

~½ºÄ«ÀÌ (Ä«ºñ?)¶ó¸é 10bitµµ Áö¿øÇÏ´ÂÁö üũÈÄ Çغ¸¼¼¿ä



Àú ÆÐÅ°Áö ½ÃÇèÇغ¸´Âµ¥ deb ÇØÁ¦ÈÄ ¹ÙÀ̳ʸ®¸¦ ½ÇÇàÇϸé libOpenCL.so.1 ¾ø´Ù°í ¶°¹ö¸®³×¿ä (ÇØ´ç ÆÐÅ°Áö¿¡´Â ÀÌ ¶óÀ̺귯¸® Æ÷ÇÔ ¾È µÊ)

Àú ¶óÀ̺귯¸®´Â ocl-icd-libopencl1¿¡ µé¾îÀÖ°í, Àú°É ÃæÁ·Çϸé libopenmpt.so.0°¡ ÇÊ¿äÇÏ´Ù°í ³ª¿É´Ï´Ù
-------------------------------------------------
deb¸¦ ¹Þ´Â°Ô ¾Æ´Ï¶ó jellyfin-ffmpeg_6.0.1-8_portable_linux64-gpl.tar.xz¸¦ ¹ÞÀºÈÄ ¾ÐÃà Ç®¾î¼­ ÇÏ´Ï ½ÇÇà µË´Ï´Ù

Á¤Àû ¹ÙÀ̳ʸ®´Ùº¸´Ï ÀÇÁ¸¼º ¾È µûÁ®¼­ ÀÌÂÊÀÌ ³ªÀ»²¨°°½À´Ï´Ù
https://github.com/jellyfin/jellyfin-ffmpeg/releases/download/v6.0.1-8/jellyfin-ffmpeg_6.0.1-8_portable_linux64-gpl.tar.xz
mkdir -p /usr/local/jellyfin-ffmpeg
tar xvf jellyfin-ffmpeg_6.0.1-8_portable_linux64-gpl.tar.xz
mv ffmpeg /usr/local/jellyfin-ffmpeg/
mv ffprobe /usr/local/jellyfin-ffmpeg/
chmod +x /usr/local/jellyfin-ffmpeg/ffmpeg
chmod +x /usr/local/jellyfin-ffmpeg/ffprobe
ÀÌ·¸°Ô ÁøÇàÇß½À´Ï´Ù (Á¦°æ¿ì °æ·Î¸¦ /usr/local/jellyfin-ffmpeg·Î Àâ¾Ò½À´Ï´Ù

´Ù¸¸ Docker°¡ ¾Æ´Ñ DSM ÆÐÅ°ÁöÆÇÀ̶ó ±×·±Áö ȣȯ¼º ¹®Á¦ ÀÏÀ¸Å°³×¿ä

[hwupload @ 0x561982441600] A hardware device reference is required to upload frames to.
[Parsed_hwupload_3 @ 0x561982b629c0] Query format failed for 'Parsed_hwupload_3': Invalid argument
¶ó°í ¶°¹ö¸®³×¿ä (QSV, VAAPI ¾çÂÊ µ¿ÀÏ)

Àú°Å ±ÇÇÑ ¿¡·¯¿´´ø°É·Î ±â¾ïÇϴµ¥, ssh¿¡¼­ root°èÁ¤À¸·Î ½ÇÇàÇصµ ¶È°°ÀÌ ¶ß´Â°Åº¸¸é ´Ù¸¥°É µÚÁ®ºÁ¾ßÇÒ²¨°°³×¿ä
     
libopencl.so.1 °¡ ¾ø´Ù´Â ¸Þ½ÃÁö¿Í ÀÌ¿Í °ü·ÃÇÑ ÀÇÁ¸¼º ¹®Á¦´Â ¹«½ÃÇϼŵµ µË´Ï´Ù.
BIN¸¸ ÀÖ´Â Æ÷ÅÍºí ¹öÀüµµ Àû¿ëÇØ ºÃ´Âµ¥, OpenCLÀº ¸¶Âù°¡Áö·Î ¹®Á¦°¡ ÀÖ´Ù°í ³ª¿À½Ç°Ì´Ï´Ù.

DOCKER_MODS:linuxserver/mods:jellyfin-opencl-intel  ȯ°æº¯¼ö Ãß°¡ºÎºÐÀÌ OpenCL À» ´ë½Å Ä¿¹ö ÇÕ´Ï´Ù.
https://github.com/linuxserver/docker-mods/blob/jellyfin-opencl-intel/README.md
ÀÌ MODS °¡ ¾Ë¾Æ¼­ ´Ù ÄÁÆ®·ÑÀ» ÇÕ´Ï´Ù.
°ñÄ¡¾ÆÇÁ°Ô ¾Ö½á ãÀ¸½Ç ÇÊ¿ä ¾øÀ»°Í °°½À´Ï´Ù.

Àú´Â ÀÇÁ¸¼º ã¾Æ°¡¸ç ¶óÀ̺귯¸®¸¦ ¿ìºÐÅõ¿¡ ±ò¾Æ°¡¸é¼­ ´Ù ä¿öºÃ´Âµ¥, °á±¹Àº ¸·È÷´Â ºÎºÐÀÌ »ý°Ü¼­ ´õ ÁøÇàÀ» ¸øÇß½À´Ï´Ù.
ÀÌ À§Ä¡¿¡ 10°³³Ñ´Â OpenCL°ú ÀÇÁ¸¼º ÀÖ´Â Lib ¸¦ ¸ðÀ¸´Ù ±×¸¸ µÎ¾ú½À´Ï´Ù.
https://github.com/PeterSuh-Q3/tinycore-redpill/tree/main/opencl

Ä¿³Î 4.X ºÎÅÍ ÀÎÅÚÀÌ OpenCL Áö¿øÀ» Áß´ÜÇß´Ù´Â ¾ê±âµµ ÀÖ±¸¿ä.
¿ìºÐÅõ´Â ½±°Ô ¼³Ä¡°¡ µÇ´Âµ¥, ½Ã³î·ÎÁö´Â ±×·¸Áö ¸øÇÑ ºÎºÐµµ ÀÖ½À´Ï´Ù.
          
dateno1 09-16
´Ü¼ø ½ÇÇàÇÏ¸é ¿ø·¡ ¹öÀü Á¤º¸°°Àº°Å ³ª¿Í¾ßÇϴµ¥ ±×·±°Íµµ ¾È ³ª¿À´øµ¥ ÀÎÄÚµùÀº µÇ³ªº¸³×¿ä

Æ÷ÅÍºí ¹öÀüÀº ÀÏ´Ü ÀÇÁ¸¼º ¿¡·¯´Â ¾È ³µ½À´Ï´Ù (´Ù¸¸ DSM¿ë jellyfinÀ¸·Î Æ®·£½ºÄÚµù ½ÃÅ°´Ï Àú·± ¿¡·¯¸¦ ³¾ »Ó)

ÇöÁ¦ DSM¿ë jellyfin°æ¿ì jellyfin ffmpeg¸¸ÀÌ ¾Æ´Ï¶ó ½Ã³î¿ë ffmpeg ÆÐÅ°Áö¶û ȣȯ¼ºµµ Á» ¹®Á¦°¡ ÀÖ½À´Ï´Ù (ÀÎÄÚµù ÆĶó¸ÞÅ͸¦ Á» º¯°æÇØ¾ß Á¦´ë·Î ó¸®ÇÒ²¨°°Àºµ¥ ±×·²·Á¸é ÄÄÆÄÀÏ È¯°æ ÁغñÇÏ°í, ¼Ò½º ¹Þ¾Æ¼­ ¼öÁ¤ÈÄ »õ·Î ÄÄÆÄÀÏÇؾßÇؼ­ ±ÍÂú¾Æ¼­ ¼Õ ¾È µÇ¾ú½À´Ï´Ù)

ÀÇÁ¸¼ºÀÚþ ¿ìºÐÅõÀÇ ÆÐÅ°Áö ÃßÀûÇؼ­ ÇϳªÇϳª ¸Þ²Ù¸é µÇ±äÇϴµ¥ (¾Èµå·ÎÀ̵忡¼­ ´Ù¸¥ ¸®´ª½º À¯Æ÷ÆÇ¿ë ¹ÙÀ̳ʸ® µ¹·Á¼­ gcc ¿Ã¸®´À¶ó »ðÁú Á» ÇÑÀû ÀÖÀ½), »ó´çÇÑ ³ë°¡´ÙÀÔ´Ï´Ù
     
Á¶¾ðÁֽŴë·Î AV1 ´Â ¿¤µ¥·¹ÀÌÅ© À̻󿡼­¸¸ °¡´ÉÇÏ´Ï ¿ì¼± üũÇØÁ¦ÇÏ°í
QSV(ÀÎÅÚ5¼¼´ëÀÌ»ó) + VPP Åæ¸ÅÇÎ ¶Ç´Â VAAPI + VPP Åæ¸ÅÇÎÀ¸·Î °¡ÀÌµå ³»¿ëÀ» ¼öÁ¤Çß½À´Ï´Ù.
OpenCL Åæ¸ÅÇÎÀº ¼³Á¤µµ ±î´Ù·Ó°í µµÄ¿ MOD°¡ ÀÚ²Ù Ç®¸®´Â Çö»óÀÌ È®ÀεǾú½À´Ï´Ù.
OpenCL ´ë½Å VPP Åæ¸ÅÇÎÀ¸·Îµµ ÃæºÐÈ÷ ±ú²ýÇÑ È­ÁúÀÌ Àß ³ª¿À³×¿ä.
          
dateno1 09-18
ÀúÀü·ÂÂÊÀº Áö¿øÇÒ·Á¸é ºÎÆ®½Ã Æß¿þ¾î ÀûÀçÇØÁà¾ßÇßÀ»²¨¿¡¿ä

Àú°É ÇØ°áÇÒ·Á¸é ºÎÆ®·Î´õ¸¦ ¼Õ ºÁ¾ß°ÚÁÒ (ÀÌ¹Ì SA6400¿ëÀº Æß µé¾îÀִ°Ű°´øµ¥ ¾È µÇ´ø°¡¿ä?)
TubeAmp 09-15
±ÍÁßÇÑ °­Á °¨»çÇÕ´Ï´Ù. DSM 7.2.2·Î ¾÷±ÛÇÏÁö ¾Ê°í 7.2.1 »ç¿ëÁßÀε¥ 7.2.1¿¡¼­µµ Àß µ¹¾Æ°¥±î¿ä?
     
SA6400 À¸·Î ÇغýÀ´Ï´Ù. 7.2.1 µµ Àß µ¹¾Æ°©´Ï´Ù.
          
TubeAmp 09-15
´äº¯ °¨»çµå¸³´Ï´Ù. ½ÃµµÇØ º¸°Ú½À´Ï´Ù.


Á¦¸ñPage 706/28
°Ô½Ã¹°ÀÌ ¾ø½À´Ï´Ù.