jellyfin / jellyfin-androidtv

Android TV Client for Jellyfin
https://jellyfin.org
GNU General Public License v2.0
2.53k stars 437 forks source link

None of my media plays on Android TV or Fire Stick with this new client version #1266

Closed therealalvin closed 2 years ago

therealalvin commented 2 years ago

Describe the bug

Server: Version: 10.7.7 Operating System: Linux Architecture: Arm Running on RPi arm 32 bit, docker compose, official jellyfin container image: jellyfin/jellyfin

Client(s): Android TV 0.12.3, Sony Android TV AndroidTV 0.12.3, Amazon Fire Stick 4k

None of my videos play back on either. TV shows or Movies. Music doesn't play either. Server stayed the same. Client upgraded from the previous "pre-rewrite" version. Everything worked on that version.

When I play it in the browser, everything works great! Just not with the client.

Client lets me navigate, and when I play, it just goes to a black screen with the nav on the bottom briefly, then returns back to the series screen like it played the entire video.

Logs

Working using the web browser player:

Media
Admin
User
The Best of Friends - S1:E1 - The Best of Friends - s01e01
Playback Info
Player:
Html Video Player
Play method:
Transcoding
Protocol:
http
Stream type:
HLS
Video Info
Player dimensions:
1366x596
Video resolution:
631x480
Dropped frames:
0
Corrupted frames:
0
Transcoding Info
Video codec:
H264
Audio codec:
AAC (direct)
Audio channels:
2
Bitrate:
5.1 Mbps
Transcoding progress:
34.2%
Transcoding framerate:
109 fps
Reason for transcoding:
ContainerBitrateExceedsLimit
Original Media Info
Container:
mp4
Size:
540.8 MiB
Bitrate:
2.5 Mbps
Video codec:
H264 High
Video bitrate:
2.0 Mbps
Video range:
SDR
Color space:
smpte170m
Color transfer:
bt709
Color primaries:
smpte170m
Audio codec:
AAC LC
Audio bitrate:
160 kbps
Audio channels:
2
Audio sample rate:
48000 Hz

