[Support] Linuxserver.io - Jellyfin

Recommended Posts

Hello all...

Like many of you I have been trying to get HW transcoding up and running but playback fails with 


[ERR] [104] Jellyfin.Server.Middleware.ExceptionMiddleware: Error processing request: Could not find file '/config/data/transcodes/a415......(long file path would continue on here)


I can see that the nvidia drivers are loaded inside of the docker... The next thing on my list of things to try is setting up the OpenCL Device... But in trying to find that out in over 6h of videos and posts... I cant narrow that down or even if this is the cause of the problem... I also did read in a post that opencl is going away soon in favor of coda? is that right?


OpenCL Device:

This is the OpenCL device that is used for tonemapping. The left side of the dot is the platform number, and the right side is the device number on the platform. The default value is 0.0. The ffmpeg application file containing the OpenCL hardware acceleration method is required.


Again thank you for any assistance... I didnt want to admit defeat and ask for help... 

Edited by mathomas3
Link to comment
  • 2 weeks later...
  • 2 weeks later...

My transcoding is no longer working. I had a cache drive error a few days ago, and since fixing it,  when i play a video with transcode on, it is distorted. If i play a video in Plex with transcode on, it works as expected. 

When i play a video in Jellyfin, with transcode on, Nvidia is not recognizing it. I dont see it in gpu statistics, and i dont see it running in the terminal either. 

I have done a fresh install of Jellyfin, with the same results. I have done a fresh install of my nvidia driver with the latest version, and same results. Rebooted my server several times.

I am on unraid 6.9.2 and my driver version is 510.47.03

Any help would be greatly appreciated. 

Link to comment
  • 3 weeks later...

Hello Friends,

I'm a new UnRAID user, slowly learning "the way of the land" of home servers, and UnRAID 6.9.2 in particular.

I would like to install Jellyfin on my UnRAID server and use it alongside Nginx proxy manager for better protection.

I installed jc21's Nginx-Proxy-Manager-Official app from UnRAID's community apps store.

I also installed linuxserver's Jellyfin app.

I managed to setup the Jellyfin docker app and it's running using http port 8096, but I can't figure out how to configure it to work with Nginx using https port 8920.

These are the steps I took so far:

Using Cloudflare I created a CNAME subdomain media.[mydomain.com].

Next, I logged into the Nginx web client and added the following proxy host:

    Domain name: media.[mydomain.com].

    Scheme: http

    Forward Hostname / IP: [my local UnRAID server IP address]

    Forward Port: 8920 (as I setup in the jellyfin docker app installation for https).
    I turned on: cache assets, block common exploits and websockets support.

    Under SSL, I created a new SSL certificate with Let's Encrypt and turned on: Force SSL and HTTP/2 Support.

After this Nginx is now showing the host subdomain status as "online" with Let's Encrypt SSL.


However, I am unsure how to continue to set up the SSL certificate under Jellyfin Dashboard->Networking.


I found this explanation on the Jellyfin documentation: https://jellyfin.org/docs/general/networking/nginx.html , but I'm not sure it's relevant to the Nginx docker app I installed, because I am using the web client and I don't have the following folder on my server: /etc/nginx/conf.d. Which means I cannot create the jellyfin.conf file they described.


Is anyone familiar with a tutorial to setup jellyfin's HTTPS remote access?


Hope someone can help 🙏

Link to comment
  • 4 months later...
  • 3 weeks later...
  • 2 months later...
On 8/3/2022 at 6:32 PM, dollabillz said:

Did a fresh install jellyfin and there is no place for me to enter in the GPU UUID. Did it get removed for some reason?

All I had to do to use my nvidia card was add


--gpus all


in the extra parameters. The other variables are handled by the docker image. You don't need them anymore.


To test if it works, open the unraid terminal and run this command:


docker exec -it jellyfin nvidia-smi

Edited by ontarian_frog
Link to comment
  • 4 weeks later...
  • 2 weeks later...

I'm trying to change the tab name from "Jellyfin". Found a guide where you edit a .js file in */jellyfin/web but there is no /web under /mnt/user/appdata/jellyfin


So I looked at the log of the jellyfin docker: 

