Hello,
I'm running Jellyfin server v10.8.13 on a Raspberry Pi 4B (Arm64). The server is running in a Docker container (jellyfin/jellyfin:latest). I've connected to my server on my Windows 10 machine using the Jellyfin desktop client v1.11.1. My media files have scanned well. I've explicitly disabled transcoding for my user as the Raspberry Pi lacks the power to do so:
When I try and play any file, I get the following error:
This happens even if the format of the video is something very basic, like H264 video and AAC audio.
In my server's logs, I see lines that say 'TranscodeReasons=DirectPlayError' (some information has been redacted for privacy):
I understand the Raspberry Pi is not very powerful. However, I have seen many people on the internet state that it should be fine for direct play. I'm not sure what the problem is here. As I understand, Jellyfin desktop should be able to play these files directly without any transcoding. So why is it failing and stating that the server is not sending a compatible file? Why is it trying to transcode the file? How could I fix it?
I'm running Jellyfin server v10.8.13 on a Raspberry Pi 4B (Arm64). The server is running in a Docker container (jellyfin/jellyfin:latest). I've connected to my server on my Windows 10 machine using the Jellyfin desktop client v1.11.1. My media files have scanned well. I've explicitly disabled transcoding for my user as the Raspberry Pi lacks the power to do so:
When I try and play any file, I get the following error:
This happens even if the format of the video is something very basic, like H264 video and AAC audio.
In my server's logs, I see lines that say 'TranscodeReasons=DirectPlayError' (some information has been redacted for privacy):
Code:
[2025-02-02 13:00:23.276 +00:00] [INF] [58] Jellyfin.Api.Helpers.MediaInfoHelper: User policy for "Jofroop". EnablePlaybackRemuxing: True EnableVideoPlaybackTranscoding: False EnableAudioPlaybackTranscoding: False
[2025-02-02 13:00:23.278 +00:00] [INF] [58] Jellyfin.Api.Helpers.MediaInfoHelper: StreamBuilder.BuildVideoItem( Profile="Jellyfin Media Player", Path="/media/torrents/Movies/2024-04-04_media-name/<Media Name>", AudioStreamIndex=null, SubtitleStreamIndex=null ) => ( PlayMethod=DirectPlay, TranscodeReason=0 ) "media:/videos/f4e5f082-15df-3973-56c9-a02af126df91/stream.mov?MediaSourceId=f4e5f08215df397356c9a02af126df91&Static=true&VideoCodec=h264&AudioCodec=aac&AudioStreamIndex=2&api_key=<token>&Tag=fe6a7cb35d6928217c524f5a5951ee88"
[2025-02-02 13:00:23.713 +00:00] [INF] [53] Jellyfin.Api.Helpers.MediaInfoHelper: User policy for "Jofroop". EnablePlaybackRemuxing: True EnableVideoPlaybackTranscoding: False EnableAudioPlaybackTranscoding: False
[2025-02-02 13:00:23.714 +00:00] [INF] [53] Jellyfin.Api.Helpers.MediaInfoHelper: StreamBuilder.BuildVideoItem( Profile="Jellyfin Media Player", Path="/media/torrents/Movies/2024-04-04_media-name/<Media Name>", AudioStreamIndex=2, SubtitleStreamIndex=0 ) => ( PlayMethod=Transcode, TranscodeReason=DirectPlayError ) "media:/videos/f4e5f082-15df-3973-56c9-a02af126df91/stream?MediaSourceId=f4e5f08215df397356c9a02af126df91&AudioStreamIndex=2&SubtitleStreamIndex=0&api_key=<token>&SubtitleMethod=Encode&RequireAvc=false&Tag=fe6a7cb35d6928217c524f5a5951ee88&TranscodeReasons=DirectPlayError"
[2025-02-02 13:00:23.732 +00:00] [INF] [49] Jellyfin.Api.Helpers.TranscodingJobHelper: "/usr/lib/jellyfin-ffmpeg/ffmpeg" "-analyzeduration 200M -fflags +genpts -f mov,mp4,m4a,3gp,3g2,mj2 -i file:\"/media/torrents/Movies/2024-04-04_media-name/<Media Name>\" -map 0:0 -map 0:1 -codec:v:0 copy -map_metadata -1 -map_chapters -1 -threads 0 -codec:a:0 copy -y \"/config/transcodes/fc155dc7612dff3e6eea098c036e7759.mov\""
[2025-02-02 13:00:25.506 +00:00] [WRN] [49] Jellyfin.Server.Middleware.ResponseTimeMiddleware: Slow HTTP Response from "http://server-name:8096/videos/f4e5f082-15df-3973-56c9-a02af126df91/stream?DeviceId=SmVsbHlmaW5NZWRpYVBsYXllciAxLjExLjEgKHdpbmRvd3MteDg2XzY0IDEwKXwxNzM3NTcxNzcyNTUx&MediaSourceId=f4e5f08215df397356c9a02af126df91&AudioStreamIndex=2&SubtitleStreamIndex=0&PlaySessionId=c2d063cd5e99433d942371e11ed5b39a&api_key=9b023d8580f84a999e7c46a1926635ac&SubtitleMethod=Encode&RequireAvc=false&Tag=fe6a7cb35d6928217c524f5a5951ee88&TranscodeReasons=DirectPlayError&allowVideoStreamCopy=false" to "<client ip>" in 0:00:01.7857327 with Status Code 200
[2025-02-02 13:00:26.835 +00:00] [INF] [53] Jellyfin.Api.Helpers.TranscodingJobHelper: FFmpeg exited with code 0
[2025-02-02 13:00:38.292 +00:00] [INF] [54] Jellyfin.Api.Helpers.MediaInfoHelper: User policy for "Jofroop". EnablePlaybackRemuxing: True EnableVideoPlaybackTranscoding: False EnableAudioPlaybackTranscoding: False
[2025-02-02 13:00:38.293 +00:00] [INF] [54] Jellyfin.Api.Helpers.MediaInfoHelper: StreamBuilder.BuildVideoItem( Profile="Jellyfin Media Player", Path="/media/torrents/Movies/2024-04-04_media-name/<Media Name>", AudioStreamIndex=2, SubtitleStreamIndex=0 ) => ( PlayMethod=Transcode, TranscodeReason=DirectPlayError ) "media:/videos/f4e5f082-15df-3973-56c9-a02af126df91/stream?MediaSourceId=f4e5f08215df397356c9a02af126df91&AudioStreamIndex=2&SubtitleStreamIndex=0&api_key=<token>&SubtitleMethod=Encode&RequireAvc=false&Tag=fe6a7cb35d6928217c524f5a5951ee88&TranscodeReasons=DirectPlayError"
[2025-02-02 13:00:38.306 +00:00] [INF] [47] Jellyfin.Api.Helpers.TranscodingJobHelper: Deleting partial stream file(s) "/config/transcodes/fc155dc7612dff3e6eea098c036e7759.mov"
[2025-02-02 13:00:38.318 +00:00] [INF] [47] Jellyfin.Api.Helpers.TranscodingJobHelper: "/usr/lib/jellyfin-ffmpeg/ffmpeg" "-analyzeduration 200M -fflags +genpts -f mov,mp4,m4a,3gp,3g2,mj2 -i file:\"/media/torrents/Movies/2024-04-04_media-name/<Media Name>\" -map 0:0 -map 0:1 -codec:v:0 copy -map_metadata -1 -map_chapters -1 -threads 0 -codec:a:0 copy -y \"/config/transcodes/ad48f4f29f0872dfa59e27e33a4afe4b.mov\""
[2025-02-02 13:00:39.793 +00:00] [WRN] [58] Jellyfin.Server.Middleware.ResponseTimeMiddleware: Slow HTTP Response from "http://server-name:8096/videos/f4e5f082-15df-3973-56c9-a02af126df91/stream?DeviceId=SmVsbHlmaW5NZWRpYVBsYXllciAxLjExLjEgKHdpbmRvd3MteDg2XzY0IDEwKXwxNzM3NTcxNzcyNTUx&MediaSourceId=f4e5f08215df397356c9a02af126df91&AudioStreamIndex=2&SubtitleStreamIndex=0&PlaySessionId=49d53313c23d4581bef4672dd955b9d7&api_key=9b023d8580f84a999e7c46a1926635ac&SubtitleMethod=Encode&RequireAvc=false&Tag=fe6a7cb35d6928217c524f5a5951ee88&TranscodeReasons=DirectPlayError&allowVideoStreamCopy=false&allowAudioStreamCopy=false" to "<client ip>" in 0:00:01.4815736 with Status Code 200
[2025-02-02 13:00:45.066 +00:00] [INF] [48] Jellyfin.Api.Helpers.TranscodingJobHelper: FFmpeg exited with code 0
[2025-02-02 13:00:52.324 +00:00] [INF] [43] Jellyfin.Api.Helpers.TranscodingJobHelper: Deleting partial stream file(s) "/config/transcodes/ad48f4f29f0872dfa59e27e33a4afe4b.mov"
[2025-02-02 13:00:53.881 +00:00] [INF] [53] Emby.Server.Implementations.Session.SessionManager: Playback stopped reported by app "Jellyfin Media Player" "1.11.1" playing "Media Name". Stopped at "0" ms
[2025-02-02 13:00:54.296 +00:00] [WRN] [53] Jellyfin.Server.Middleware.ResponseTimeMiddleware: Slow HTTP Response from "http://server-name:8096/Sessions/Playing/Stopped" to "<client ip>" in 0:00:01.9794345 with Status Code 204
I understand the Raspberry Pi is not very powerful. However, I have seen many people on the internet state that it should be fine for direct play. I'm not sure what the problem is here. As I understand, Jellyfin desktop should be able to play these files directly without any transcoding. So why is it failing and stating that the server is not sending a compatible file? Why is it trying to transcode the file? How could I fix it?