Jump to content
XPEnology Community

Recommended Posts

I hope someone can give me a definitive answer.

 

Is it possible to run Jellyfin, with a working QSV, on a box built with an Intel i7-4790 CPU?

 

I used the TinyCore RedPill loader and configured the system using the GeminiLake build, (even though I believe the i7 is Haswell) first the 7.0 then the 7.1 DSM images. I configured it as a 920+, based on everything I've read about HW accelleration.

The basic NAS works well, Jellyfin loads and runs well. I just can't get it to use the QSV.


I have read countless posts about people struggling with QSV. I have been thru countless configurations but just can't get QSV working. I am about ready to give up.

If I knew for sure, from someone who has actually done it, that what I'm trying to do, with the i7 and GeminiLake build, that it's possible, I will continue to work on it.

 

I just would like to know it's been done.

Thanx!

Link to comment
Share on other sites

On 5/12/2022 at 8:43 PM, jrockow said:

Is it possible to run Jellyfin, with a working QSV, on a box built with an Intel i7-4790 CPU?

yes

syno's i915 supports everything up to 9th gen ootb, the driver version in 7.0/7.1 is the same as in 6.2.3  and 918/920 have the same driver version too

the thing missing in tc or rp-loader is usually the additional firmware files

as the driver is the same you could just use the i915 firmware files from thr 918+ 6.2.3 extra.lzma from here

https://xpenology.com/forum/topic/28321-driver-extension-jun-103b104b-for-dsm623-for-918-3615xs-3617xs/

just extract the files with 7zip (extra.lzma\extra\usr\lib\firmware\i915\) and copy them to /lib/fimrware/i915/ in you 7.x installation

after doing this and a reboot there should be devices in /dev/dri

jellyfin for 7.x can be downloaded here

https://synocommunity.com/package/jellyfin

or

https://github.com/publicarray/spksrc/releases

 

Link to comment
Share on other sites

I'll try this if you think it will help, but I just want you to know that I already have "card0" and "renderD128" in devices.

Should I be using "geminilake"?

 

I should also mention I'm using Jellyfin 10.8.0 beta2

Edited by jrockow
Link to comment
Share on other sites

 I had high hopes that this nightmare was coming to an end, but the changes you suggested didn't seem to make any difference.

My Firestick still pauses every few seconds and then starts again.

Looking at the Jellyfin remux file I don't think it's working.

Hopefully you'll spot something that this rookie didn't.

 

FFmpeg.Remux-2022-05-13_18-02-10_native_c11ae7c318ee249d338101415454096e_eb08e975082a6e028d8741ba3757d2ec_234dc448.log

Link to comment
Share on other sites

Not sure what I'm doing but I listed out the devices and it appears I have the i915 kernel installed?

 

0000:00:02.0 Class 0300: Device 8086:0412 (rev 06)
        DeviceName:  Onboard IGD
        Subsystem: Device 1043:8534
        Kernel driver in use: i915

Link to comment
Share on other sites

On 5/13/2022 at 10:30 PM, jrockow said:

I'll try this if you think it will help, but I just want you to know that I already have "card0" and "renderD128" in devices.

if you have this everything should be fine with the driver and its qsv support

maybe use these two for testing with dsm

https://synocommunity.com/package/ffmpeg

https://synocommunity.com/package/jellyfin

 

and you can have look here about it too, there are some screenshots

https://xpenology.com/forum/topic/61498-asrock-j5040-hw-transcoding/

 

23 hours ago, jrockow said:

My Firestick still pauses every few seconds and then starts again.

maybe first test with a normal browser to check that things work in general

i do remeber there where problems with HDRtone mapping, check that tone mapping is disabled

you could also try to use syno's videostation, there are patches available to make it work without a valid serial number in dsm

 

 

Link to comment
Share on other sites

This is driving me crazy!

 

No matter what confiuration I try I can't get it work.

Is it possible because I used "geminilake" as opposed to "apollolake" or another platform to build my loader?

Is it possible that because I'm using DSM7.1 instead of DMS7.0?

 

I'm looking for some other reason besides the usual "/dev/dri", etc., suggestions.

