[Support] Linuxserver.io - Jellyfin


Recommended Posts

4 minutes ago, swingline said:

I am having issues with "Scan Media Library failed"

Capture.PNG.953625786e0b6c3f495ee1191a4f9057.PNG

 

The error is as follows

Could not find a part of the path '/config/root/default/Movies'. at System.IO.Enumeration.FileSystemEnumerator`1.CreateDirectoryHandle(String path, Boolean ignoreNotFound) at System.IO.Enumeration.FileSystemEnumerator`1.Init() at System.IO.Enumeration.FileSystemEnumerable`1..ctor(String directory, FindTransform transform, EnumerationOptions options, Boolean isNormalized) at System.IO.Enumeration.FileSystemEnumerableFactory.DirectoryInfos(String directory, String expression, EnumerationOptions options, Boolean isNormalized) at System.IO.DirectoryInfo.InternalEnumerateInfos(String path, String searchPattern, SearchTarget searchTarget, EnumerationOptions options) at System.IO.DirectoryInfo.EnumerateDirectories(String searchPattern, SearchOption searchOption) at Emby.Server.Implementations.IO.ManagedFileSystem.GetFileSystemEntries(String path, Boolean recursive) at MediaBrowser.Controller.Providers.DirectoryService.GetFileSystemEntries(String path) at MediaBrowser.Controller.IO.FileData.GetFilteredFileSystemEntries(IDirectoryService directoryService, String path, IFileSystem fileSystem, IServerApplicationHost appHost, ILogger logger, ItemResolveArgs args, Int32 flattenFolderDepth, Boolean resolveShortcuts) at MediaBrowser.Controller.Entities.CollectionFolder.CreateResolveArgs(IDirectoryService directoryService, Boolean setPhysicalLocations) at MediaBrowser.Controller.Entities.CollectionFolder.RequiresRefresh() at MediaBrowser.Providers.Manager.MetadataService`2.RefreshMetadata(BaseItem item, MetadataRefreshOptions refreshOptions, CancellationToken cancellationToken) at MediaBrowser.Controller.Entities.BaseItem.RefreshMetadata(MetadataRefreshOptions options, CancellationToken cancellationToken) at MediaBrowser.Controller.Entities.Folder.RefreshChildMetadata(BaseItem child, MetadataRefreshOptions refreshOptions, Boolean recursive, IProgress`1 progress, CancellationToken cancellationToken) at MediaBrowser.Controller.Entities.Folder.RefreshMetadataRecursive(List`1 children, MetadataRefreshOptions refreshOptions, Boolean recursive, IProgress`1 progress, CancellationToken cancellationToken) at MediaBrowser.Controller.Entities.Folder.ValidateChildrenInternal2(IProgress`1 progress, CancellationToken cancellationToken, Boolean recursive, Boolean refreshChildMetadata, MetadataRefreshOptions refreshOptions, IDirectoryService directoryService) at MediaBrowser.Controller.Entities.Folder.ValidateChildrenInternal(IProgress`1 progress, CancellationToken cancellationToken, Boolean recursive, Boolean refreshChildMetadata, MetadataRefreshOptions refreshOptions, IDirectoryService directoryService) at MediaBrowser.Controller.Entities.UserRootFolder.ValidateChildrenInternal(IProgress`1 progress, CancellationToken cancellationToken, Boolean recursive, Boolean refreshChildMetadata, MetadataRefreshOptions refreshOptions, IDirectoryService directoryService) at Emby.Server.Implementations.Library.LibraryManager.ValidateTopLibraryFolders(CancellationToken cancellationToken) at Emby.Server.Implementations.Library.LibraryManager.PerformLibraryValidation(IProgress`1 progress, CancellationToken cancellationToken) at Emby.Server.Implementations.Library.LibraryManager.ValidateMediaLibraryInternal(IProgress`1 progress, CancellationToken cancellationToken) at Emby.Server.Implementations.ScheduledTasks.ScheduledTaskWorker.ExecuteInternal(TaskOptions options)

 

 

You should report it to the jellyfin guys.

Link to comment
13 hours ago, swingline said:

Didnt know if this is something related to unraid or this docker. I swapped from binhex jellyfin container to this one to beable to transcode, I used the same appdata folder.

Might be better to test with a fresh appdata folder.

This info is important to mention when you have an issue.

Link to comment
On 11/3/2020 at 8:56 PM, sir_storealot said:

Hey there!

 

Unfortunately I also have issues with HW transcoding using Intel 10th Gen (i3-10100).

Unraid Beta 6.9.0-30

