Jellyfin Forum
SOLVED: Error Identifying and Playing Second Version of Movie - Printable Version

+- Jellyfin Forum (https://forum.jellyfin.org)
+-- Forum: Support (https://forum.jellyfin.org/f-support)
+--- Forum: Troubleshooting (https://forum.jellyfin.org/f-troubleshooting)
+--- Thread: SOLVED: Error Identifying and Playing Second Version of Movie (/t-solved-error-identifying-and-playing-second-version-of-movie)



Error Identifying and Playing Second Version of Movie - commodore - 2024-11-05

I am running into issues with Jellyfin identifying the second version of a movie. And yes, I followed the steps here with what I believe to be the proper naming convention:

Subfolder:
Lord of the Rings The Return of the King (2003)

Movie Versions:
Lord of the Rings The Return of the King (2003) - Extended Edition.mkv
Lord of the Rings The Return of the King (2003) - Theatrical Edition.mkv

The versions both appear to be grouped together, however file data is only loading for the theatrical edition:
   

   

And when I go to play the extended version, I am brought to the splash screen, but it fails to play.

Things I have tried so far:
  • Renaming files
  • Reuploading mkv files
  • Scanning library
  • Refreshing metadata
  • Manually identifying the extended edition, but it does not appear to stick after selecting the correct reference
  • Checking various forum/reddit/stack exchange posts and did not see the same issue. The search engines generally pointed me to filenaming issues
  • A clean install of Jellyfin in a new container
  • Playing the file outside of Jellyfin, which worked as expected

Other relevant info:
Jellyfin version: 10.10.1
How accessing: View Firefox on Ubuntu Machine
Jellyfin config: Running in a ProxMox container with the library stored on a Samba fileshare
Other movies and tv shows play as expected, just not the extended edition for LOTR

Outside of ripping the files again in case there was an issue there or with concatenating the two parts of the movie, is there anything else I should be checking?

Here are the logs of the latest attempt to identify the file:

Code:
[2024-11-05 21:25:10.746 +00:00] [INF] Starting "/usr/lib/jellyfin-ffmpeg/ffprobe" with args "-analyzeduration 200M -probesize 1G -i file:\"/mnt/media/movies/Lord of the Rings The Return of the King (2003)/Lord of the Rings The Return of the King (2003) - Extended Edition.mkv\" -threads 0 -v warning -print_format json -show_streams -show_chapters -show_format"
[2024-11-05 21:25:12.169 +00:00] [ERR] Error in "Probe Provider"
System.Text.Json.JsonException: The input does not contain any JSON tokens. Expected the input to start with a valid JSON token, when isFinalBlock is true. Path: $ | LineNumber: 0 | BytePositionInLine: 0.
---> System.Text.Json.JsonReaderException: The input does not contain any JSON tokens. Expected the input to start with a valid JSON token, when isFinalBlock is true. LineNumber: 0 | BytePositionInLine: 0.
  at System.Text.Json.ThrowHelper.ThrowJsonReaderException(Utf8JsonReader& json, ExceptionResource resource, Byte nextByte, ReadOnlySpan`1 bytes)
  at System.Text.Json.Serialization.JsonConverter`1.ReadCore(Utf8JsonReader& reader, JsonSerializerOptions options, ReadStack& state)
  --- End of inner exception stack trace ---
  at System.Text.Json.ThrowHelper.ReThrowWithPath(ReadStack& state, JsonReaderException ex)
  at System.Text.Json.Serialization.JsonConverter`1.ReadCore(Utf8JsonReader& reader, JsonSerializerOptions options, ReadStack& state)
  at System.Text.Json.Serialization.Metadata.JsonTypeInfo`1.ContinueDeserialize(ReadBufferState& bufferState, JsonReaderState& jsonReaderState, ReadStack& readStack)
  at System.Text.Json.Serialization.Metadata.JsonTypeInfo`1.DeserializeAsync(Stream utf8Json, CancellationToken cancellationToken)
  at MediaBrowser.MediaEncoding.Encoder.MediaEncoder.GetMediaInfoInternal(String inputPath, String primaryPath, MediaProtocol protocol, Boolean extractChapters, String probeSizeArgument, Boolean isAudio, Nullable`1 videoType, CancellationToken cancellationToken)
  at MediaBrowser.MediaEncoding.Encoder.MediaEncoder.GetMediaInfoInternal(String inputPath, String primaryPath, MediaProtocol protocol, Boolean extractChapters, String probeSizeArgument, Boolean isAudio, Nullable`1 videoType, CancellationToken cancellationToken)
  at MediaBrowser.Providers.MediaInfo.FFProbeVideoInfo.ProbeVideo[T](T item, MetadataRefreshOptions options, CancellationToken cancellationToken)
  at MediaBrowser.Providers.Manager.MetadataService`2.RunCustomProvider(ICustomMetadataProvider`1 provider, TItemType item, String logName, MetadataRefreshOptions options, RefreshResult refreshResult, CancellationToken cancellationToken)

And here are the logs from the last attempt to play the file:

Code:
[2024-11-05 21:52:38.969 +00:00] [INF] Starting "/usr/lib/jellyfin-ffmpeg/ffprobe" with args "-analyzeduration 200M -probesize 1G -i file:\"/mnt/media/movies/Lord of the Rings The Return of the King (2003)/Lord of the Rings The Return of the King (2003) - Theatrical Edition.mkv\" -threads 0 -v warning -print_format json -show_streams -show_chapters -show_format"
[2024-11-05 21:52:39.089 +00:00] [INF] Starting "/usr/lib/jellyfin-ffmpeg/ffprobe" with args "-analyzeduration 200M -probesize 1G -i file:\"/mnt/media/movies/Lord of the Rings The Return of the King (2003)/Lord of the Rings The Return of the King (2003) - Extended Edition.mkv\" -threads 0 -v warning -print_format json -show_streams -show_chapters -show_format"
[2024-11-05 21:52:40.290 +00:00] [ERR] Error in "Probe Provider"
System.Text.Json.JsonException: The input does not contain any JSON tokens. Expected the input to start with a valid JSON token, when isFinalBlock is true. Path: $ | LineNumber: 0 | BytePositionInLine: 0.
---> System.Text.Json.JsonReaderException: The input does not contain any JSON tokens. Expected the input to start with a valid JSON token, when isFinalBlock is true. LineNumber: 0 | BytePositionInLine: 0.
  at System.Text.Json.ThrowHelper.ThrowJsonReaderException(Utf8JsonReader& json, ExceptionResource resource, Byte nextByte, ReadOnlySpan`1 bytes)
  at System.Text.Json.Serialization.JsonConverter`1.ReadCore(Utf8JsonReader& reader, JsonSerializerOptions options, ReadStack& state)
  --- End of inner exception stack trace ---
  at System.Text.Json.ThrowHelper.ReThrowWithPath(ReadStack& state, JsonReaderException ex)
  at System.Text.Json.Serialization.JsonConverter`1.ReadCore(Utf8JsonReader& reader, JsonSerializerOptions options, ReadStack& state)
  at System.Text.Json.Serialization.Metadata.JsonTypeInfo`1.ContinueDeserialize(ReadBufferState& bufferState, JsonReaderState& jsonReaderState, ReadStack& readStack)
  at System.Text.Json.Serialization.Metadata.JsonTypeInfo`1.DeserializeAsync(Stream utf8Json, CancellationToken cancellationToken)
  at MediaBrowser.MediaEncoding.Encoder.MediaEncoder.GetMediaInfoInternal(String inputPath, String primaryPath, MediaProtocol protocol, Boolean extractChapters, String probeSizeArgument, Boolean isAudio, Nullable`1 videoType, CancellationToken cancellationToken)
  at MediaBrowser.MediaEncoding.Encoder.MediaEncoder.GetMediaInfoInternal(String inputPath, String primaryPath, MediaProtocol protocol, Boolean extractChapters, String probeSizeArgument, Boolean isAudio, Nullable`1 videoType, CancellationToken cancellationToken)
  at MediaBrowser.Providers.MediaInfo.FFProbeVideoInfo.ProbeVideo[T](T item, MetadataRefreshOptions options, CancellationToken cancellationToken)
  at MediaBrowser.Providers.Manager.MetadataService`2.RunCustomProvider(ICustomMetadataProvider`1 provider, TItemType item, String logName, MetadataRefreshOptions options, RefreshResult refreshResult, CancellationToken cancellationToken)
[2024-11-05 21:52:41.084 +00:00] [INF] User policy for "jellyfin". EnablePlaybackRemuxing: True EnableVideoPlaybackTranscoding: True EnableAudioPlaybackTranscoding: True
[2024-11-05 21:52:41.469 +00:00] [INF] Current HLS implementation doesn't support non-keyframe breaks but one is requested, ignoring that request
[2024-11-05 21:52:41.477 +00:00] [INF] "/usr/lib/jellyfin-ffmpeg/ffmpeg" "-analyzeduration 200M -probesize 1G  -i file:\"/mnt/media/movies/Lord of the Rings The Return of the King (2003)/Lord of the Rings The Return of the King (2003) - Extended Edition.mkv\" -map_metadata -1 -map_chapters -1 -threads 0 -sn  -copyts -avoid_negative_ts disabled -max_muxing_queue_size 2048 -f hls -max_delay 5000000 -hls_time 3 -hls_segment_type fmp4 -hls_fmp4_init_filename \"6284dca4ab8b04407cf1698fbe2cbbbe-1.mp4\" -start_number 0 -hls_base_url \"hls/6284dca4ab8b04407cf1698fbe2cbbbe/\" -hls_segment_filename \"/var/cache/jellyfin/transcodes/6284dca4ab8b04407cf1698fbe2cbbbe%d.mp4\" -hls_playlist_type event -hls_list_size 0 -y \"/var/cache/jellyfin/transcodes/6284dca4ab8b04407cf1698fbe2cbbbe.m3u8\""
[2024-11-05 21:52:42.662 +00:00] [ERR] FFmpeg exited with code 137
[2024-11-05 21:52:42.720 +00:00] [ERR] Error processing request. URL "GET" "/videos/d7e14e28-7fd7-5c7e-ec5e-4f4601c080da/live.m3u8".
MediaBrowser.Common.FfmpegException: FFmpeg exited with code 137
  at MediaBrowser.MediaEncoding.Transcoding.TranscodeManager.StartFfMpeg(StreamState state, String outputPath, String commandLineArguments, Guid userId, TranscodingJobType transcodingJobType, CancellationTokenSource cancellationTokenSource, String workingDirectory)
  at Jellyfin.Api.Controllers.DynamicHlsController.GetLiveHlsStream(Guid itemId, String container, 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 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, Nullable`1 maxWidth, Nullable`1 maxHeight, Nullable`1 enableSubtitlesInManifest, Boolean enableAudioVbrEncoding, Boolean alwaysBurnInSubtitleWhenTranscoding)
  at lambda_method932(Closure, Object)
  at Microsoft.AspNetCore.Mvc.Infrastructure.ActionMethodExecutor.TaskOfActionResultExecutor.Execute(ActionContext actionContext, 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 Jellyfin.Api.Middleware.ServerStartupMessageMiddleware.Invoke(HttpContext httpContext, IServerApplicationHost serverApplicationHost, ILocalizationManager localizationManager)
  at Jellyfin.Api.Middleware.WebSocketHandlerMiddleware.Invoke(HttpContext httpContext, IWebSocketManager webSocketManager)
  at Jellyfin.Api.Middleware.IPBasedAccessValidationMiddleware.Invoke(HttpContext httpContext, INetworkManager networkManager)
  at Jellyfin.Api.Middleware.LanFilteringMiddleware.Invoke(HttpContext httpContext, INetworkManager networkManager, IServerConfigurationManager serverConfigurationManager)
  at Microsoft.AspNetCore.Authorization.AuthorizationMiddleware.Invoke(HttpContext context)
  at Jellyfin.Api.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.Api.Middleware.RobotsRedirectionMiddleware.Invoke(HttpContext httpContext)
  at Jellyfin.Api.Middleware.LegacyEmbyRouteRewriteMiddleware.Invoke(HttpContext httpContext)
  at Microsoft.AspNetCore.ResponseCompression.ResponseCompressionMiddleware.InvokeCore(HttpContext context)
  at Jellyfin.Api.Middleware.ResponseTimeMiddleware.Invoke(HttpContext context, IServerConfigurationManager serverConfigurationManager)
  at Jellyfin.Api.Middleware.ExceptionMiddleware.Invoke(HttpContext context)
[2024-11-05 21:52:42.845 +00:00] [INF] Starting "/usr/lib/jellyfin-ffmpeg/ffprobe" with args "-analyzeduration 200M -probesize 1G -i file:\"/mnt/media/movies/Lord of the Rings The Return of the King (2003)/Lord of the Rings The Return of the King (2003) - Theatrical Edition.mkv\" -threads 0 -v warning -print_format json -show_streams -show_chapters -show_format"
[2024-11-05 21:52:42.902 +00:00] [INF] Starting "/usr/lib/jellyfin-ffmpeg/ffprobe" with args "-analyzeduration 200M -probesize 1G -i file:\"/mnt/media/movies/Lord of the Rings The Return of the King (2003)/Lord of the Rings The Return of the King (2003) - Extended Edition.mkv\" -threads 0 -v warning -print_format json -show_streams -show_chapters -show_format"
[2024-11-05 21:52:45.864 +00:00] [INF] Sending shutdown notifications
[2024-11-05 21:52:45.875 +00:00] [INF] WS "192.168.1.17" closed
[2024-11-05 21:52:45.875 +00:00] [INF] WS "192.168.1.17" closed
[2024-11-05 21:52:45.908 +00:00] [ERR] Error in "Probe Provider"
System.Text.Json.JsonException: The input does not contain any JSON tokens. Expected the input to start with a valid JSON token, when isFinalBlock is true. Path: $ | LineNumber: 0 | BytePositionInLine: 0.
---> System.Text.Json.JsonReaderException: The input does not contain any JSON tokens. Expected the input to start with a valid JSON token, when isFinalBlock is true. LineNumber: 0 | BytePositionInLine: 0.
  at System.Text.Json.ThrowHelper.ThrowJsonReaderException(Utf8JsonReader& json, ExceptionResource resource, Byte nextByte, ReadOnlySpan`1 bytes)
  at System.Text.Json.Serialization.JsonConverter`1.ReadCore(Utf8JsonReader& reader, JsonSerializerOptions options, ReadStack& state)
  --- End of inner exception stack trace ---
  at System.Text.Json.ThrowHelper.ReThrowWithPath(ReadStack& state, JsonReaderException ex)
  at System.Text.Json.Serialization.JsonConverter`1.ReadCore(Utf8JsonReader& reader, JsonSerializerOptions options, ReadStack& state)
  at System.Text.Json.Serialization.Metadata.JsonTypeInfo`1.ContinueDeserialize(ReadBufferState& bufferState, JsonReaderState& jsonReaderState, ReadStack& readStack)
  at System.Text.Json.Serialization.Metadata.JsonTypeInfo`1.DeserializeAsync(Stream utf8Json, CancellationToken cancellationToken)
  at MediaBrowser.MediaEncoding.Encoder.MediaEncoder.GetMediaInfoInternal(String inputPath, String primaryPath, MediaProtocol protocol, Boolean extractChapters, String probeSizeArgument, Boolean isAudio, Nullable`1 videoType, CancellationToken cancellationToken)
  at MediaBrowser.MediaEncoding.Encoder.MediaEncoder.GetMediaInfoInternal(String inputPath, String primaryPath, MediaProtocol protocol, Boolean extractChapters, String probeSizeArgument, Boolean isAudio, Nullable`1 videoType, CancellationToken cancellationToken)
  at MediaBrowser.Providers.MediaInfo.FFProbeVideoInfo.ProbeVideo[T](T item, MetadataRefreshOptions options, CancellationToken cancellationToken)
  at MediaBrowser.Providers.Manager.MetadataService`2.RunCustomProvider(ICustomMetadataProvider`1 provider, TItemType item, String logName, MetadataRefreshOptions options, RefreshResult refreshResult, CancellationToken cancellationToken)



RE: Error Identifying and Playing Second Version of Movie - TheDreadPirate - 2024-11-05

Can you share your full jellyfin log via pastebin? If you see any ffmpeg logs, share one of those as well.


RE: Error Identifying and Playing Second Version of Movie - commodore - 2024-11-05

(2024-11-05, 10:52 PM)TheDreadPirate Wrote: Can you share your full jellyfin log via pastebin?  If you see any ffmpeg logs, share one of those as well.

Here is the full Jellyfin log: https://pastebin.com/F1jTptMC

Here is the FFmpeg log for the most recent attempt to play the title: https://pastebin.com/wQPsJHts


RE: Error Identifying and Playing Second Version of Movie - TheDreadPirate - 2024-11-05

I am pretty certain the problem is with the file itself. How did you concatenate the files? I'm assuming these are the Director's Cut DVD box sets?


RE: Error Identifying and Playing Second Version of Movie - commodore - 2024-11-06

(2024-11-05, 11:57 PM)TheDreadPirate Wrote: I am pretty certain the problem is with the file itself.  How did you concatenate the files?  I'm assuming these are the Director's Cut DVD box sets?

I concatenated using mkvmerge/mkvtoolnix and correct, they are from a director's cut box set.


RE: Error Identifying and Playing Second Version of Movie - TheDreadPirate - 2024-11-06

I'm trying to remember if I used mkvtoolnix or ffmpeg when I merged my LotR director's cut. I'm pretty sure I used ffmpeg because this link is very familiar.

https://stackoverflow.com/questions/7333232/how-to-concatenate-two-mp4-files-using-ffmpeg#:~:text=a%5D%22%20output.mkv-,2.%20concat%20demuxer,-Use%20this%20method

Re-rip and and re-merge. Maybe try the ffmpeg method.


RE: Error Identifying and Playing Second Version of Movie - commodore - 2024-11-07

It appears to be identifying the FFmpeg concatenation, which is good. It's odd since it recognizes other concatenations with mkvmerge (including another Lord of the Rings film). That is not important though since I have a solution. Thanks for your help!