[19:34:12] [INF] [7] Jellyfin.Api.Helpers.MediaInfoHelper: User policy for myuser. EnablePlaybackRemuxing: True EnableVideoPlaybackTranscoding: True EnableAudioPlaybackTranscoding: True
[19:34:13] [INF] [7] Jellyfin.Api.Helpers.MediaInfoHelper: Profile: Unknown Profile, Path: /media/plex/TV Shows/The Best of Friends/The Best of Friends - s01e01.m4v, isEligibleForDirectPlay: True, isEligibleForDirectStream: True
[19:34:13] [INF] [7] Jellyfin.Api.Helpers.MediaInfoHelper: Profile: Unknown Profile, Path: /media/plex/TV Shows/The Best of Friends/The Best of Friends - s01e01.m4v, isEligibleForDirectPlay: True, isEligibleForDirectStream: True
[19:34:13] [INF] [7] Jellyfin.Api.Helpers.MediaInfoHelper: Profile: Unknown Profile, Path: /media/plex/TV Shows/The Best of Friends/The Best of Friends - s01e01.m4v, isEligibleForDirectPlay: True, isEligibleForDirectStream: True
[19:34:13] [WRN] [7] Jellyfin.Server.Middleware.ResponseTimeMiddleware: Slow HTTP Response from http://mymedia:8096/Items/f42b3c41fa3dea12ea5445f7c06a843e/PlaybackInfo?UserId=3b3973b1b93949e4a8dcc65e20bbc5f9&StartTimeTicks=0&IsPlayback=true&AutoOpenLiveStream=true&MaxStreamingBitrate=140000000 to 192.168.0.149 in 0:00:00.5553326 with Status Code 200
[19:34:13] [INF] [21] Jellyfin.Api.Controllers.MediaInfoController: GetPostedPlaybackInfo profile: {"Name": null, "Id": null, "Identification": null, "FriendlyName": null, "Manufacturer": null, "ManufacturerUrl": null, "ModelName": null, "ModelDescription": null, "ModelNumber": null, "ModelUrl": null, "SerialNumber": null, "EnableAlbumArtInDidl": false, "EnableSingleAlbumArtLimit": false, "EnableSingleSubtitleLimit": false, "SupportedMediaTypes": "Audio,Photo,Video", "UserId": null, "AlbumArtPn": null, "MaxAlbumArtWidth": 0, "MaxAlbumArtHeight": 0, "MaxIconWidth": null, "MaxIconHeight": null, "MaxStreamingBitrate": 120000000, "MaxStaticBitrate": 100000000, "MusicStreamingTranscodingBitrate": 384000, "MaxStaticMusicBitrate": null, "SonyAggregationFlags": null, "ProtocolInfo": null, "TimelineOffsetSeconds": 0, "RequiresPlainVideoItems": false, "RequiresPlainFolders": false, "EnableMSMediaReceiverRegistrar": false, "IgnoreTranscodeByteRangeRequests": false, "XmlRootAttributes": [], "DirectPlayProfiles": [{"Container": "webm", "AudioCodec": "vorbis,opus", "VideoCodec": "vp8,vp9,av1", "Type": "Video", "$type": "DirectPlayProfile"}, {"Container": "mp4,m4v", "AudioCodec": "aac,mp3,opus,flac,alac,vorbis", "VideoCodec": "h264,vp8,vp9,av1", "Type": "Video", "$type": "DirectPlayProfile"}, {"Container": "opus", "AudioCodec": null, "VideoCodec": null, "Type": "Audio", "$type": "DirectPlayProfile"}, {"Container": "webm", "AudioCodec": "opus", "VideoCodec": null, "Type": "Audio", "$type": "DirectPlayProfile"}, {"Container": "mp3", "AudioCodec": null, "VideoCodec": null, "Type": "Audio", "$type": "DirectPlayProfile"}, {"Container": "aac", "AudioCodec": null, "VideoCodec": null, "Type": "Audio", "$type": "DirectPlayProfile"}, {"Container": "m4a", "AudioCodec": "aac", "VideoCodec": null, "Type": "Audio", "$type": "DirectPlayProfile"}, {"Container": "m4b", "AudioCodec": "aac", "VideoCodec": null, "Type": "Audio", "$type": "DirectPlayProfile"}, {"Container": "flac", "AudioCodec": null, "VideoCodec": null, "Type": "Audio", "$type": "DirectPlayProfile"}, {"Container": "alac", "AudioCodec": null, "VideoCodec": null, "Type": "Audio", "$type": "DirectPlayProfile"}, {"Container": "m4a", "AudioCodec": "alac", "VideoCodec": null, "Type": "Audio", "$type": "DirectPlayProfile"}, {"Container": "m4b", "AudioCodec": "alac", "VideoCodec": null, "Type": "Audio", "$type": "DirectPlayProfile"}, {"Container": "webma", "AudioCodec": null, "VideoCodec": null, "Type": "Audio", "$type": "DirectPlayProfile"}, {"Container": "webm", "AudioCodec": "webma", "VideoCodec": null, "Type": "Audio", "$type": "DirectPlayProfile"}, {"Container": "wav", "AudioCodec": null, "VideoCodec": null, "Type": "Audio", "$type": "DirectPlayProfile"}, {"Container": "ogg", "AudioCodec": null, "VideoCodec": null, "Type": "Audio", "$type": "DirectPlayProfile"}], "TranscodingProfiles": [{"Container": "ts", "Type": "Audio", "VideoCodec": null, "AudioCodec": "aac", "Protocol": "hls", "EstimateContentLength": false, "EnableMpegtsM2TsMode": false, "TranscodeSeekInfo": "Auto", "CopyTimestamps": false, "Context": "Streaming", "EnableSubtitlesInManifest": false, "MaxAudioChannels": "6", "MinSegments": 2, "SegmentLength": 0, "BreakOnNonKeyFrames": true, "$type": "TranscodingProfile"}, {"Container": "aac", "Type": "Audio", "VideoCodec": null, "AudioCodec": "aac", "Protocol": "http", "EstimateContentLength": false, "EnableMpegtsM2TsMode": false, "TranscodeSeekInfo": "Auto", "CopyTimestamps": false, "Context": "Streaming", "EnableSubtitlesInManifest": false, "MaxAudioChannels": "6", "MinSegments": 0, "SegmentLength": 0, "BreakOnNonKeyFrames": false, "$type": "TranscodingProfile"}, {"Container": "mp3", "Type": "Audio", "VideoCodec": null, "AudioCodec": "mp3", "Protocol": "http", "EstimateContentLength": false, "EnableMpegtsM2TsMode": false, "TranscodeSeekInfo": "Auto", "CopyTimestamps": false, "Context": "Streaming", "EnableSubtitlesInManifest": false, "MaxAudioChannels": "6", "MinSegments": 0, "SegmentLength": 0, "BreakOnNonKeyFrames": false, "$type": "TranscodingProfile"}, {"Container": "opus", "Type": "Audio", "VideoCodec": null, "AudioCodec": "opus", "Protocol": "http", "EstimateContentLength": false, "EnableMpegtsM2TsMode": false, "TranscodeSeekInfo": "Auto", "CopyTimestamps": false, "Context": "Streaming", "EnableSubtitlesInManifest": false, "MaxAudioChannels": "6", "MinSegments": 0, "SegmentLength": 0, "BreakOnNonKeyFrames": false, "$type": "TranscodingProfile"}, {"Container": "wav", "Type": "Audio", "VideoCodec": null, "AudioCodec": "wav", "Protocol": "http", "EstimateContentLength": false, "EnableMpegtsM2TsMode": false, "TranscodeSeekInfo": "Auto", "CopyTimestamps": false, "Context": "Streaming", "EnableSubtitlesInManifest": false, "MaxAudioChannels": "6", "MinSegments": 0, "SegmentLength": 0, "BreakOnNonKeyFrames": false, "$type": "TranscodingProfile"}, {"Container": "opus", "Type": "Audio", "VideoCodec": null, "AudioCodec": "opus", "Protocol": "http", "EstimateContentLength": false, "EnableMpegtsM2TsMode": false, "TranscodeSeekInfo": "Auto", "CopyTimestamps": false, "Context": "Static", "EnableSubtitlesInManifest": false, "MaxAudioChannels": "6", "MinSegments": 0, "SegmentLength": 0, "BreakOnNonKeyFrames": false, "$type": "TranscodingProfile"}, {"Container": "mp3", "Type": "Audio", "VideoCodec": null, "AudioCodec": "mp3", "Protocol": "http", "EstimateContentLength": false, "EnableMpegtsM2TsMode": false, "TranscodeSeekInfo": "Auto", "CopyTimestamps": false, "Context": "Static", "EnableSubtitlesInManifest": false, "MaxAudioChannels": "6", "MinSegments": 0, "SegmentLength": 0, "BreakOnNonKeyFrames": false, "$type": "TranscodingProfile"}, {"Container": "aac", "Type": "Audio", "VideoCodec": null, "AudioCodec": "aac", "Protocol": "http", "EstimateContentLength": false, "EnableMpegtsM2TsMode": false, "TranscodeSeekInfo": "Auto", "CopyTimestamps": false, "Context": "Static", "EnableSubtitlesInManifest": false, "MaxAudioChannels": "6", "MinSegments": 0, "SegmentLength": 0, "BreakOnNonKeyFrames": false, "$type": "TranscodingProfile"}, {"Container": "wav", "Type": "Audio", "VideoCodec": null, "AudioCodec": "wav", "Protocol": "http", "EstimateContentLength": false, "EnableMpegtsM2TsMode": false, "TranscodeSeekInfo": "Auto", "CopyTimestamps": false, "Context": "Static", "EnableSubtitlesInManifest": false, "MaxAudioChannels": "6", "MinSegments": 0, "SegmentLength": 0, "BreakOnNonKeyFrames": false, "$type": "TranscodingProfile"}, {"Container": "ts", "Type": "Video", "VideoCodec": "h264", "AudioCodec": "aac,mp3", "Protocol": "hls", "EstimateContentLength": false, "EnableMpegtsM2TsMode": false, "TranscodeSeekInfo": "Auto", "CopyTimestamps": false, "Context": "Streaming", "EnableSubtitlesInManifest": false, "MaxAudioChannels": "6", "MinSegments": 2, "SegmentLength": 0, "BreakOnNonKeyFrames": true, "$type": "TranscodingProfile"}, {"Container": "webm", "Type": "Video", "VideoCodec": "vpx", "AudioCodec": "vorbis", "Protocol": "http", "EstimateContentLength": false, "EnableMpegtsM2TsMode": false, "TranscodeSeekInfo": "Auto", "CopyTimestamps": false, "Context": "Streaming", "EnableSubtitlesInManifest": false, "MaxAudioChannels": "6", "MinSegments": 0, "SegmentLength": 0, "BreakOnNonKeyFrames": false, "$type": "TranscodingProfile"}, {"Container": "mp4", "Type": "Video", "VideoCodec": "h264", "AudioCodec": "aac,mp3,opus,flac,alac,vorbis", "Protocol": "http", "EstimateContentLength": false, "EnableMpegtsM2TsMode": false, "TranscodeSeekInfo": "Auto", "CopyTimestamps": false, "Context": "Static", "EnableSubtitlesInManifest": false, "MaxAudioChannels": null, "MinSegments": 0, "SegmentLength": 0, "BreakOnNonKeyFrames": false, "$type": "TranscodingProfile"}], "ContainerProfiles": [], "CodecProfiles": [{"Type": "VideoAudio", "Conditions": [{"Condition": "Equals", "Property": "IsSecondaryAudio", "Value": "false", "IsRequired": false, "$type": "ProfileCondition"}], "ApplyConditions": [], "Codec": "aac", "Container": null, "$type": "CodecProfile"}, {"Type": "VideoAudio", "Conditions": [{"Condition": "Equals", "Property": "IsSecondaryAudio", "Value": "false", "IsRequired": false, "$type": "ProfileCondition"}], "ApplyConditions": [], "Codec": null, "Container": null, "$type": "CodecProfile"}, {"Type": "Video", "Conditions": [{"Condition": "NotEquals", "Property": "IsAnamorphic", "Value": "true", "IsRequired": false, "$type": "ProfileCondition"}, {"Condition": "EqualsAny", "Property": "VideoProfile", "Value": "high|main|baseline|constrained baseline", "IsRequired": false, "$type": "ProfileCondition"}, {"Condition": "LessThanEqual", "Property": "VideoLevel", "Value": "51", "IsRequired": false, "$type": "ProfileCondition"}, {"Condition": "NotEquals", "Property": "IsInterlaced", "Value": "true", "IsRequired": false, "$type": "ProfileCondition"}], "ApplyConditions": [], "Codec": "h264", "Container": null, "$type": "CodecProfile"}, {"Type": "Video", "Conditions": [{"Condition": "NotEquals", "Property": "IsAnamorphic", "Value": "true", "IsRequired": false, "$type": "ProfileCondition"}, {"Condition": "EqualsAny", "Property": "VideoProfile", "Value": "main", "IsRequired": false, "$type": "ProfileCondition"}, {"Condition": "LessThanEqual", "Property": "VideoLevel", "Value": "120", "IsRequired": false, "$type": "ProfileCondition"}, {"Condition": "NotEquals", "Property": "IsInterlaced", "Value": "true", "IsRequired": false, "$type": "ProfileCondition"}], "ApplyConditions": [], "Codec": "hevc", "Container": null, "$type": "CodecProfile"}], "ResponseProfiles": [{"Container": "m4v", "AudioCodec": null, "VideoCodec": null, "Type": "Video", "OrgPn": null, "MimeType": "video/mp4", "Conditions": [], "$type": "ResponseProfile"}], "SubtitleProfiles": [{"Format": "vtt", "Method": "External", "DidlMode": null, "Language": null, "Container": null, "$type": "SubtitleProfile"}, {"Format": "ass", "Method": "External", "DidlMode": null, "Language": null, "Container": null, "$type": "SubtitleProfile"}, {"Format": "ssa", "Method": "External", "DidlMode": null, "Language": null, "Container": null, "$type": "SubtitleProfile"}], "$type": "DeviceProfile"}
[19:34:13] [INF] [21] Jellyfin.Api.Helpers.MediaInfoHelper: User policy for myuser. EnablePlaybackRemuxing: True EnableVideoPlaybackTranscoding: True EnableAudioPlaybackTranscoding: True
[19:34:13] [INF] [21] Jellyfin.Api.Helpers.MediaInfoHelper: Profile: Unknown Profile, Path: /media/plex/TV Shows/The Best of Friends/The Best of Friends - s01e01.m4v, isEligibleForDirectPlay: True, isEligibleForDirectStream: True
[19:34:14] [INF] [19] Jellyfin.Api.Controllers.DynamicHlsController: Current HLS implementation doesn't support non-keyframe breaks but one is requested, ignoring that request
[19:34:14] [INF] [19] Jellyfin.Api.Helpers.TranscodingJobHelper: /usr/lib/jellyfin-ffmpeg/ffmpeg -f mov,mp4,m4a,3gp,3g2,mj2 -i file:"/media/plex/TV Shows/The Best of Friends/The Best of Friends - s01e01.m4v" -map_metadata -1 -map_chapters -1 -threads 0 -map 0:0 -map 0:1 -map -0:s -codec:v:0 libx264 -pix_fmt yuv420p -preset veryfast -crf 23 -maxrate 4914012 -bufsize 9828024 -profile:v:0 high -level 41 -x264opts:0 subme=0:me_range=4:rc_lookahead=10:me=dia:no_chroma_me:8x8dct=0:partitions=none  -force_key_frames:0 "expr:gte(t,0+n_forced*3)" -vf "scale=trunc(min(max(iw\,ih*dar)\,min(710\,480*dar))/2)*2:trunc(min(max(iw/dar\,ih)\,min(710/dar\,480))/2)*2" -start_at_zero -vsync -1 -codec:a:0 copy -strict -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/transcodes/7677b02872e4439f4310b804c0c68298%d.ts" -hls_playlist_type vod -hls_list_size 0 -y "/config/transcodes/7677b02872e4439f4310b804c0c68298.m3u8"
[19:34:16] [WRN] [16] Jellyfin.Server.Middleware.ResponseTimeMiddleware: Slow HTTP Response from http://mymedia:8096/videos/f42b3c41-fa3d-ea12-ea54-45f7c06a843e/hls1/main/0.ts?DeviceId=TW96aWxsYS81LjAgKE1hY2ludG9zaDsgSW50ZWwgTWFjIE9TIFggMTAuMTU7IHJ2OjkyLjApIEdlY2tvLzIwMTAwMTAxIEZpcmVmb3gvOTIuMHwxNjMxNzU0ODI3MzA5&MediaSourceId=f42b3c41fa3dea12ea5445f7c06a843e&VideoCodec=h264&AudioCodec=aac,mp3&AudioStreamIndex=1&VideoBitrate=139840000&AudioBitrate=160000&PlaySessionId=587a111d332548759a6f62c51efc19fe&api_key=b95aaead852249609d2ca38eff238a2d&SubtitleMethod=Encode&TranscodingMaxAudioChannels=6&RequireAvc=false&Tag=401872433e3c6ccbf32d0219f65334bf&SegmentContainer=ts&MinSegments=2&BreakOnNonKeyFrames=True&h264-profile=high,main,baseline,constrainedbaseline&h264-level=51&h264-deinterlace=true&TranscodeReasons=ContainerBitrateExceedsLimit&allowVideoStreamCopy=false to 192.168.0.149 in 0:00:02.4712909 with Status Code 200
[19:34:17] [WRN] [31] Jellyfin.Server.Middleware.ResponseTimeMiddleware: Slow HTTP Response from http://mymedia:8096/videos/f42b3c41-fa3d-ea12-ea54-45f7c06a843e/hls1/main/1.ts?DeviceId=TW96aWxsYS81LjAgKE1hY2ludG9zaDsgSW50ZWwgTWFjIE9TIFggMTAuMTU7IHJ2OjkyLjApIEdlY2tvLzIwMTAwMTAxIEZpcmVmb3gvOTIuMHwxNjMxNzU0ODI3MzA5&MediaSourceId=f42b3c41fa3dea12ea5445f7c06a843e&VideoCodec=h264&AudioCodec=aac,mp3&AudioStreamIndex=1&VideoBitrate=139840000&AudioBitrate=160000&PlaySessionId=587a111d332548759a6f62c51efc19fe&api_key=b95aaead852249609d2ca38eff238a2d&SubtitleMethod=Encode&TranscodingMaxAudioChannels=6&RequireAvc=false&Tag=401872433e3c6ccbf32d0219f65334bf&SegmentContainer=ts&MinSegments=2&BreakOnNonKeyFrames=True&h264-profile=high,main,baseline,constrainedbaseline&h264-level=51&h264-deinterlace=true&TranscodeReasons=ContainerBitrateExceedsLimit&allowVideoStreamCopy=false to 192.168.0.149 in 0:00:00.6587567 with Status Code 200
[19:34:18] [WRN] [31] Jellyfin.Server.Middleware.ResponseTimeMiddleware: Slow HTTP Response from http://mymedia:8096/videos/f42b3c41-fa3d-ea12-ea54-45f7c06a843e/hls1/main/2.ts?DeviceId=TW96aWxsYS81LjAgKE1hY2ludG9zaDsgSW50ZWwgTWFjIE9TIFggMTAuMTU7IHJ2OjkyLjApIEdlY2tvLzIwMTAwMTAxIEZpcmVmb3gvOTIuMHwxNjMxNzU0ODI3MzA5&MediaSourceId=f42b3c41fa3dea12ea5445f7c06a843e&VideoCodec=h264&AudioCodec=aac,mp3&AudioStreamIndex=1&VideoBitrate=139840000&AudioBitrate=160000&PlaySessionId=587a111d332548759a6f62c51efc19fe&api_key=b95aaead852249609d2ca38eff238a2d&SubtitleMethod=Encode&TranscodingMaxAudioChannels=6&RequireAvc=false&Tag=401872433e3c6ccbf32d0219f65334bf&SegmentContainer=ts&MinSegments=2&BreakOnNonKeyFrames=True&h264-profile=high,main,baseline,constrainedbaseline&h264-level=51&h264-deinterlace=true&TranscodeReasons=ContainerBitrateExceedsLimit&allowVideoStreamCopy=false to 192.168.0.149 in 0:00:00.7088736 with Status Code 200

