This is my rough guide to install Jellyfin, with hardware transcoding enabled. (Intel processor only)
I’m writing this since many guides online are scattered or force you to use Task Scheduler to add Docker container. Some guide also suggestes changing graphics driver permission, which I think it’s risky. I hope this helps you to migrate from Video Station to Jellyfin.
Prepare to install:
-
Create 3 folder in appropriate location. These folder will hold Jellyfin data, cache, font. For example, under
/docker/jellyfin
. -
Go to Container Manager → Registry. Search for
Jellyfin/Jellyfin
and download latest. Don’t create container yet. -
Execute command
cat /etc/group | grep videodriver
. You can do this with SSH, or Task Scheduler to email the result. Remember the number at the end of result; in my case,videodriver:x:937
so remember937
. -
Go to Container Manager → Projects. Create new project.
-
Put project name as you with, and select the folder where you created 3 folders before. In this example,
/docker/jellyfin
. -
Choose
create docker-compose.yml
. Then, paste following code. Replace{{ }}
part to your data.
version: "3.9"
services:
jellyfin:
image: jellyfin/jellyfin:latest
container_name: Jellyfin-HT
volumes:
- {{config folder}}:/config:rw
- {{cache folder}}:/cache:rw
- {{font folder}}:/usr/share/fonts:rw
- {{video folder}}:/media:rw
devices:
- /dev/dri/renderD128:/dev/dri/renderD128
- /dev/dri/card0:/dev/dri/card0
environment:
TZ: {{Your timezone}}
restart: on-failure:5
network_mode: bridge
ports:
- {{port number}}:8096
group_add:
- "{{group number you saw in step 3}}"
For exact timezone names, see List of tz database time zones - Wikipedia. Put TZ identifier. (For example: America/New_York
)
Notice devices:
part and add_group:
part. These will map device to Docker container and give container permission to use them, hence enables hardware acceleration.
Here’s my example.
version: "3.9"
services:
jellyfin:
image: jellyfin/jellyfin:latest
container_name: Jellyfin-HT
volumes:
- /volume1/docker/jellyfin/config:/config:rw
- /volume1/docker/jellyfin/cache:/cache:rw
- /volume1/docker/jellyfin/fonts:/usr/share/fonts:rw
- /volume1/video:/media/video:rw
devices:
- /dev/dri/renderD128:/dev/dri/renderD128
- /dev/dri/card0:/dev/dri/card0
environment:
TZ: Asia/Seoul
restart: on-failure:5
network_mode: bridge
ports:
- 8096:8096
group_add:
- "937"
-
Create project, and run.
-
Go to Jellyfin. Create your account, add library. Then, go to dashboard and enable transcoding with “Intel QuickSync”. If you want to use Trickplay(Images when you hovering over play bar), you have to enable hardware acceleration there, too.