Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 22 Nov 2023 00:39:05 +0000
From:      bugzilla-noreply@freebsd.org
To:        ports-bugs@FreeBSD.org
Subject:   [Bug 275249] multimedia/jellyfin 14.0-RELEASE runtime issues
Message-ID:  <bug-275249-7788@https.bugs.freebsd.org/bugzilla/>

next in thread | raw e-mail | index | archive | help
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=3D275249

            Bug ID: 275249
           Summary: multimedia/jellyfin 14.0-RELEASE runtime issues
           Product: Ports & Packages
           Version: Latest
          Hardware: Any
                OS: Any
            Status: New
          Severity: Affects Only Me
          Priority: ---
         Component: Individual Port(s)
          Assignee: ports-bugs@FreeBSD.org
          Reporter: pete@nomadlogic.org
                CC: michiel@vanbaak.eu
             Flags: maintainer-feedback?(michiel@vanbaak.eu)
                CC: michiel@vanbaak.eu

Hey there, I've just updated a system from 13.2-RELEASE to 14.0-RELEASE and
have run into a few problems with Jellyfin 10.8.10.

1) It looks like with the upgrade to OpenSSL-3 on 14.0 you need to install =
the
openssl111 port to get Jellyfin running (when installed from packages at
least).  Without that installed it's crash on startup like so:
[00:11:31] [INF] [4] Main: Kestrel listening on Any IP4 Address
No usable version of libssl was found
Abort trap


2) After installing the legacy openssl pkg it starts up as expected and the
webUI loads.  unfortunately it looks like ffmpeg has issues trying to play =
back
media.  I uninstalled the ffmpeg pkg, and reinstalled - and also verified t=
hat
I can run ffmpeg in a shell.

This is the error in the logs when i start up jellyfin:

[2023-11-22 00:17:04.193 +00:00] [ERR] [1]
MediaBrowser.MediaEncoding.Encoder.MediaEncoder: Error validating encoder
System.ComponentModel.Win32Exception (2): An error occurred trying to start
process 'ffmpeg' with working directory '/'. No such file or directory
   at System.Diagnostics.Process.ForkAndExecProcess(ProcessStartInfo startI=
nfo,
String resolvedFilename, String[] argv, String[] envp, String cwd, Boolean
setCredentials, UInt32 userId, UInt32 groupId, UInt32[] groups, Int32& stdi=
nFd,
Int32& stdoutFd, Int32& stderrFd, Boolean usesTerminal, Boolean throwOnNoEx=
ec)
   at System.Diagnostics.Process.StartCore(ProcessStartInfo startInfo)
   at System.Diagnostics.Process.Start()
   at
MediaBrowser.MediaEncoding.Encoder.EncoderValidator.GetProcessOutput(String
path, String arguments, Boolean readStdErr, String testKey)
   at MediaBrowser.MediaEncoding.Encoder.EncoderValidator.ValidateVersion()
[2023-11-22 00:17:04.212 +00:00] [WRN] [1]
MediaBrowser.MediaEncoding.Encoder.MediaEncoder: FFmpeg: Failed version che=
ck:
"ffmpeg"
[2023-11-22 00:17:04.228 +00:00] [INF] [1]
MediaBrowser.MediaEncoding.Encoder.MediaEncoder: FFmpeg: ""


Then i get this error when I attempt to playback media:

2023-11-22 00:18:02.232 +00:00] [ERR] [26]
Jellyfin.Server.Middleware.ExceptionMiddleware: Error processing request. U=
RL
"GET" "/videos/a22bbeb0-697b-7b60-74dc-d5261e29e4e6/hls1/main/0.ts".
System.ArgumentException: FFmpeg path not set.
   at Jellyfin.Api.Helpers.TranscodingJobHelper.StartFfMpeg(StreamState sta=
te,
String outputPath, String commandLineArguments, HttpRequest request,
TranscodingJobType transcodingJobType, CancellationTokenSource
cancellationTokenSource, String workingDirectory)
   at
Jellyfin.Api.Controllers.DynamicHlsController.GetDynamicSegment(StreamingRe=
questDto
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 par=
ams,
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, Stri=
ng
level, Nullable`1 framerate, Nullable`1 maxFramerate, Nullable`1
copyTimestamps, Nullable`1 startTimeTicks, Nullable`1 width, Nullable`1 hei=
ght,
Nullable`1 maxWidth, Nullable`1 maxHeight, Nullable`1 videoBitRate, Nullabl=
e`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 enableMpegtsM2TsMo=
de,
String videoCodec, String subtitleCodec, String transcodeReasons, Nullable`1
audioStreamIndex, Nullable`1 videoStreamIndex, Nullable`1 context, Dictiona=
ry`2
streamOptions)
   at lambda_method1068(Closure , Object )
   at