[20:35:21] [INF] [1] Main: Jellyfin version: 10.6.4

Unraid go file with modprobe, docker is configured as per instructions and extra parameters

 

/dev/dri shows up inside the docker:

 

[email protected]:/# ls -la /dev/dri
total 0
drwxr-xr-x 2 root root                80 Nov  3 20:35 .
drwxr-xr-x 6 root root               360 Nov  3 20:35 ..
crw-rw---- 1 root videoEhAShCrc 226,   0 Nov  3 20:35 card0
crwxrwxrwx 1 abc  users         226, 128 Nov  3 20:35 renderD128

However, when running hw transcode:

/usr/lib/jellyfin-ffmpeg/ffmpeg -hwaccel vaapi -hwaccel_output_format vaapi -vaapi_device /dev/dri/renderD128 -i file:"/movies/somex256file.mkv" -map_metadata -1 -map_chapters -1 -threads 0 -map 0:0 -map 0:1 -map -0:s -codec:v:0 h264_vaapi  -b:v 50360234 -maxrate 50360234 -bufsize 100720468 -profile:v high -level 41  -force_key_frames:0 "expr:gte(t,0+n_forced*3)" -g 72 -keyint_min 72 -sc_threshold 0 -vf "format=nv12|vaapi,hwupload,scale_vaapi=format=nv12" -start_at_zero -vsync -1 -codec:a:0 libmp3lame -ac 2 -ab 384000 -af "volume=2" -copyts -avoid_negative_ts disabled -f hls -max_delay 5000000 -hls_time 3 -individual_header_trailer 0 -hls_segment_type mpegts -start_number 0 -hls_segment_filename "/config/data/transcodes/d9c483124123a6454888b24ba9949550%d.ts" -hls_playlist_type vod -hls_list_size 0 -y "/config/data/transcodes/d9c483124123a6454888b24ba9949550.m3u8"


ffmpeg version 4.3.1 Copyright (c) 2000-2020 the FFmpeg developers
  built with gcc 7 (Ubuntu 7.5.0-3ubuntu1~18.04)
  configuration: --prefix=/usr/lib/jellyfin-ffmpeg --target-os=linux --disable-doc --disable-ffplay --disable-shared --disable-libxcb --disable-sdl2 --disable-xlib --enable-gpl --enable-version3 --enable-static --enable-libfontconfig --enable-fontconfig --enable-gmp --enable-gnutls --enable-libass --enable-libbluray --enable-libdrm --enable-libfreetype --enable-libfribidi --enable-libmp3lame --enable-libopus --enable-libtheora --enable-libvorbis --enable-libwebp --enable-libx264 --enable-libx265 --enable-libzvbi --arch=amd64 --enable-libzimg --enable-opencl --enable-vaapi --enable-amf --enable-libmfx --enable-vdpau --enable-cuda --enable-cuda-llvm --enable-cuvid --enable-nvenc --enable-nvdec --enable-ffnvcodec --enable-libdav1d
  libavutil      56. 51.100 / 56. 51.100
  libavcodec     58. 91.100 / 58. 91.100
  libavformat    58. 45.100 / 58. 45.100
  libavdevice    58. 10.100 / 58. 10.100
  libavfilter     7. 85.100 /  7. 85.100
  libswscale      5.  7.100 /  5.  7.100
  libswresample   3.  7.100 /  3.  7.100
  libpostproc    55.  7.100 / 55.  7.100
[AVHWDeviceContext @ 0x5575878157c0] libva: /usr/lib/jellyfin-ffmpeg/lib/dri/i965_drv_video.so init failed
[AVHWDeviceContext @ 0x5575878157c0] Failed to initialise VAAPI connection: -1 (unknown libva error).
Device creation failed: -5.
Failed to set value '/dev/dri/renderD128' for option 'vaapi_device': Input/output error
Error parsing global options: Input/output error

I have found some folks with similar errors here, suggesting that a new ffmpeg version might be the fix, but I have no clue how to correctly update ffmpeg inside the docker: LINK

 

 

Or perhaps I need to install some non-free intel drivers?!

 

Any help would be highly welcome - thank you!