Not working with the Fire Stick, same media:

[19:57:41] [INF] [91] Jellyfin.Api.Controllers.MediaInfoController: GetPostedPlaybackInfo profile: {"Name": "AndroidTV-libVLC", "Id": null, "Identification": null, "FriendlyName": null, "Manufacturer": null, "ManufacturerUrl": null, "ModelName": null, "ModelDescription": null, "ModelNumber": null, "ModelUrl": null, "SerialNumber": null, "EnableAlbumArtInDidl": false, "EnableSingleAlbumArtLimit": false, "EnableSingleSubtitleLimit": false, "SupportedMediaTypes": "Audio,Photo,Video", "UserId": null, "AlbumArtPn": null, "MaxAlbumArtWidth": 0, "MaxAlbumArtHeight": 0, "MaxIconWidth": null, "MaxIconHeight": null, "MaxStreamingBitrate": 20000000, "MaxStaticBitrate": 100000000, "MusicStreamingTranscodingBitrate": 128000, "MaxStaticMusicBitrate": null, "SonyAggregationFlags": null, "ProtocolInfo": null, "TimelineOffsetSeconds": 0, "RequiresPlainVideoItems": false, "RequiresPlainFolders": false, "EnableMSMediaReceiverRegistrar": false, "IgnoreTranscodeByteRangeRequests": false, "XmlRootAttributes": [], "DirectPlayProfiles": [{"Container": "m4v,3gp,ts,mpegts,mov,xvid,vob,mkv,wmv,asf,ogm,ogv,m2v,avi,mpg,mpeg,mp4,webm,wtv", "AudioCodec": "aac,mp3,mp2,ac3,wma,wmav2,dca,dts,pcm,PCM_S16LE,PCM_S24LE,opus,flac,truehd", "VideoCodec": null, "Type": "Video", "$type": "DirectPlayProfile"}, {"Container": "flac,aac,mp3,mpa,wav,wma,mp2,ogg,oga,webma,ape", "AudioCodec": null, "VideoCodec": null, "Type": "Audio", "$type": "DirectPlayProfile"}, {"Container": "jpg,jpeg,png,gif,webp", "AudioCodec": null, "VideoCodec": null, "Type": "Photo", "$type": "DirectPlayProfile"}], "TranscodingProfiles": [{"Container": "mkv", "Type": "Video", "VideoCodec": "h264", "AudioCodec": "aac,mp3", "Protocol": null, "EstimateContentLength": false, "EnableMpegtsM2TsMode": false, "TranscodeSeekInfo": "Auto", "CopyTimestamps": true, "Context": "Streaming", "EnableSubtitlesInManifest": false, "MaxAudioChannels": null, "MinSegments": 0, "SegmentLength": 0, "BreakOnNonKeyFrames": false, "$type": "TranscodingProfile"}, {"Container": "mp3", "Type": "Audio", "VideoCodec": null, "AudioCodec": "mp3", "Protocol": null, "EstimateContentLength": false, "EnableMpegtsM2TsMode": false, "TranscodeSeekInfo": "Auto", "CopyTimestamps": false, "Context": "Streaming", "EnableSubtitlesInManifest": false, "MaxAudioChannels": null, "MinSegments": 0, "SegmentLength": 0, "BreakOnNonKeyFrames": false, "$type": "TranscodingProfile"}], "ContainerProfiles": [{"Type": "Video", "Conditions": [{"Condition": "NotEquals", "Property": "VideoCodecTag", "Value": "xvid", "IsRequired": false, "$type": "ProfileCondition"}], "Container": "avi", "$type": "ContainerProfile"}], "CodecProfiles": [{"Type": "Video", "Conditions": [{"Condition": "NotEquals", "Property": "VideoProfile", "Value": "none", "IsRequired": false, "$type": "ProfileCondition"}], "ApplyConditions": [], "Codec": "hevc", "Container": null, "$type": "CodecProfile"}, {"Type": "Video", "Conditions": [{"Condition": "EqualsAny", "Property": "VideoProfile", "Value": "high|main|baseline|constrained baseline", "IsRequired": false, "$type": "ProfileCondition"}, {"Condition": "LessThanEqual", "Property": "VideoLevel", "Value": "52", "IsRequired": false, "$type": "ProfileCondition"}], "ApplyConditions": [], "Codec": "h264", "Container": null, "$type": "CodecProfile"}, {"Type": "VideoAudio", "Conditions": [{"Condition": "LessThanEqual", "Property": "AudioChannels", "Value": "8", "IsRequired": false, "$type": "ProfileCondition"}], "ApplyConditions": [], "Codec": null, "Container": null, "$type": "CodecProfile"}], "ResponseProfiles": [], "SubtitleProfiles": [{"Format": "srt", "Method": "External", "DidlMode": null, "Language": null, "Container": null, "$type": "SubtitleProfile"}, {"Format": "srt", "Method": "Embed", "DidlMode": null, "Language": null, "Container": null, "$type": "SubtitleProfile"}, {"Format": "subrip", "Method": "Embed", "DidlMode": null, "Language": null, "Container": null, "$type": "SubtitleProfile"}, {"Format": "ass", "Method": "Embed", "DidlMode": null, "Language": null, "Container": null, "$type": "SubtitleProfile"}, {"Format": "ssa", "Method": "Embed", "DidlMode": null, "Language": null, "Container": null, "$type": "SubtitleProfile"}, {"Format": "pgs", "Method": "Embed", "DidlMode": null, "Language": null, "Container": null, "$type": "SubtitleProfile"}, {"Format": "pgssub", "Method": "Embed", "DidlMode": null, "Language": null, "Container": null, "$type": "SubtitleProfile"}, {"Format": "dvdsub", "Method": "Embed", "DidlMode": null, "Language": null, "Container": null, "$type": "SubtitleProfile"}, {"Format": "vtt", "Method": "Embed", "DidlMode": null, "Language": null, "Container": null, "$type": "SubtitleProfile"}, {"Format": "sub", "Method": "Embed", "DidlMode": null, "Language": null, "Container": null, "$type": "SubtitleProfile"}, {"Format": "smi", "Method": "Embed", "DidlMode": null, "Language": null, "Container": null, "$type": "SubtitleProfile"}, {"Format": "idx", "Method": "Embed", "DidlMode": null, "Language": null, "Container": null, "$type": "SubtitleProfile"}], "$type": "DeviceProfile"}
[19:57:41] [INF] [91] Jellyfin.Api.Helpers.MediaInfoHelper: User policy for myuser. EnablePlaybackRemuxing: True EnableVideoPlaybackTranscoding: True EnableAudioPlaybackTranscoding: True
[19:57:41] [INF] [91] Jellyfin.Api.Helpers.MediaInfoHelper: Profile: AndroidTV-libVLC, Path: /media/plex/TV Shows/The Best of Friends/The Best of Friends - s01e01.m4v, isEligibleForDirectPlay: True, isEligibleForDirectStream: True
[19:57:41] [INF] [91] Jellyfin.Api.Helpers.MediaInfoHelper: Profile: AndroidTV-libVLC, Path: /media/plex/TV Shows/The Best of Friends/The Best of Friends - s01e01.m4v, isEligibleForDirectPlay: True, isEligibleForDirectStream: True
[19:57:41] [INF] [91] Jellyfin.Api.Helpers.MediaInfoHelper: Profile: AndroidTV-libVLC, Path: /media/plex/TV Shows/The Best of Friends/The Best of Friends - s01e01.m4v, isEligibleForDirectPlay: True, isEligibleForDirectStream: True
[19:57:41] [INF] [91] Jellyfin.Api.Controllers.MediaInfoController: GetPostedPlaybackInfo profile: {"Name": "AndroidTV-ExoPlayer", "Id": null, "Identification": null, "FriendlyName": null, "Manufacturer": null, "ManufacturerUrl": null, "ModelName": null, "ModelDescription": null, "ModelNumber": null, "ModelUrl": null, "SerialNumber": null, "EnableAlbumArtInDidl": false, "EnableSingleAlbumArtLimit": false, "EnableSingleSubtitleLimit": false, "SupportedMediaTypes": "Audio,Photo,Video", "UserId": null, "AlbumArtPn": null, "MaxAlbumArtWidth": 0, "MaxAlbumArtHeight": 0, "MaxIconWidth": null, "MaxIconHeight": null, "MaxStreamingBitrate": 20000000, "MaxStaticBitrate": 100000000, "MusicStreamingTranscodingBitrate": 128000, "MaxStaticMusicBitrate": null, "SonyAggregationFlags": null, "ProtocolInfo": null, "TimelineOffsetSeconds": 0, "RequiresPlainVideoItems": false, "RequiresPlainFolders": false, "EnableMSMediaReceiverRegistrar": false, "IgnoreTranscodeByteRangeRequests": false, "XmlRootAttributes": [], "DirectPlayProfiles": [{"Container": "m4v,mov,xvid,vob,mkv,wmv,asf,ogm,ogv,mp4,webm", "AudioCodec": "aac,ac3,eac3,aac_latm,mp3,mp2,dca,dts", "VideoCodec": "h264,hevc,vp8,vp9,mpeg,mpeg2video", "Type": "Video", "$type": "DirectPlayProfile"}, {"Container": "aac,mp3,mpa,flac,wav,wma,mp2,ogg,oga,webma,ape,opus", "AudioCodec": null, "VideoCodec": null, "Type": "Audio", "$type": "DirectPlayProfile"}, {"Container": "jpg,jpeg,png,gif,webp", "AudioCodec": null, "VideoCodec": null, "Type": "Photo", "$type": "DirectPlayProfile"}], "TranscodingProfiles": [{"Container": "mkv", "Type": "Video", "VideoCodec": "h264", "AudioCodec": "ac3,aac,mp3", "Protocol": null, "EstimateContentLength": false, "EnableMpegtsM2TsMode": false, "TranscodeSeekInfo": "Auto", "CopyTimestamps": true, "Context": "Streaming", "EnableSubtitlesInManifest": false, "MaxAudioChannels": null, "MinSegments": 0, "SegmentLength": 0, "BreakOnNonKeyFrames": false, "$type": "TranscodingProfile"}, {"Container": "mp3", "Type": "Audio", "VideoCodec": null, "AudioCodec": "mp3", "Protocol": null, "EstimateContentLength": false, "EnableMpegtsM2TsMode": false, "TranscodeSeekInfo": "Auto", "CopyTimestamps": false, "Context": "Streaming", "EnableSubtitlesInManifest": false, "MaxAudioChannels": null, "MinSegments": 0, "SegmentLength": 0, "BreakOnNonKeyFrames": false, "$type": "TranscodingProfile"}], "ContainerProfiles": [], "CodecProfiles": [{"Type": "Video", "Conditions": [{"Condition": "EqualsAny", "Property": "VideoProfile", "Value": "high|main|baseline|constrained baseline", "IsRequired": false, "$type": "ProfileCondition"}, {"Condition": "LessThanEqual", "Property": "VideoLevel", "Value": "52", "IsRequired": false, "$type": "ProfileCondition"}], "ApplyConditions": [], "Codec": "h264", "Container": null, "$type": "CodecProfile"}, {"Type": "Video", "Conditions": [{"Condition": "LessThanEqual", "Property": "RefFrames", "Value": "12", "IsRequired": false, "$type": "ProfileCondition"}], "ApplyConditions": [{"Condition": "GreaterThanEqual", "Property": "Width", "Value": "1200", "IsRequired": false, "$type": "ProfileCondition"}], "Codec": "h264", "Container": null, "$type": "CodecProfile"}, {"Type": "Video", "Conditions": [{"Condition": "LessThanEqual", "Property": "RefFrames", "Value": "4", "IsRequired": false, "$type": "ProfileCondition"}], "ApplyConditions": [{"Condition": "GreaterThanEqual", "Property": "Width", "Value": "1900", "IsRequired": false, "$type": "ProfileCondition"}], "Codec": "h264", "Container": null, "$type": "CodecProfile"}, {"Type": "Video", "Conditions": [{"Condition": "NotEquals", "Property": "VideoProfile", "Value": "none", "IsRequired": false, "$type": "ProfileCondition"}], "ApplyConditions": [], "Codec": "hevc", "Container": null, "$type": "CodecProfile"}, {"Type": "VideoAudio", "Conditions": [{"Condition": "LessThanEqual", "Property": "AudioChannels", "Value": "6", "IsRequired": false, "$type": "ProfileCondition"}], "ApplyConditions": [], "Codec": null, "Container": null, "$type": "CodecProfile"}], "ResponseProfiles": [], "SubtitleProfiles": [{"Format": "srt", "Method": "External", "DidlMode": null, "Language": null, "Container": null, "$type": "SubtitleProfile"}, {"Format": "srt", "Method": "Embed", "DidlMode": null, "Language": null, "Container": null, "$type": "SubtitleProfile"}, {"Format": "subrip", "Method": "Embed", "DidlMode": null, "Language": null, "Container": null, "$type": "SubtitleProfile"}, {"Format": "ass", "Method": "Encode", "DidlMode": null, "Language": null, "Container": null, "$type": "SubtitleProfile"}, {"Format": "ssa", "Method": "Encode", "DidlMode": null, "Language": null, "Container": null, "$type": "SubtitleProfile"}, {"Format": "pgs", "Method": "Encode", "DidlMode": null, "Language": null, "Container": null, "$type": "SubtitleProfile"}, {"Format": "pgssub", "Method": "Encode", "DidlMode": null, "Language": null, "Container": null, "$type": "SubtitleProfile"}, {"Format": "dvdsub", "Method": "Encode", "DidlMode": null, "Language": null, "Container": null, "$type": "SubtitleProfile"}, {"Format": "vtt", "Method": "Embed", "DidlMode": null, "Language": null, "Container": null, "$type": "SubtitleProfile"}, {"Format": "sub", "Method": "Embed", "DidlMode": null, "Language": null, "Container": null, "$type": "SubtitleProfile"}, {"Format": "idx", "Method": "Embed", "DidlMode": null, "Language": null, "Container": null, "$type": "SubtitleProfile"}], "$type": "DeviceProfile"}
[19:57:41] [INF] [91] Jellyfin.Api.Helpers.MediaInfoHelper: User policy for myuser. EnablePlaybackRemuxing: True EnableVideoPlaybackTranscoding: True EnableAudioPlaybackTranscoding: True
[19:57:41] [INF] [91] Jellyfin.Api.Helpers.MediaInfoHelper: Profile: AndroidTV-ExoPlayer, Path: /media/plex/TV Shows/The Best of Friends/The Best of Friends - s01e01.m4v, isEligibleForDirectPlay: True, isEligibleForDirectStream: True
[19:57:41] [INF] [91] Jellyfin.Api.Helpers.MediaInfoHelper: Profile: AndroidTV-ExoPlayer, Path: /media/plex/TV Shows/The Best of Friends/The Best of Friends - s01e01.m4v, isEligibleForDirectPlay: True, isEligibleForDirectStream: True
[19:57:41] [INF] [91] Jellyfin.Api.Helpers.MediaInfoHelper: Profile: AndroidTV-ExoPlayer, Path: /media/plex/TV Shows/The Best of Friends/The Best of Friends - s01e01.m4v, isEligibleForDirectPlay: True, isEligibleForDirectStream: True
[19:57:42] [INF] [93] Emby.Server.Implementations.Session.SessionManager: Playback stopped reported by app Android TV 0.12.3 playing The Best of Friends - s01e01. Stopped at 0 ms
[19:57:55] [INF] [92] Emby.Server.Implementations.Session.SessionWebSocketListener: Sending ForceKeepAlive message to 1 inactive WebSockets.