Link to comment
Share on other sites

17 minutes ago, jrockow said:

Is it possible because I used "geminilake" as opposed to "apollolake" or another platform to build my loader?

no, the driver is all the same and geminilake is used in 920+ too, so if you use 918+ with geminilake its the same as using 920+

i use a i3-9100, thats even more different and its working (i tested with my live system and thats still 6.2.3)

 

25 minutes ago, jrockow said:

Is it possible that because I'm using DSM7.1 instead of DMS7.0?

not likely as all (even 6.2.3) use the same i915 driver that was backported by synology to kernel 4.4

 

51 minutes ago, jrockow said:

No matter what confiuration I try I can't get it work.

if you want to pin it down it need systematic and kind of documentation whats done

if you can configure QSV in jellyfin (needs to be done after installation of the package) and get a stream at the other end (different resolution as source to make sure its transcoding) then QSV is working the way it should (stuttering or not), like in the other thread i would disable the ahead transcoding as it will needlessly block the system with a high load, also check the system load to see whats going on with the cpu, if the load is >90% the there is something wrong

maybe start simple with a 1920x1080 source and trancode to 1280x720

the test client should be something like a normal computer (linux, windows) and a browser like firefox or chrome

and you can also stay off jellyfin and try syno's own videostation (https://github.com/Yanom1212/synocodectool-patch)

 

if you have a spare disk you can also try a test install of dsm 6.2.3 918+ or open media vault and test with that

 

 

 

Link to comment
Share on other sites

Whenever I look at the REMUX file it always appears the input and out files are the same.

Also, I never saw my CPU useage above 15%.

Is there a way to prove that my device (card0 and renderD128) are actually linked to the continer?

 

Input #0, mpegts, from 'http://192.168.1.29:8097/LiveTv/LiveStreamFiles/036fe23abdf44dcf9f839d59bf41da13/stream.ts':
  Duration: N/A, start: 44439.858411, bitrate: N/A
  Program 5 
  Stream #0:0[0x71]: Video: h264 (High) ([27][0][0][0] / 0x001B), yuv420p(tv, progressive), 1280x720 [SAR 1:1 DAR 16:9], Closed Captions, 59.94 fps, 59.94 tbr, 90k tbn
  Stream #0:1[0x73](eng): Audio: ac3 (AC-3 / 0x332D4341), 48000 Hz, 5.1(side), fltp, 384 kb/s
  Stream #0:2[0x74](spa): Audio: ac3 (AC-3 / 0x332D4341), 48000 Hz, mono, fltp, 96 kb/s
  Stream #0:3[0x7b]: Data: scte_35
Output #0, hls, to '/config/transcodes/10660ef86c440fc6959b10d58a707202.m3u8':
  Metadata:
    encoder         : Lavf59.16.100
  Stream #0:0: Video: h264 (High) ([27][0][0][0] / 0x001B), yuv420p(tv, progressive), 1280x720 [SAR 1:1 DAR 16:9], q=2-31, 59.94 fps, 59.94 tbr, 90k tbn
  Stream #0:1: Audio: ac3 (AC-3 / 0x332D4341), 48000 Hz, 5.1(side), fltp, 384 kb/s
Stream mapping:
  Stream #0:0 -> #0:0 (copy)
  Stream #0:1 -> #0:1 (copy)

Edited by jrockow
Link to comment
Share on other sites

I've learned a lot since I first started with this problem, but obviously not enough yet.

 

My latest test is with the new 10.8.0-beta3.

If I play a stream with transcoding set to NONE, or VAAPI it seems to play OK.

When I switch to QSV it fails...

 

[AVHWDeviceContext @ 0x561b1c6302c0] libva: /usr/lib/jellyfin-ffmpeg/lib/dri/iHD_drv_video.so init failed

I don't see a /usr/lib/jellyfin-ffmpeg/ directory.

 

It appears I'm using...

ffmpeg version 4.4.1-Jellyfin Copyright (c) 2000-2021 the FFmpeg developers

Not sure if that's the correct version; it was loaded as part of 10.8.0

 

