- Install Ubuntu 22.04 server
- execute install-debuntu.sh
That is kind of it.
curl -s https://repo.jellyfin.org/install-debuntu.sh | sudo bash
just go to server IP:8096 and add media folder + enable HW acceleration for transcoding for my Intel N200 VA-API works and QSV is not.
some additional
apt install intel-gpu-tools
is not necessary. but just to verify that hardware acceleration is in use
transcoding uses jellyfin-ffmpeg with vaapi on Alder Lake (N200) CPU/GPU
/usr/lib/jellyfin-ffmpeg/ffmpeg -analyzeduration 200M -init_hw_device vaapi=va:/dev/dri/renderD128 -filter_hw_device va -hwaccel vaapi -hwaccel_output_format vaapi -autorotate 0 -i file:/MEDIA/08_AltBaraban1_Papik_Olena_Oleksandr_Maryna_Eugen.MOV -autoscale 0 -map_metadata -1 -map_chapters -1 -threads 0 -map 0:0 -map 0:1 -map -0:s -codec:v:0 h264_vaapi -rc_mode VBR -b:v 14271295 -maxrate 14271295 -bufsize 28542590 -force_key_frames:0 expr:gte(t,0+n_forced*3) -vf setparams=color_primaries=bt709:color_trc=bt709:colorspace=bt709,scale_vaapi=format=nv12:extra_hw_frames=24 -codec:a:0 copy -copyts -avoid_negative_ts disabled -max_muxing_queue_size 2048 -f hls -max_delay 5000000 -hls_time 3 -hls_segment_type mpegts -start_number 0 -hls_segment_filename /var/lib/jellyfin/transcodes/6f162565acdd866e6c6f77c907b52c8e%d.ts -hls_playlist_type vod -hls_list_size 0 -y /var/lib/jellyfin/transcodes/6f162565acdd866e6c6f77c907b52c8e.m3u8
intel-gpu-top: 8086:46d0 @ /dev/dri/card0 - 749/ 749 MHz; 0% RC6; 0.95/ 4.28 W; 785 irqs/s ENGINES BUSY MI_SEMA MI_WAIT Render/3D 61.39% |█████████████████████████████████████████████████████████████████████████████████████████████████▉ | 0% 0% Blitter 0.00% | | 0% 0% Video 74.57% |███████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████▎ | 0% 0% VideoEnhance 38.07% |██████████████████████████████████████████████████████████▏ | 0% 0%
similar command on Core i7-10710U (Ububtu 22.0, ffmpeg version 4.4.2-0)
ffmpeg -init_hw_device vaapi=va:/dev/dri/renderD128 -filter_hw_device va -hwaccel vaapi -hwaccel_output_format vaapi -i /mnt/11_Baraban_ArtGallery_Zhenia_Olena_Sasha_Katia.MOV -map_metadata -1 -map_chapters -1 -threads 0 -map 0:0 -map 0:1 -map -0:s -codec:v:0 h264_vaapi -rc_mode VBR -b:v 4000000 -maxrate 8000000 -bufsize 28542590 -vf "setparams=color_primaries=bt709:color_trc=bt709:colorspace=bt709,scale_vaapi=format=nv12:extra_hw_frames=24" -codec:a:0 copy /mnt/11_Baraban_ArtGallery_Zhenia_Olena_Sasha_Katia_jf_vaapi_vbr4_8_nuc.mp4
frame=36683 fps=219 q=-0.0 Lsize= 617697kB time=00:20:22.76 bitrate=4138.3kbits/s dup=3 drop=0 speed= 7.3x video:589765kB audio:26726kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 0.195641%
intel-gpu-top: Intel Cometlake (Gen9) @ /dev/dri/card0 - 1147/1148 MHz; 3% RC6; 6.15/11.22 W; 2646 irqs/s IMC reads: 7083 MiB/s IMC writes: 3146 MiB/s ENGINES BUSY MI_SEMA MI_WAIT Render/3D 46.01% |███████████████████████████████▊ | 3% 0% Blitter 0.00% | | 0% 0% Video 79.59% |███████████████████████████████████████████████████████ | 20% 0% VideoEnhance 23.04% |████████████████ | 0% 0%
to check some VA-API info
apt install vainfo
it looks like
root@n200:~# vainfo libva info: VA-API version 1.14.0 libva info: Trying to open /usr/lib/x86_64-linux-gnu/dri/iHD_drv_video.so libva info: Found init function __vaDriverInit_1_14 libva info: va_openDriver() returns 0 vainfo: VA-API version: 1.14 (libva 2.12.0) vainfo: Driver version: Intel iHD driver for Intel(R) Gen Graphics - 22.3.1 () vainfo: Supported profile and entrypoints VAProfileNone : VAEntrypointVideoProc VAProfileNone : VAEntrypointStats VAProfileMPEG2Simple : VAEntrypointVLD VAProfileMPEG2Main : VAEntrypointVLD VAProfileH264Main : VAEntrypointVLD VAProfileH264Main : VAEntrypointEncSliceLP VAProfileH264High : VAEntrypointVLD VAProfileH264High : VAEntrypointEncSliceLP VAProfileJPEGBaseline : VAEntrypointVLD VAProfileJPEGBaseline : VAEntrypointEncPicture VAProfileH264ConstrainedBaseline: VAEntrypointVLD VAProfileH264ConstrainedBaseline: VAEntrypointEncSliceLP VAProfileVP8Version0_3 : VAEntrypointVLD VAProfileHEVCMain : VAEntrypointVLD VAProfileHEVCMain : VAEntrypointEncSliceLP VAProfileHEVCMain10 : VAEntrypointVLD VAProfileHEVCMain10 : VAEntrypointEncSliceLP VAProfileVP9Profile0 : VAEntrypointVLD VAProfileVP9Profile0 : VAEntrypointEncSliceLP VAProfileVP9Profile1 : VAEntrypointVLD VAProfileVP9Profile1 : VAEntrypointEncSliceLP VAProfileVP9Profile2 : VAEntrypointVLD VAProfileVP9Profile2 : VAEntrypointEncSliceLP VAProfileVP9Profile3 : VAEntrypointVLD VAProfileVP9Profile3 : VAEntrypointEncSliceLP VAProfileHEVCMain12 : VAEntrypointVLD VAProfileHEVCMain422_10 : VAEntrypointVLD VAProfileHEVCMain422_12 : VAEntrypointVLD VAProfileHEVCMain444 : VAEntrypointVLD VAProfileHEVCMain444 : VAEntrypointEncSliceLP VAProfileHEVCMain444_10 : VAEntrypointVLD VAProfileHEVCMain444_10 : VAEntrypointEncSliceLP VAProfileHEVCMain444_12 : VAEntrypointVLD VAProfileHEVCSccMain : VAEntrypointVLD VAProfileHEVCSccMain : VAEntrypointEncSliceLP VAProfileHEVCSccMain10 : VAEntrypointVLD VAProfileHEVCSccMain10 : VAEntrypointEncSliceLP VAProfileHEVCSccMain444 : VAEntrypointVLD VAProfileHEVCSccMain444 : VAEntrypointEncSliceLP VAProfileAV1Profile0 : VAEntrypointVLD VAProfileHEVCSccMain444_10 : VAEntrypointVLD VAProfileHEVCSccMain444_10 : VAEntrypointEncSliceLP