Still having the issue and cant figure it out :(

 

@saarg Do you have any advice on what I could try please?

Link to comment

I am also "one of them" spending my whole day trying to get HW transcoding to work 😏

As far as I can tell, I did all the recommendations in the various threats, but when I play a .mkv I don't see my HW is being used.

 

What I did so far:

  1. I am using an Intel CPU with QuickSync support
  2. Added the following to my go file using the CA Config File editor and rebooted Unraid
    • modprobe i915
    • chmod -R 777 /dev/dri
  3. Added --device=/dev/dri:/dev/dri to the extra parameters of the Jellyfin docker
  4. Enabled HW transcoding, using VAAPI and restarted Jellyfin
  5. When I hit the command /dev/dri I can access the folder (both from the server Terminal aswell in the Jellyfin _Console)
  6. When I hit the command in the Jellyfin _Console for a HW transcode (thanks @sir_storealot), I see it starts using the HW transcoder using the Intel GPU tools
  7. Even updated from Unraid 6.8.0 to Unraid 6.9.0 b35,rebooted the server, and hit the command to enable i915 support and did steps 5 and 6 again

When I however start playing the same .mkv from the web-browser or the Android app of Jellyfin, it only uses my CPU and shows 'Direct Play'. When I look at the Intel GPU tools, it is also only using the CPU instead of the engine.

 

Sorry for the details, but wanted to show what I did and not just gave up the first time it didn't work...

Any suggestions what I am missing here?

Link to comment
9 minutes ago, macem said:

I am also "one of them" spending my whole day trying to get HW transcoding to work 😏

As far as I can tell, I did all the recommendations in the various threats, but when I play a .mkv I don't see my HW is being used.

 

What I did so far:

  1. I am using an Intel CPU with QuickSync support
  2. Added the following to my go file using the CA Config File editor and rebooted Unraid
    • modprobe i915
    • chmod -R 777 /dev/dri
  3. Added --device=/dev/dri:/dev/dri to the extra parameters of the Jellyfin docker
  4. Enabled HW transcoding, using VAAPI and restarted Jellyfin
  5. When I hit the command /dev/dri I can access the folder (both from the server Terminal aswell in the Jellyfin _Console)
  6. When I hit the command in the Jellyfin _Console for a HW transcode (thanks @sir_storealot), I see it starts using the HW transcoder using the Intel GPU tools
  7. Even updated from Unraid 6.8.0 to Unraid 6.9.0 b35,rebooted the server, and hit the command to enable i915 support and did steps 5 and 6 again

When I however start playing the same .mkv from the web-browser or the Android app of Jellyfin, it only uses my CPU and shows 'Direct Play'. When I look at the Intel GPU tools, it is also only using the CPU instead of the engine.

 

Sorry for the details, but wanted to show what I did and not just gave up the first time it didn't work...

Any suggestions what I am missing here?

 

Which CPU model do you use exactly?

 

I only did the step "modprobe i915" without adding chmod rights.

 

In the docker extra parameters I only entered the following: "--device=/dev/dri"

 

In Jellyfin I choose VAAPI and enter this "/dev/dri/renderD128"

 

Do you only have the integrated GPU or also an external one?

 

I am using Unraid 6.8.3.

Edited by aurevo
Link to comment
1 hour ago, aurevo said:

 

Which CPU model do you use exactly?

 

I only did the step "modprobe i915" without adding chmod rights.

 

In the docker extra parameters I only entered the following: "--device=/dev/dri"

 

In Jellyfin I choose VAAPI and enter this "/dev/dri/renderD128"

 

Do you only have the integrated GPU or also an external one?

 

 

Thanks for the quick response! 

 

I am only using an Intel i5-3470, without any other GPU installed. Changed to what you suggested in the go file without the chmod, and updated the docker extra parameter to '--device=/dev/dri' and rebooted the server. In Jellyfin my setting for VAAPI is '/dev/dri/renderD128'.

 

After the reboot I was still able to enter the folder and also the command in _Console did start the HW enabled transcoding. But when playing from the Android App, it still uses the CPU with 'Direct Play' instead of the HW transcoding.

 

Only thing I noticed is that you suggest the extra parameter as '--device=/dev/dri', while I am using a [space] after the [=] sign, which would result in '--device=/dev/dri'. When I tried to remove this space before, I would get an error and needed to reinstall the docker, but now I am able to save the docker. The result however is only a change from 'Direct Play' to 'Direct Streaming', but still without using the HW transcoding when looking at Intel GPU Tools. 

 

 

Edited by macem
Link to comment
16 hours ago, macem said:

Only thing I noticed is that you suggest the extra parameter as '--device=/dev/dri', while I am using a [space] after the [=] sign, which would result in '--device=/dev/dri'. When I tried to remove this space before, I would get an error and needed to reinstall the docker, but now I am able to save the docker. The result however is only a change from 'Direct Play' to 'Direct Streaming', but still without using the HW transcoding when looking at Intel GPU Tools. 

 

 

My understanding is that if the Jellyfin app determines that you can play the video without transcoding (i.e. Direct Streaming), it will prefer that to transcoding.

Link to comment
21 hours ago, Phoenix Down said:

My understanding is that if the Jellyfin app determines that you can play the video without transcoding (i.e. Direct Streaming), it will prefer that to transcoding.

Here I am reading on the forum, testing everything in browser / Android app and still don't understanding what is happening 🙃 But apparently Jellyfin indeed optimises their replay option. When I tried streaming to Chromecast (which I rarely use), I noticed it started to use streaming, which is also displayed in the Intel GPU Tool. Thanks all for ruling out any possible errors for me and the quick responses!!

  • Like 1
Link to comment
1 hour ago, macem said:

Here I am reading on the forum, testing everything in browser / Android app and still don't understanding what is happening 🙃 But apparently Jellyfin indeed optimises their replay option. When I tried streaming to Chromecast (which I rarely use), I noticed it started to use streaming, which is also displayed in the Intel GPU Tool. Thanks all for ruling out any possible errors for me and the quick responses!!

 

A quick question in between, do you own much x265 material?

If so, Jellyfin has problems playing these files directly and transcodes them anyway.

 

Do you have the possibility to try Jellyfin on a Fire TV Stick or Apple TV? Personally I use the Fire TV Stick and have no problems, but I find the Android app very buggy and not reliable. In the browser I also have to struggle with bad performance from time to time and therefore I personally use the Fire TV Stick, as I did with Plex before.

Link to comment
1 hour ago, aurevo said:

 

A quick question in between, do you own much x265 material?

If so, Jellyfin has problems playing these files directly and transcodes them anyway.

 

Do you have the possibility to try Jellyfin on a Fire TV Stick or Apple TV? Personally I use the Fire TV Stick and have no problems, but I find the Android app very buggy and not reliable. In the browser I also have to struggle with bad performance from time to time and therefore I personally use the Fire TV Stick, as I did with Plex before.

My entire library is in HEVC. I use Infuse on Apple TV and have no issues playing them. I also tried the Jellyfin app on the iPhone, which also has no problem playing them. But for some reason, Jellyfin app activates transcoding even though my phone is capable of decoding HEVC in hardware. Infuse will always direct stream the video if the client has the hardware to decode the codec though (which Apple TV does).

Link to comment
  • 2 weeks later...

hi

 

i have a problem with transcode system

i have a quadro M2000 with drivers add "--runtime=nvidia" in field extra parameter and my gpuid in Nvidia Visible Devices: formlike this : "GPU-071aXXXX-XXXX-XXXX-XXXX-XXXXXXX4c04"

i have activated Nvidia NVENC in jellyfin dashboard.

 

but transcoding is made by CPU .

 

PS i use unraid 6.9.0RC35

Link to comment
22 minutes ago, Ossito said:

hi

 

i have a problem with transcode system

i have a quadro M2000 with drivers add "--runtime=nvidia" in field extra parameter and my gpuid in Nvidia Visible Devices: formlike this : "GPU-071aXXXX-XXXX-XXXX-XXXX-XXXXXXX4c04"

i have activated Nvidia NVENC in jellyfin dashboard.

 

but transcoding is made by CPU .

 

PS i use unraid 6.9.0RC35

Have you read the support thread (second post):

 

Have you also created the variable driver capabilities?

Link to comment

yes i read the second post of this thread.

 

"We've made it easier to get Nvidia & iGPU hardware trancoding working with this container.  This post will detail what you need to do to use either of these in your container.

 

Nvidia

1.  Install the Unraid Nvidia Plugin, download the version of Unraid required containing the Nvidia drivers and reboot 

2.  Add the Jellyfin container and add --runtime=nvidia to extra parameters (switch on advanced template view) and copy your GPU UUID to the pre-existing NVIDIA_VISIBLE_DEVICES parameter.  There is no need to utilise the NVIDIA_DRIVER_CAPABILITIES parameter any more.  This is handled by our container."

 

 

I doesn't create variable "NVIDIA_DRIVER_CAPABILITIES" as the post you pin say.

this is exactly what i explain in my post but doesn't work so what's wrong?

 

Edited by Ossito
syntax error
Link to comment

[email protected]:# /usr/local/emhttp/plugins/dynamix.docker.manager/scripts/docker run -d --name='jellyfin' --net='bridge' -e TZ="Europe/Paris" -e HOST_OS="Unraid" -e 'NVIDIA_VISIBLE_DEVICES'='GPU-071a9569-64c0-8220-8c9a-639efb524c04' -e 'VIRTUAL_HOST'='jellyfin.xxxxxx.xxxx' -e 'LETSENCRYPT_HOST'=' jellyfin.xxxxxx.xxxx' -e 'VIRTUAL_PORT'='8096' -e 'LETSENCRYPT_PORT'='8920' -e 'NVIDIA_DRIVER_CAPABILITIES'='all' -e 'PUID'='99' -e 'PGID'='100' -p '8096:8096/tcp' -p '8920:8920/tcp' -p '1900:1900/udp' -v '/mnt/user/Library/Movies':'/movies':'rw' -v '/mnt/user/Library/Series':'/tv':'rw' -v '/mnt/user/Library/Music':'/music':'rw' -v '/tmp':'/trancode':'rw' -v '/mnt/user/Thornhill/docker/jellyfin':'/config':'rw' --runtime=nvidia 'linuxserver/jellyfin'

b99696766850cfd1dcad107cea9ecf30ace0e4c07db43efa340f797e1191da35

The command finished successfully! 

 

i see this page to set transcodepage in jellyfin

trancode 1.PNG

trancode 2.PNG

Link to comment
12 hours ago, Ossito said:

[email protected]:# /usr/local/emhttp/plugins/dynamix.docker.manager/scripts/docker run -d --name='jellyfin' --net='bridge' -e TZ="Europe/Paris" -e HOST_OS="Unraid" -e 'NVIDIA_VISIBLE_DEVICES'='GPU-071a9569-64c0-8220-8c9a-639efb524c04' -e 'VIRTUAL_HOST'='jellyfin.xxxxxx.xxxx' -e 'LETSENCRYPT_HOST'=' jellyfin.xxxxxx.xxxx' -e 'VIRTUAL_PORT'='8096' -e 'LETSENCRYPT_PORT'='8920' -e 'NVIDIA_DRIVER_CAPABILITIES'='all' -e 'PUID'='99' -e 'PGID'='100' -p '8096:8096/tcp' -p '8920:8920/tcp' -p '1900:1900/udp' -v '/mnt/user/Library/Movies':'/movies':'rw' -v '/mnt/user/Library/Series':'/tv':'rw' -v '/mnt/user/Library/Music':'/music':'rw' -v '/tmp':'/trancode':'rw' -v '/mnt/user/Thornhill/docker/jellyfin':'/config':'rw' --runtime=nvidia 'linuxserver/jellyfin'

b99696766850cfd1dcad107cea9ecf30ace0e4c07db43efa340f797e1191da35

The command finished successfully! 

 

i see this page to set transcodepage in jellyfin

trancode 1.PNG

trancode 2.PNG

Does jellyfin say that it's transcoding the video? Also which codec is the file?

 

Next time you post a screenshot, make sure it's in English.

Link to comment

log when a h264 or h265 file is playing

 

[10:38:23] [ERR] [111] Emby.Server.Implementations.HttpServer.HttpListenerHost: Error processing request: A task was canceled. URL: http://192.168.1.200:8096/videos/1fa06f91-ed12-36b1-bf0b-213473c6df16/hls1/main/1.ts?DeviceId=TW96aWxsYS81LjAgKFdpbmRvd3MgTlQgMTAuMDsgV2luNjQ7IHg2NCkgQXBwbGVXZWJLaXQvNTM3LjM2IChLSFRNTCwgbGlrZSBHZWNrbykgQ2hyb21lLzg2LjAuNDI0MC4xMTEgU2FmYXJpLzUzNy4zNiBPUFIvNzIuMC4zODE1LjE4NnwxNjA0Nzc3Nzg3NzY2&MediaSourceId=1fa06f91ed1236b1bf0b213473c6df16&VideoCodec=h264&AudioCodec=mp3,aac&AudioStreamIndex=1&VideoBitrate=139552000&AudioBitrate=448000&PlaySessionId=f7824a7bbf314fd4aa59707015ca351b&TranscodingMaxAudioChannels=2&RequireAvc=false&Tag=8e1e825a28c90b216ca169095d53dfcb&SegmentContainer=ts&MinSegments=1&BreakOnNonKeyFrames=True&h264-profile=high,main,baseline,constrainedbaseline,high10&h264-level=51&h264-deinterlace=true&TranscodeReasons=VideoCodecNotSupported

 

 

[10:39:23] [INF] [38] MediaBrowser.Api.ApiEntryPoint: Transcoding kill timer stopped for JobId 639db17d8cbb4342bf7c837606e8d6ab PlaySessionId f7824a7bbf314fd4aa59707015ca351b. Killing transcoding

 

 

 

 

 

Link to comment

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

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.