FFmpeg logs

No response

Media info of the file

The Best of Friends - s01e01
Containermov
Path/media/plex/TV Shows/The Best of Friends/The Best of Friends - s01e01.m4v
Size541 MB
Video
Title480p H264 SDR
CodecH264
Codec tagavc1
AVCNo
ProfileHigh
Level40
Resolution710x480
Aspect ratio4:3
InterlacedNo
Framerate29.91728
Bitrate1965 kbps
Bit depth8 bit
Video rangeSDR
Color spacesmpte170m
Color transferbt709
Color primariessmpte170m
Pixel formatyuv420p
Ref frames1
NAL0
Audio
TitleEng - AAC - Stereo - Default
Languageeng
CodecAAC
Codec tagmp4a
ProfileLC
Layoutstereo
Channels2 ch
Bitrate160 kbps
Sample rate48000 Hz
DefaultYes
Audio
TitleEng - Dolby Digital - 5.0
Languageeng
CodecAC3
Codec tagac-3
Layout5.0
Channels5 ch
Bitrate384 kbps
Sample rate48000 Hz
DefaultNo

Application version

0.12.3

Device information

Amazon Fire TV stick, Sony Android TV

Android version

Latest versions

Jellyfin server version

10.7.7

therealalvin commented 2 years ago

