½Ã³î·ÎÁö Jellyfin H/W Æ®·£½ºÄÚµù ±îÁö 1ºÐ ¿Ï¼º °¡À̵å
https://raw.githubusercontent.com/PeterSuh-Q3/tinycore-redpill/main/j¡¦ (269)https://github.com/PeterSuh-Q3/tinycore-redpill/blob/main/jellyfin-ig¡¦ (291)
Jellyfin 에 트랜스코딩 OpenCL (톤매핑) 1012; 활성화 Ȣ16;1648; 못해서 만 Ȣ16;루를 소요했습니다.
구글링1012; 엄청 많1060; 한,163; 같네요.
결국 솔루션1012; 찾았습니다.
160;
상세한 가1060;드lj16; 기1316;에 서버포/100; 달소님 가1060;드 한번 0120;리 보시lj16;,163;도 1339;1012;,163; 같습니다.
https://svrforum.com/nas/1668940160;
1200;lj16; 1064;텔 iGPU opencl 트랜스코딩까1648; 활성화 Ȣ16;도/197;한 도커 초간단 설치 0169;법1012; 알/140; 드리,192;습니다.
시놀/196;1648;에 도커 (컨테1060;너 매니1200;) 만 1456;비 .104;Ǻ12; 1080;1004;시면 .121;니다.
DSM 버1204;1008; 7.2.2 에서 시험했습니다.
160;
1. 먼1200; ssh /196; 1217;속Ȣ16;셔서 아래처/100; 커맨드해서 jellyfin 1204;용 ffmpeg 를 설치해 1452;시면 .121;니다.
1064;텔 iGPU H/W 트랜스코딩에 필수 프/196;그ǖ16; 1077;니다.
160;
sudo -i
bash -c "$(curl https://raw.githubusercontent.com/PeterSuh-Q3/tinycore-redpill/main/jelly.sh)"
160;
1060; 스크립트1032; 내용1008; 참고만 Ȣ16;시라고 여기 1201;,192;습니다.
#!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
mv -v temp_dir/usr/lib/jellyfin-ffmpeg/ /usr/lib/
cd /usr/lib/jellyfin-ffmpeg
./ffmpeg
복사160;
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)
복사160;
2.160;달소님 가1060;드 1473;간에 나오lj16; 도커 (컨테1060;너 매니1200;) 상1032; 프/196;1229;트를 0148;/196; 생성합니다.
도커 프/196;1229;트 생성에 필요한 yaml 1008; 1060; 링크 파1068;1012; 다운0155;1004;셔서 사용Ȣ16;셔도 1339;고
1060; 내용1012; 긁Ǻ12;서 카피해서 붙여 넣1004;셔도 무0169;합니다.
160;
https://github.com/PeterSuh-Q3/tinycore-redpill/blob/main/jellyfin-igpu.yaml160;
트랜스코딩1032; Intel opencl 1012; 활성화 Ȣ16;lj16; Ꮢ1;션1008;160;
환ᅆ1;변수1473; Ȣ16;나에 1088;ᇼ1;추가.104;lj16; 아래 값1077;니다. 1060;,163; 찾lj16;데 꼬0149; Ȣ16;루가 ,152;/160;네요.
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
복사160;
160;볼륨 설1221;1473;
/volume1/_DRAMA:/volume1/_DRAMA160;
lj16; 본1064;1032; 영화 공유폴더 상황에 맞,172; 1201;1208;7176; 수1221;해서 사용Ȣ16;시기 0148;랍니다.
160;
3. jellyfin 대시보드 트랜스코딩 활성
홈에서 3선설1221;메뉴->대시보드->1116;생->트랜스코딩에서 Vaapi 또lj16; QSVlj16; 아래처/100; AV11012; 1228;외한 모든항목1012; 활성화 Ȣ16;시.104;
1060; 캡쳐처/100; 1200;1204;/141; 모드lj16; ,148;들1648; 마시기 0148;랍니다. 0148;/196; 오류/196; 빠1648;고 1116;생1060; 처1020;ǥ12;터 1473;단합니다.
그리고 HDR 소스1032; 톤매핑 처리까1648; 사용Ȣ16;시/140;면 아래처/100; VPP 톤매핑1012; 활성화 체크해 1452;1;시요.
160;
Intel OpenCL 톤매핑1060; 1088;꾸 풀리lj16; 현상1060; 확1064;.104;었습니다.
OpenCL 톤매핑 보다lj16; (Vaapi 또lj16; QSV) + VPP 톤매핑1012; 권1109;드립니다.
단 QSV lj16; 1064;텔5세대 1060;후ǥ12;터 사용가능합니다.
4. 트랜스 코딩 테스트lj16; 영상Ȣ16;나 1116;생Ȣ16;시고 0148;퀴모양 설1221;에서160;
1080p 해상도 기1456;1004;/196; 했1012;ǐ12; 720p 나 480p 1221;도/196; 1200;해상도/196; 퀄리티를 떨Ǻ12; 뜨리시고
트랜스코딩1060; 1096;.104;lj16;1648;lj16; 0148;퀴모양 설1221;에서 [1116;생데1060;터] Ꮢ1;션1012; 선택해 1452;시면 영화 1340;상ǥ12;에 상세 내용1060; 아래처/100; 표시.121;니다.
트랜스코딩1060;란 글1088;가 확1064;.104;시면 시놀/196;1648;1032; CPU ǥ12;Ȣ16;량1012; 확1064;해 보시기 0148;랍니다.
1201;1208;7176; 낮1008; ǥ12;Ȣ16;량1012; 1096; 유1648;Ȣ16;고 1080;1004;면 성공1077;니다.
160;
160;
n100 ¹Ì´ÏPC »ç¸é ¼³Ä¡ÇØ ºÁ¾ß °Ú³×¿ä
Àú°Ç ÇöÁ¦ »ç¿ëÁßÀÎ ÄÄÀÇ ±×·¡ÇÈ ¼¼´ë¸¦ È®ÀÎÈÄ °Å±â ¸ÂÃß¾î¼ Áö¿øÇÏ´Â ÄÚµ¦¸¸ üũÇØ¾ß ÇÕ´Ï´Ù
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°èÁ¤À¸·Î ½ÇÇàÇصµ ¶È°°ÀÌ ¶ß´Â°Åº¸¸é ´Ù¸¥°É µÚÁ®ºÁ¾ßÇÒ²¨°°³×¿ä
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 Áö¿øÀ» Áß´ÜÇß´Ù´Â ¾ê±âµµ ÀÖ±¸¿ä.
¿ìºÐÅõ´Â ½±°Ô ¼³Ä¡°¡ µÇ´Âµ¥, ½Ã³î·ÎÁö´Â ±×·¸Áö ¸øÇÑ ºÎºÐµµ ÀÖ½À´Ï´Ù.
Æ÷ÅÍºí ¹öÀüÀº ÀÏ´Ü ÀÇÁ¸¼º ¿¡·¯´Â ¾È ³µ½À´Ï´Ù (´Ù¸¸ DSM¿ë jellyfinÀ¸·Î Æ®·£½ºÄÚµù ½ÃÅ°´Ï Àú·± ¿¡·¯¸¦ ³¾ »Ó)
ÇöÁ¦ DSM¿ë jellyfin°æ¿ì jellyfin ffmpeg¸¸ÀÌ ¾Æ´Ï¶ó ½Ã³î¿ë ffmpeg ÆÐÅ°Áö¶û ȣȯ¼ºµµ Á» ¹®Á¦°¡ ÀÖ½À´Ï´Ù (ÀÎÄÚµù ÆĶó¸ÞÅ͸¦ Á» º¯°æÇØ¾ß Á¦´ë·Î ó¸®ÇÒ²¨°°Àºµ¥ ±×·²·Á¸é ÄÄÆÄÀÏ È¯°æ ÁغñÇÏ°í, ¼Ò½º ¹Þ¾Æ¼ ¼öÁ¤ÈÄ »õ·Î ÄÄÆÄÀÏÇؾßÇؼ ±ÍÂú¾Æ¼ ¼Õ ¾È µÇ¾ú½À´Ï´Ù)
ÀÇÁ¸¼ºÀÚþ ¿ìºÐÅõÀÇ ÆÐÅ°Áö ÃßÀûÇؼ ÇϳªÇϳª ¸Þ²Ù¸é µÇ±äÇϴµ¥ (¾Èµå·ÎÀ̵忡¼ ´Ù¸¥ ¸®´ª½º À¯Æ÷ÆÇ¿ë ¹ÙÀ̳ʸ® µ¹·Á¼ gcc ¿Ã¸®´À¶ó »ðÁú Á» ÇÑÀû ÀÖÀ½), »ó´çÇÑ ³ë°¡´ÙÀÔ´Ï´Ù
QSV(ÀÎÅÚ5¼¼´ëÀÌ»ó) + VPP Åæ¸ÅÇÎ ¶Ç´Â VAAPI + VPP Åæ¸ÅÇÎÀ¸·Î °¡ÀÌµå ³»¿ëÀ» ¼öÁ¤Çß½À´Ï´Ù.
OpenCL Åæ¸ÅÇÎÀº ¼³Á¤µµ ±î´Ù·Ó°í µµÄ¿ MOD°¡ ÀÚ²Ù Ç®¸®´Â Çö»óÀÌ È®ÀεǾú½À´Ï´Ù.
OpenCL ´ë½Å VPP Åæ¸ÅÇÎÀ¸·Îµµ ÃæºÐÈ÷ ±ú²ýÇÑ ÈÁúÀÌ Àß ³ª¿À³×¿ä.
Àú°É ÇØ°áÇÒ·Á¸é ºÎÆ®·Î´õ¸¦ ¼Õ ºÁ¾ß°ÚÁÒ (ÀÌ¹Ì SA6400¿ëÀº Æß µé¾îÀִ°Ű°´øµ¥ ¾È µÇ´ø°¡¿ä?)