I can start by showing a list of the files I have stored under the “movies” directory for jellyfin. I don’t have much of them, just some to do testing:
total 2677800
drwxr-xrwx 2 sisyphus sisyphus 4096 Aug 29 16:47 .
drwxr-xrwx 4 sisyphus sisyphus 4096 Aug 29 14:54 ..
-rwxr-xrwx 1 sisyphus sisyphus 680602971 Aug 29 15:07 Scream-1996.mp4
-rw-r--r-- 1 sisyphus sisyphus 2060700195 Aug 29 16:31 'The.Shining.1980.1080p.BluRay.x264-[YTS.AM].mp4'
-rw-r--rwx 1 sisyphus sisyphus 742478 Jul 9 2020 file_example_AVI_480_750kB.avi
The last avi is just a sample video I downloaded to have a different file other than mp4.
As you can notice, each file has different perms, and I did this “intentionally”.
Jellyfin says in the docs that the user “jellyfin” needs RX perms, not W, and the file scream basically has the “others” groups with all perms allowed.
When I try to load any of these files, none will load. BUT, audio files load without an issue.
Next thing I did was installing ffmegp, but fixed nothing. I noticed that there is a package called “jellyfin-ffmegp” so what I did was of no use, obviously.
I browsed for some troubleshooting, and people usually says to check the logs, so here I go to show you.
Jellyfin stores 2 types of logs:
- FFmpeg.transcode…whatever
- jellyfin…random numbers
Right now while I’m writing this, I’m trying to load some videos so that I can generate logs. First I notice, I am not generating any FFmpeg.transcode logs, I guess that’s something “bad”.
Luckily, I have generated a log of the other type.
I’m not going to paste here the whole log since I don’t think it will be necessary, but there is one part of it that repeats itself in loop, and that part is this one:
[2021-08-29 14:46:34.799 +02:00] [ERR] Error in "ffprobe"
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: $ | LineNum$
---> 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. LineN$
at System.Text.Json.ThrowHelper.ThrowJsonReaderException(Utf8JsonReader& json, ExceptionResource resource, Byte nextByte, ReadOnlySpan`1 bytes)
at System.Text.Json.Utf8JsonReader.Read()
at System.Text.Json.JsonSerializer.ReadCore(JsonSerializerOptions options, Utf8JsonReader& reader, ReadStack& readStack)
--- End of inner exception stack trace ---
at System.Text.Json.ThrowHelper.ReThrowWithPath(ReadStack& readStack, JsonReaderException ex)
at System.Text.Json.JsonSerializer.ReadCore(JsonSerializerOptions options, Utf8JsonReader& reader, ReadStack& readStack)
at System.Text.Json.JsonSerializer.ReadCore(JsonReaderState& readerState, Boolean isFinalBlock, ReadOnlySpan`1 buffer, JsonSerializerOptions options, ReadStack& readStack)
at System.Text.Json.JsonSerializer.ReadAsync[TValue](Stream utf8Json, Type returnType, JsonSerializerOptions options, CancellationToken cancellationToken)
at MediaBrowser.MediaEncoding.Encoder.MediaEncoder.GetMediaInfoInternal(String inputPath, String primaryPath, MediaProtocol protocol, Boolean extractChapters, String prob$
at MediaBrowser.Providers.MediaInfo.FFProbeAudioInfo.Probe[T](T item, MetadataRefreshOptions options, CancellationToken cancellationToken)
at MediaBrowser.Providers.Manager.MetadataService`2.RunCustomProvider(ICustomMetadataProvider`1 provider, TItemType item, String logName, MetadataRefreshOptions options, $
[2021-08-29 14:46:35.012 +02:00] [ERR] Error in "ffprobe"
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: $ | LineNum$
---> 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. LineN$
at System.Text.Json.ThrowHelper.ThrowJsonReaderException(Utf8JsonReader& json, ExceptionResource resource, Byte nextByte, ReadOnlySpan`1 bytes)
at System.Text.Json.Utf8JsonReader.Read()
at System.Text.Json.JsonSerializer.ReadCore(JsonSerializerOptions options, Utf8JsonReader& reader, ReadStack& readStack)
--- End of inner exception stack trace ---
at System.Text.Json.ThrowHelper.ReThrowWithPath(ReadStack& readStack, JsonReaderException ex)
at System.Text.Json.JsonSerializer.ReadCore(JsonSerializerOptions options, Utf8JsonReader& reader, ReadStack& readStack)
at System.Text.Json.JsonSerializer.ReadCore(JsonReaderState& readerState, Boolean isFinalBlock, ReadOnlySpan`1 buffer, JsonSerializerOptions options, ReadStack& readStack)
at System.Text.Json.JsonSerializer.ReadAsync[TValue](Stream utf8Json, Type returnType, JsonSerializerOptions options, CancellationToken cancellationToken)
at MediaBrowser.MediaEncoding.Encoder.MediaEncoder.GetMediaInfoInternal(String inputPath, String primaryPath, MediaProtocol protocol, Boolean extractChapters, String prob$
at MediaBrowser.Providers.MediaInfo.FFProbeAudioInfo.Probe[T](T item, MetadataRefreshOptions options, CancellationToken cancellationToken)
This is an error that keeps going on endlessly. I have browsed about this error, but I really don’t know how to continue troubleshooting this, since at this point I’m lost.
I thought the problem were some missing video libraries, but that doesn’t seem to be the case since jellyfin installs those with the package. Jellyfin works fine apart from these problems.
I hope it was properly explained.
EDIT 1
It seems ffmpeg is not working fine after all
root@tartarus:/var/log/jellyfin# ffmpeg -version
ffmpeg: symbol lookup error: /lib/aarch64-linux-gnu/libpangoft2-1.0.so.0: undefined symbol: FcPatternDestroy
I can’t seem to solve this issue.