[16:43:07] [INF] [1] Main: Environment Variables: ["[JELLYFIN_LOG_DIR, /config/log]", "[JELLYFIN_CACHE_DIR, /config/cache]", "[JELLYFIN_CONFIG_DIR, /config]", "[JELLYFIN_DATA_DIR, /config/data]"]
[16:43:07] [INF] [1] Main: Arguments: ["/usr/lib/jellyfin/bin/jellyfin.dll", "--ffmpeg=/usr/lib/jellyfin-ffmpeg/ffmpeg", "--webdir=/usr/share/jellyfin/web"]
[16:43:07] [INF] [1] Main: Program data path: /config/data
[16:43:07] [INF] [1] Main: Web resources path: /usr/share/jellyfin/web
[16:43:07] [INF] [1] Main: Application directory: /usr/lib/jellyfin/bin/
[16:43:07] [INF] [1] Emby.Server.Implementations.AppBase.BaseConfigurationManager: Setting cache path: /config/cache


But those paths doesn't exist  
/config doesn't exist

/usr/lib/jellyfin doesn't exist

/usr/share/jellyfin doesn't exist. 


Where do I find the */jellyfin/web directory? 

I guess it's because it's a docker and I have to enter "the docker's closed system" first somehow? Or do I have to rebuild a docker from scratch to make changes to files belonging to the application that is "docker'd"?


Edit: Alternatively straight to what I want to end up with:
- How do I change what's shown in the browser tab for people who visit my site?
- How do I change this icon?

Edited by tshorts
Link to comment
  • 3 weeks later...

Anytime I try and turn on HW transcending jellyfin goes to shit and get these errors in logs


[14:27:20] [ERR] [49] MediaBrowser.MediaEncoding.Encoder.MediaEncoder: Codec Type attachment unknown. The stream (index: 8) will be ignored. Warning: Subsequential streams will have a wrong stream specifier!
[14:27:20] [ERR] [49] MediaBrowser.MediaEncoding.Encoder.MediaEncoder: Codec Type attachment unknown. The stream (index: 9) will be ignored. Warning: Subsequential streams will have a wrong stream specifier!
[14:27:20] [ERR] [49] MediaBrowser.MediaEncoding.Encoder.MediaEncoder: Codec Type attachment unknown. The stream (index: 10) will be ignored. Warning: Subsequential streams will have a wrong stream specifier!


Link to comment
  • 2 weeks later...

I'm migrating Jellyfin from my Synology DS918+ (Intel Celeron J3455, Apollo Lake) to a new Server (Intel i3-9100).

HW transcoding is working fine, VPP tone mapping for HDR10 files seems to work as well for both QuickSync and VAAPI. However, I can't get the "regular" tone mapping to work. Interestingly, on my Synology HDR tone mapping seems to work for the same files.


In Unraid the pop up error is: "This client isn't compatible with the media and the server isn't sending a compatible media format."

And the log seems a bit cryptic to me:


[09:02:34] [INF] [61] Jellyfin.Api.Helpers.MediaInfoHelper: User policy for root. EnablePlaybackRemuxing: True EnableVideoPlaybackTranscoding: True EnableAudioPlaybackTranscoding: True
[09:02:34] [INF] [61] Jellyfin.Api.Helpers.MediaInfoHelper: StreamBuilder.BuildVideoItem( Profile=Anonymous Profile, Path=/data/tvshows/VIDEOFILE.mkv, AudioStreamIndex=null, SubtitleStreamIndex=null ) => ( PlayMethod=Transcode, TranscodeReason=VideoCodecNotSupported ) media:/videos/80a1a2ee-e5b1-8849-15a8-76422f61c3c2/master.m3u8?MediaSourceId=80a1a2eee5b1884915a876422f61c3c2&VideoCodec=h264&AudioCodec=aac,mp3&AudioStreamIndex=1&VideoBitrate=139616000&AudioBitrate=384000&MaxFramerate=23.976025&api_key=<token>&SubtitleMethod=Encode&TranscodingMaxAudioChannels=2&RequireAvc=false&Tag=3d052b5de4216ff20da92c6ba0bacea0&SegmentContainer=ts&MinSegments=1&BreakOnNonKeyFrames=True&hevc-level=150&hevc-videobitdepth=10&hevc-profile=main10&h264-profile=high,main,baseline,constrainedbaseline&h264-rangetype=SDR&h264-level=52&h264-deinterlace=true&TranscodeReasons=VideoCodecNotSupported
[09:02:34] [INF] [32] Jellyfin.Api.Controllers.DynamicHlsController: Current HLS implementation doesn't support non-keyframe breaks but one is requested, ignoring that request
[09:02:34] [INF] [32] Jellyfin.Api.Helpers.TranscodingJobHelper: /usr/lib/jellyfin-ffmpeg/ffmpeg -analyzeduration 200M -init_hw_device vaapi=va:,driver=iHD,kernel_driver=i915 -init_hw_device [email protected] -init_hw_device [email protected] -filter_hw_device qs -hwaccel vaapi -hwaccel_output_format vaapi -autorotate 0 -i file:"/data/tvshows/VIDEOFILE.mkv" -autoscale 0 -map_metadata -1 -map_chapters -1 -threads 0 -map 0:0 -map 0:1 -map -0:s -codec:v:0 h264_qsv -async_depth 1 -preset 7 -look_ahead 0 -b:v 27328295 -maxrate 27328295 -bufsize 54656590 -profile:v:0 high -level 51 -g:v:0 72 -keyint_min:v:0 72 -vf "setparams=color_primaries=bt2020:color_trc=smpte2084:colorspace=bt2020nc,hwmap=derive_device=opencl,tonemap_opencl=format=nv12:p=bt709:t=bt709:m=bt709:tonemap=bt2390:peak=100:desat=0,hwmap=derive_device=qsv:reverse=1:extra_hw_frames=16,format=qsv" -codec:a:0 libfdk_aac -ac 2 -ab 384000 -af "volume=2" -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 "/config/data/transcodes/22fd25d47d09695e24ef966a984c7488%d.ts" -hls_playlist_type vod -hls_list_size 0 -y "/config/data/transcodes/22fd25d47d09695e24ef966a984c7488.m3u8"
[09:02:34] [ERR] [32] Jellyfin.Api.Helpers.TranscodingJobHelper: FFmpeg exited with code 1
[09:02:34] [ERR] [32] Jellyfin.Server.Middleware.ExceptionMiddleware: Error processing request. URL GET /videos/80a1a2ee-e5b1-8849-15a8-76422f61c3c2/hls1/main/0.ts.
MediaBrowser.Common.FfmpegException: FFmpeg exited with code 1
   at Jellyfin.Api.Helpers.TranscodingJobHelper.StartFfMpeg(StreamState state, String outputPath, String commandLineArguments, HttpRequest request, TranscodingJobType transcodingJobType, CancellationTokenSource cancellationTokenSource, String workingDirectory)
   at Jellyfin.Api.Controllers.DynamicHlsController.GetDynamicSegment(StreamingRequestDto streamingRequest, Int32 segmentId)
   at Jellyfin.Api.Controllers.DynamicHlsController.GetHlsVideoSegment(Guid itemId, String playlistId, Int32 segmentId, String container, Int64 runtimeTicks, Int64 actualSegmentLengthTicks, Nullable`1 static, String params, String tag, String deviceProfileId, String playSessionId, String segmentContainer, Nullable`1 segmentLength, Nullable`1 minSegments, String mediaSourceId, String deviceId, String audioCodec, Nullable`1 enableAutoStreamCopy, Nullable`1 allowVideoStreamCopy, Nullable`1 allowAudioStreamCopy, Nullable`1 breakOnNonKeyFrames, Nullable`1 audioSampleRate, Nullable`1 maxAudioBitDepth, Nullable`1 audioBitRate, Nullable`1 audioChannels, Nullable`1 maxAudioChannels, String profile, String level, Nullable`1 framerate, Nullable`1 maxFramerate, Nullable`1 copyTimestamps, Nullable`1 startTimeTicks, Nullable`1 width, Nullable`1 height, Nullable`1 maxWidth, Nullable`1 maxHeight, Nullable`1 videoBitRate, Nullable`1 subtitleStreamIndex, Nullable`1 subtitleMethod, Nullable`1 maxRefFrames, Nullable`1 maxVideoBitDepth, Nullable`1 requireAvc, Nullable`1 deInterlace, Nullable`1 requireNonAnamorphic, Nullable`1 transcodingMaxAudioChannels, Nullable`1 cpuCoreLimit, String liveStreamId, Nullable`1 enableMpegtsM2TsMode, String videoCodec, String subtitleCodec, String transcodeReasons, Nullable`1 audioStreamIndex, Nullable`1 videoStreamIndex, Nullable`1 context, Dictionary`2 streamOptions)
   at lambda_method900(Closure , Object )
   at Microsoft.AspNetCore.Mvc.Infrastructure.ActionMethodExecutor.TaskOfActionResultExecutor.Execute(IActionResultTypeMapper mapper, ObjectMethodExecutor executor, Object controller, Object[] arguments)
   at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.<InvokeActionMethodAsync>g__Awaited|12_0(ControllerActionInvoker invoker, ValueTask`1 actionResultValueTask)
   at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.<InvokeNextActionFilterAsync>g__Awaited|10_0(ControllerActionInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)
   at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Rethrow(ActionExecutedContextSealed context)
   at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted)
   at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.<InvokeInnerFilterAsync>g__Awaited|13_0(ControllerActionInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)
   at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.<InvokeNextResourceFilter>g__Awaited|25_0(ResourceInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)
   at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.Rethrow(ResourceExecutedContextSealed context)
   at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted)
   at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.<InvokeFilterPipelineAsync>g__Awaited|20_0(ResourceInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)
   at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.<InvokeAsync>g__Awaited|17_0(ResourceInvoker invoker, Task task, IDisposable scope)
   at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.<InvokeAsync>g__Awaited|17_0(ResourceInvoker invoker, Task task, IDisposable scope)
   at Microsoft.AspNetCore.Routing.EndpointMiddleware.<Invoke>g__AwaitRequestTask|6_0(Endpoint endpoint, Task requestTask, ILogger logger)
   at Jellyfin.Server.Middleware.ServerStartupMessageMiddleware.Invoke(HttpContext httpContext, IServerApplicationHost serverApplicationHost, ILocalizationManager localizationManager)
   at Jellyfin.Server.Middleware.WebSocketHandlerMiddleware.Invoke(HttpContext httpContext, IWebSocketManager webSocketManager)
   at Jellyfin.Server.Middleware.IpBasedAccessValidationMiddleware.Invoke(HttpContext httpContext, INetworkManager networkManager)
   at Jellyfin.Server.Middleware.LanFilteringMiddleware.Invoke(HttpContext httpContext, INetworkManager networkManager, IServerConfigurationManager serverConfigurationManager)
   at Microsoft.AspNetCore.Authorization.Policy.AuthorizationMiddlewareResultHandler.HandleAsync(RequestDelegate next, HttpContext context, AuthorizationPolicy policy, PolicyAuthorizationResult authorizeResult)
   at Microsoft.AspNetCore.Authorization.AuthorizationMiddleware.Invoke(HttpContext context)
   at Jellyfin.Server.Middleware.QueryStringDecodingMiddleware.Invoke(HttpContext httpContext)
   at Swashbuckle.AspNetCore.ReDoc.ReDocMiddleware.Invoke(HttpContext httpContext)
   at Swashbuckle.AspNetCore.SwaggerUI.SwaggerUIMiddleware.Invoke(HttpContext httpContext)
   at Swashbuckle.AspNetCore.Swagger.SwaggerMiddleware.Invoke(HttpContext httpContext, ISwaggerProvider swaggerProvider)
   at Microsoft.AspNetCore.Authentication.AuthenticationMiddleware.Invoke(HttpContext context)
   at Jellyfin.Server.Middleware.RobotsRedirectionMiddleware.Invoke(HttpContext httpContext)
   at Jellyfin.Server.Middleware.LegacyEmbyRouteRewriteMiddleware.Invoke(HttpContext httpContext)
   at Microsoft.AspNetCore.ResponseCompression.ResponseCompressionMiddleware.InvokeCore(HttpContext context)
   at Jellyfin.Server.Middleware.ResponseTimeMiddleware.Invoke(HttpContext context, IServerConfigurationManager serverConfigurationManager)
   at Jellyfin.Server.Middleware.ExceptionMiddleware.Invoke(HttpContext context)



Do you guys have any idea what the issue might be?



I still don't know what the issue was, but everything works fine with the official Jellyfin Docker, so no need to try to troubleshoot here.


Edited by qwerty-no
Link to comment
  • 2 weeks later...

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.

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.