To use QSV on Linux with recent Intel iGPUs the nonfree Intel media driver is required for full hardware acceleration. If you are using jellyfin-ffmpeg version 4.4.1-2 or higher it is included and you do not need to install it seperatly.

Edited by jrockow
Link to comment
Share on other sites

A bit more of the error message......

 

[AVHWDeviceContext @ 0x562ec7f4c780] libva: /usr/lib/jellyfin-ffmpeg/lib/dri/iHD_drv_video.so init failed
[AVHWDeviceContext @ 0x562ec7f4c780] Failed to initialise VAAPI connection: 1 (operation failed).
Device creation failed: -5.
Failed to set value 'vaapi=va:,driver=iHD,kernel_driver=i915' for option 'init_hw_device': Input/output error
Error parsing global options: Input/output error

Link to comment
Share on other sites

  • 3 weeks later...
On 5/13/2022 at 4:25 PM, IG-88 said:

yes

syno's i915 supports everything up to 9th gen ootb, the driver version in 7.0/7.1 is the same as in 6.2.3  and 918/920 have the same driver version too

the thing missing in tc or rp-loader is usually the additional firmware files

as the driver is the same you could just use the i915 firmware files from thr 918+ 6.2.3 extra.lzma from here

https://xpenology.com/forum/topic/28321-driver-extension-jun-103b104b-for-dsm623-for-918-3615xs-3617xs/

just extract the files with 7zip (extra.lzma\extra\usr\lib\firmware\i915\) and copy them to /lib/fimrware/i915/ in you 7.x installation

after doing this and a reboot there should be devices in /dev/dri

jellyfin for 7.x can be downloaded here

https://synocommunity.com/package/jellyfin

or

https://github.com/publicarray/spksrc/releases

 

Does this mean i915 doesn't apply to an 11th gen Intel i5-11400?

My latest attempt at transcoding is an ASUS D500SC mobo with the i5-11400 CPU.

I built it as a DS920+, geminilake-7.1.0-42661.

I copied the i915 files as instructed, Jellyfin works fine, just don't have a /DEV/DRI folder.

I first tried Jellyfin 10.8.0-beta3, and then the Linuxserver-Jellyfin, both Docker versions.

 

After 2 months and several hardware variations, I think I will drop over if I ever actually see anything transcode!

Link to comment
Share on other sites

  • 3 weeks later...
On 6/10/2022 at 10:09 PM, jrockow said:

I copied the i915 files as instructed, Jellyfin works fine, just don't have a /DEV/DRI folder.

I first tried Jellyfin 10.8.0-beta3, and then the Linuxserver-Jellyfin, both Docker versions.

 

After 2 months and several hardware variations, I think I will drop over if I ever actually see anything transcode!

you won't have the ability of intel quick sync video with a 11th gen cpu as the best thats possible now is 10th gen (with a extended driver, https://xpenology.com/forum/topic/59909-i915ko-backported-driver-for-intel-10th-gen-ds918-ver-701-up3/)

transcoding would still be possible as long as there is enough raw cpu power, if all cores hit 100% then you have maxed out whats possible that way

hardware assisted with intel qsv will only work if there is a proper kernel driver loaded and you see devices in /dev/dri