Microsoft.AspNetCore.Mvc.Infrastructure.ActionMethodExecutor.TaskOfActionRe=
sultExecutor.Execute(IActionResultTypeMapper
mapper, ObjectMethodExecutor executor, Object controller, Object[] argument=
s)
   at
Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.<InvokeActi=
onMethodAsync>g__Awaited|12_0(ControllerActionInvoker
invoker, ValueTask`1 actionResultValueTask)
   at
Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.<InvokeNext=
ActionFilterAsync>g__Awaited|10_0(ControllerActionInvoker
invoker, Task lastTask, State next, Scope scope, Object state, Boolean
isCompleted)
   at
Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Rethrow(Act=
ionExecutedContextSealed
context)
   at
Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Next(State&
next, Scope& scope, Object& state, Boolean& isCompleted)
   at
Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.InvokeInner=
FilterAsync()
--- End of stack trace from previous location ---
   at
Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.<InvokeNextResource=
Filter>g__Awaited|25_0(ResourceInvoker
invoker, Task lastTask, State next, Scope scope, Object state, Boolean
isCompleted)
   at
Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.Rethrow(ResourceExe=
cutedContextSealed
context)
   at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.Next(State& n=
ext,
Scope& scope, Object& state, Boolean& isCompleted)
   at
Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.InvokeFilterPipelin=
eAsync()
--- End of stack trace from previous location ---
   at
Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.<InvokeAsync>g__Awa=
ited|17_0(ResourceInvoker
invoker, Task task, IDisposable scope)
   at
Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.<InvokeAsync>g__Awa=
ited|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, ILocalizationMan=
ager
localizationManager)
   at Jellyfin.Server.Middleware.WebSocketHandlerMiddleware.Invoke(HttpCont=
ext
httpContext, IWebSocketManager webSocketManager)
   at
Jellyfin.Server.Middleware.IpBasedAccessValidationMiddleware.Invoke(HttpCon=
text
httpContext, INetworkManager networkManager)
   at Jellyfin.Server.Middleware.LanFilteringMiddleware.Invoke(HttpContext
httpContext, INetworkManager networkManager, IServerConfigurationManager
serverConfigurationManager)
   at
Microsoft.AspNetCore.Authorization.Policy.AuthorizationMiddlewareResultHand=
ler.HandleAsync(RequestDelegate
next, HttpContext context, AuthorizationPolicy policy,
PolicyAuthorizationResult authorizeResult)
   at
Microsoft.AspNetCore.Authorization.AuthorizationMiddleware.Invoke(HttpConte=
xt
context)
   at
Jellyfin.Server.Middleware.QueryStringDecodingMiddleware.Invoke(HttpContext
httpContext)
   at Swashbuckle.AspNetCore.ReDoc.ReDocMiddleware.Invoke(HttpContext
httpContext)
   at Swashbuckle.AspNetCore.SwaggerUI.SwaggerUIMiddleware.Invoke(HttpConte=
xt
httpContext)
   at Swashbuckle.AspNetCore.Swagger.SwaggerMiddleware.Invoke(HttpContext
httpContext, ISwaggerProvider swaggerProvider)
   at
Microsoft.AspNetCore.Authentication.AuthenticationMiddleware.Invoke(HttpCon=
text
context)
   at Jellyfin.Server.Middleware.RobotsRedirectionMiddleware.Invoke(HttpCon=
text
httpContext)
   at
Jellyfin.Server.Middleware.LegacyEmbyRouteRewriteMiddleware.Invoke(HttpCont=
ext
httpContext)
   at
Microsoft.AspNetCore.ResponseCompression.ResponseCompressionMiddleware.Invo=
keCore(HttpContext
context)
   at Jellyfin.Server.Middleware.ResponseTimeMiddleware.Invoke(HttpContext
context, IServerConfigurationManager serverConfigurationManager)
   at Jellyfin.Server.Middleware.ExceptionMiddleware.Invoke(HttpContext
context)


(interestingly - media i've previously played back works, but new video fil=
es
throw this error along with an Playback Error in the UI).

--=20
You are receiving this mail because:
You are the assignee for the bug.=



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?bug-275249-7788>