Update: It appears it's potentially an ARM/Raspberry Pi issue, when I use the exact same docker-compose file on an x86 machine, my media works streaming to the same clients. So with this on my Raspberry Pi 4: $ uname -a Linux mediaserver 5.10.63-v7l+ #1459 SMP Wed Oct 6 16:41:57 BST 2021 armv7l GNU/Linux

None of my media plays to the client. On my x86 debian linux machine: $ uname -a Linux mediaserver2 5.10.0-9-amd64 #1 SMP Debian 5.10.70-1 (2021-09-30) x86_64 GNU/Linux

It all seems to work, as far as I can tell so far.

Here's my docker-compose.yml: version: "3.5" services: jellyfin: image: jellyfin/jellyfin container_name: jellyfin network_mode: "host" volumes:

therealalvin commented 2 years ago

Music still does not play at all, I have .flac files, either from the Intel docker container or the Arm docker container to the Android TV or Fire Stick.

jellyfin-bot commented 2 years ago

This issue has gone 120 days without comment. To avoid abandoned issues, it will be closed in 21 days if there are no new comments.

If you're the original submitter of this issue, please comment confirming if this issue still affects you in the latest release or master branch, or close the issue if it has been fixed. If you're another user also affected by this bug, please comment confirming so. Either action will remove the stale label.

This bot exists to prevent issues from becoming stale and forgotten. Jellyfin is always moving forward, and bugs are often fixed as side effects of other changes. We therefore ask that bug report authors remain vigilant about their issues to ensure they are closed if fixed, or re-confirmed - perhaps with fresh logs or reproduction examples - regularly. If you have any questions you can reach us on Matrix or Social Media.