saarg Posted November 9, 2020 Share Posted November 9, 2020 4 minutes ago, swingline said: I am having issues with "Scan Media Library failed" 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. Quote Link to comment
swingline Posted November 9, 2020 Share Posted November 9, 2020 Just now, saarg said: You should report it to the jellyfin guys. 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. Quote Link to comment
saarg Posted November 9, 2020 Share Posted November 9, 2020 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. Quote Link to comment
sir_storealot Posted November 13, 2020 Share Posted November 13, 2020 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: root@095b9610a70f:/# 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? Quote Link to comment
macem Posted November 15, 2020 Share Posted November 15, 2020 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: I am using an Intel CPU with QuickSync support Added the following to my go file using the CA Config File editor and rebooted Unraid modprobe i915 chmod -R 777 /dev/dri Added --device=/dev/dri:/dev/dri to the extra parameters of the Jellyfin docker Enabled HW transcoding, using VAAPI and restarted Jellyfin When I hit the command /dev/dri I can access the folder (both from the server Terminal aswell in the Jellyfin _Console) 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 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? Quote Link to comment
aurevo Posted November 15, 2020 Share Posted November 15, 2020 (edited) 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: I am using an Intel CPU with QuickSync support Added the following to my go file using the CA Config File editor and rebooted Unraid modprobe i915 chmod -R 777 /dev/dri Added --device=/dev/dri:/dev/dri to the extra parameters of the Jellyfin docker Enabled HW transcoding, using VAAPI and restarted Jellyfin When I hit the command /dev/dri I can access the folder (both from the server Terminal aswell in the Jellyfin _Console) 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 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 November 15, 2020 by aurevo Quote Link to comment
macem Posted November 15, 2020 Share Posted November 15, 2020 (edited) 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 November 15, 2020 by macem Quote Link to comment
Phoenix Down Posted November 16, 2020 Share Posted November 16, 2020 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. Quote Link to comment
macem Posted November 17, 2020 Share Posted November 17, 2020 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!! 1 Quote Link to comment
aurevo Posted November 17, 2020 Share Posted November 17, 2020 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. Quote Link to comment
Phoenix Down Posted November 17, 2020 Share Posted November 17, 2020 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). Quote Link to comment
macem Posted November 17, 2020 Share Posted November 17, 2020 Sorry @auvevo, I don't have anything else than an Android device, Chromecast or LG WebOS (which sadly doesn't have a dedicated Jellyfin app released yet for testing). In general I use H.264 which is good enough for me, but notice @Phoenix Down suggested an alternative. Quote Link to comment
Ossito Posted December 1, 2020 Share Posted December 1, 2020 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 Quote Link to comment
ich777 Posted December 1, 2020 Share Posted December 1, 2020 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? Quote Link to comment
Ossito Posted December 1, 2020 Share Posted December 1, 2020 (edited) 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 December 1, 2020 by Ossito syntax error Quote Link to comment
ich777 Posted December 1, 2020 Share Posted December 1, 2020 4 minutes ago, Ossito said: yes i read the second post of this thread. That's not the same thread. 5 minutes ago, Ossito said: I doesn't create variable "NVIDIA_DRIVER_CAPABILITIES" as the post you pin say. You have to create it manually. Quote Link to comment
Ossito Posted December 1, 2020 Share Posted December 1, 2020 ok i added the variable NVIDIA_DRIVER_CAPABILITIES=all and restart the container but still no working when i check the nvidia smi card still unused. Quote Link to comment
saarg Posted December 1, 2020 Share Posted December 1, 2020 1 hour ago, Ossito said: ok i added the variable NVIDIA_DRIVER_CAPABILITIES=all and restart the container but still no working when i check the nvidia smi card still unused. Post the docker run command and screenshot of the transcoding settings in jellyfin. Quote Link to comment
Ossito Posted December 1, 2020 Share Posted December 1, 2020 root@localhost:# /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 Quote Link to comment
saarg Posted December 2, 2020 Share Posted December 2, 2020 12 hours ago, Ossito said: root@localhost:# /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 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. Quote Link to comment
Ossito Posted December 2, 2020 Share Posted December 2, 2020 my bad for frenchscreanshot. i try mpeg4 h264 h265.... when i play any files GPU is inactive and CPU used like this screan shot. Quote Link to comment
Ossito Posted December 2, 2020 Share Posted December 2, 2020 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 Quote Link to comment
Ossito Posted December 2, 2020 Share Posted December 2, 2020 when i play mpeg file transcoding seems working Quote Link to comment
saarg Posted December 2, 2020 Share Posted December 2, 2020 13 hours ago, Ossito said: when i play mpeg file transcoding seems working Again I ask you, what does jellyfin say it's doing? Does it say transcoding or direct play? Quote Link to comment
aurevo Posted December 7, 2020 Share Posted December 7, 2020 On 11/9/2020 at 7:21 AM, saarg said: You should report it to the jellyfin guys. Where should we report it? Tried here, on Reddit and on Github and until today no answer on this error. Quote Link to comment
Recommended Posts
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.