if that a deal breaker then you might be better off with a system that uses a normal recent kernel (5.x), like open media vault, depends on what you are looking for but a lot of things that are possible with dsm will work on omv too (you can even get you existing mdadm/lvm2 raid mounted in omv (https://xpenology.com/forum/topic/42793-hp-gen8-dsm-623-25426-update-3-failed/?do=findComment&comment=200475)

 

 

Link to comment
Share on other sites

I have since swapped the 11th gen Intel i5-11400 for a i5-7500 7th gen CPU.
I built the loader for a DS920+, and I now have the devices in /dev/dri.
However, neither QSV or VAAPI still doesn't work for me.

See the logs below.

 

That said, even though it's not working I'm not sure that's my real problem.

When I connect to a stream that needs to transcode it doesn't appear my CPU is being taxed much at all.

From what I can tell, using TOP, my CPU never uses more than 5-8%.

Maybe I'm not looking in the right place?

 

Bottom line, I'm trying to solve the stuttering problem I get when attaching a client via the internet.

 

 

SET TO QSV
ffmpeg version 5.0.1-Jellyfin Copyright (c) 2000-2022 the FFmpeg developers
  built with gcc 10 (Debian 10.2.1-6)
  configuration: --prefix=/usr/lib/jellyfin-ffmpeg --target-os=linux --extra-libs=-lfftw3 --extra-version=Jellyfin --disable-doc --disable-ffplay --disable-ptx-compression --disable-shared --disable-libxcb --disable-sdl2 --disable-xlib --enable-lto --enable-gpl --enable-version3 --enable-static --enable-gmp --enable-gnutls --enable-chromaprint --enable-libdrm --enable-libass --enable-libfreetype --enable-libfribidi --enable-libfontconfig --enable-libbluray --enable-libmp3lame --enable-libopus --enable-libtheora --enable-libvorbis --enable-libdav1d --enable-libwebp --enable-libvpx --enable-libx264 --enable-libx265 --enable-libzvbi --enable-libzimg --enable-libfdk-aac --arch=amd64 --enable-libshaderc --enable-libplacebo --enable-vulkan --enable-opencl --enable-vaapi --enable-amf --enable-libmfx --enable-ffnvcodec --enable-cuda --enable-cuda-llvm --enable-cuvid --enable-nvdec --enable-nvenc
  libavutil      57. 17.100 / 57. 17.100
  libavcodec     59. 18.100 / 59. 18.100
  libavformat    59. 16.100 / 59. 16.100
  libavdevice    59.  4.100 / 59.  4.100
  libavfilter     8. 24.100 /  8. 24.100
  libswscale      6.  4.100 /  6.  4.100
  libswresample   4.  3.100 /  4.  3.100
  libpostproc    56.  3.100 / 56.  3.100
Device creation failed: -542398533.
Failed to set value 'vaapi=va:,driver=iHD,kernel_driver=i915' for option 'init_hw_device': Generic error in an external library
Error parsing global options: Generic error in an external library


SET TO VAAPI
ffmpeg version 5.0.1-Jellyfin Copyright (c) 2000-2022 the FFmpeg developers
  built with gcc 10 (Debian 10.2.1-6)
  configuration: --prefix=/usr/lib/jellyfin-ffmpeg --target-os=linux --extra-libs=-lfftw3 --extra-version=Jellyfin --disable-doc --disable-ffplay --disable-ptx-compression --disable-shared --disable-libxcb --disable-sdl2 --disable-xlib --enable-lto --enable-gpl --enable-version3 --enable-static --enable-gmp --enable-gnutls --enable-chromaprint --enable-libdrm --enable-libass --enable-libfreetype --enable-libfribidi --enable-libfontconfig --enable-libbluray --enable-libmp3lame --enable-libopus --enable-libtheora --enable-libvorbis --enable-libdav1d --enable-libwebp --enable-libvpx --enable-libx264 --enable-libx265 --enable-libzvbi --enable-libzimg --enable-libfdk-aac --arch=amd64 --enable-libshaderc --enable-libplacebo --enable-vulkan --enable-opencl --enable-vaapi --enable-amf --enable-libmfx --enable-ffnvcodec --enable-cuda --enable-cuda-llvm --enable-cuvid --enable-nvdec --enable-nvenc
  libavutil      57. 17.100 / 57. 17.100
  libavcodec     59. 18.100 / 59. 18.100
  libavformat    59. 16.100 / 59. 16.100
  libavdevice    59.  4.100 / 59.  4.100
  libavfilter     8. 24.100 /  8. 24.100
  libswscale      6.  4.100 /  6.  4.100
  libswresample   4.  3.100 /  4.  3.100
  libpostproc    56.  3.100 / 56.  3.100
[AVHWDeviceContext @ 0x557e89bee600] No VA display found for device /dev/dri/renderD128.
Device creation failed: -22.
Failed to set value 'vaapi=va:/dev/dri/renderD128' for option 'init_hw_device': Invalid argument
Error parsing global options: Invalid argument


 

Edited by jrockow
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...