jellyfin / jellyfin-chromecast

Chromecast Client for Jellyfin
https://jellyfin.org
GNU General Public License v2.0
132 stars 40 forks source link

Chromecast 2.1.0 (2nd Gen Hardware) never plays on 10.7.1 possibly due to incompatible audio #120

Open christovic opened 3 years ago

christovic commented 3 years ago

Describe the bug

Since upgrading to 10.7.1, the stable channel of Chromecast won't instruct the Jellyfin server to transcode surround sound. This causes the Chromecast to hang on a blank screen. The Unstable channel instructs the Jellyfin server to transcode to aac, which then plays correctly.

To Reproduce

Play a file with surround sound to a Chromecast (2nd Gen, Nest Hub seems to work?).

Example ffprobe for file:

  Metadata:
    CREATION_TIME   : 2016-03-09T13:35:28Z
    ENCODER         : Lavf56.1.0
  Duration: 00:48:39.94, start: 0.000000, bitrate: 3660 kb/s
    Chapter #0:0: start 0.000000, end 47.923000
    Metadata:
      title           : 00:00:00.000
    Chapter #0:1: start 48.006000, end 1193.234000
    Metadata:
      title           : 00:00:38.497
    Chapter #0:2: start 1193.317000, end 2187.268000
    Metadata:
      title           : 00:19:53.192
    Chapter #0:3: start 2187.351000, end 2872.912000
    Metadata:
      title           : 00:36:20.595
    Chapter #0:4: start 2872.995000, end 2919.750000
    Metadata:
      title           : 00:47:52.870
    Stream #0:0: Video: hevc (Main 10), yuv420p10le(tv, bt709), 1920x1080 [SAR 1:1 DAR 16:9], 23.98 fps, 23.98 tbr, 1k tbn, 23.98 tbc (default)
    Stream #0:1(eng): Audio: aac (HE-AAC), 48000 Hz, 5.1, fltp (default)
    Metadata:
      title           : Surround
    Stream #0:2(eng): Subtitle: ass

Expected behavior

Transcode incompatible audio, as the Unstable channel does.

Logs

Stable Logs (produces issue)

[13:52:56] [INF] [242] 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": 11000000, "MaxStaticBitrate": 11000000, "MusicStreamingTranscodingBitrate": 192000, "MaxStaticMusicBitrate": null, "SonyAggregationFlags": null, "ProtocolInfo": null, "TimelineOffsetSeconds": 0, "RequiresPlainVideoItems": false, "RequiresPlainFolders": false, "EnableMSMediaReceiverRegistrar": false, "IgnoreTranscodeByteRangeRequests": false, "XmlRootAttributes": [], "DirectPlayProfiles": [{"Container": "mp4,m4v", "AudioCodec": "ac3,aac,mp3,opus,flac,vorbis", "VideoCodec": "h264,vp8", "Type": "Video", "$type": "DirectPlayProfile"}, {"Container": "mkv", "AudioCodec": "ac3,aac,mp3,opus,flac,vorbis", "VideoCodec": "h264,vp8", "Type": "Video", "$type": "DirectPlayProfile"}, {"Container": "mov", "AudioCodec": "ac3,aac,mp3,opus,flac,vorbis", "VideoCodec": "h264", "Type": "Video", "$type": "DirectPlayProfile"}, {"Container": "opus", "AudioCodec": null, "VideoCodec": null, "Type": "Audio", "$type": "DirectPlayProfile"}, {"Container": "mp3", "AudioCodec": "mp3", "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": "flac", "AudioCodec": null, "VideoCodec": null, "Type": "Audio", "$type": "DirectPlayProfile"}, {"Container": "webma,webm", "AudioCodec": null, "VideoCodec": null, "Type": "Audio", "$type": "DirectPlayProfile"}, {"Container": "wav", "AudioCodec": null, "VideoCodec": null, "Type": "Audio", "$type": "DirectPlayProfile"}, {"Container": "webm", "AudioCodec": "vorbis,opus", "VideoCodec": "VP8", "Type": "Video", "$type": "DirectPlayProfile"}, {"Container": "flac", "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": 1, "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": "mkv", "Type": "Video", "VideoCodec": "h264,vp8", "AudioCodec": "ac3,aac,mp3,opus,flac,vorbis", "Protocol": null, "EstimateContentLength": false, "EnableMpegtsM2TsMode": false, "TranscodeSeekInfo": "Auto", "CopyTimestamps": true, "Context": "Streaming", "EnableSubtitlesInManifest": false, "MaxAudioChannels": "6", "MinSegments": 0, "SegmentLength": 0, "BreakOnNonKeyFrames": false, "$type": "TranscodingProfile"}, {"Container": "mkv", "Type": "Video", "VideoCodec": "h264,vp8", "AudioCodec": "ac3,aac,mp3,opus,flac,vorbis", "Protocol": null, "EstimateContentLength": false, "EnableMpegtsM2TsMode": false, "TranscodeSeekInfo": "Auto", "CopyTimestamps": true, "Context": "Static", "EnableSubtitlesInManifest": false, "MaxAudioChannels": "6", "MinSegments": 0, "SegmentLength": 0, "BreakOnNonKeyFrames": false, "$type": "TranscodingProfile"}, {"Container": "ts", "Type": "Video", "VideoCodec": "h264", "AudioCodec": "ac3,aac,mp3,opus", "Protocol": "hls", "EstimateContentLength": false, "EnableMpegtsM2TsMode": false, "TranscodeSeekInfo": "Auto", "CopyTimestamps": false, "Context": "Streaming", "EnableSubtitlesInManifest": false, "MaxAudioChannels": "6", "MinSegments": 1, "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": "ac3,aac,mp3,opus,flac,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"}, {"Condition": "LessThanEqual", "Property": "AudioChannels", "Value": "2", "IsRequired": true, "$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": true, "$type": "ProfileCondition"}, {"Condition": "LessThanEqual", "Property": "VideoLevel", "Value": "42", "IsRequired": true, "$type": "ProfileCondition"}, {"Condition": "LessThanEqual", "Property": "VideoBitrate", "Value": "30000000", "IsRequired": true, "$type": "ProfileCondition"}], "ApplyConditions": [], "Codec": "h264", "Container": null, "$type": "CodecProfile"}, {"Type": "Video", "Conditions": [{"Condition": "LessThanEqual", "Property": "VideoBitrate", "Value": "30000000", "IsRequired": true, "$type": "ProfileCondition"}], "ApplyConditions": [], "Codec": null, "Container": null, "$type": "CodecProfile"}, {"Type": "Audio", "Conditions": [{"Condition": "LessThanEqual", "Property": "AudioSampleRate", "Value": "96000", "IsRequired": true, "$type": "ProfileCondition"}], "ApplyConditions": [], "Codec": "flac", "Container": null, "$type": "CodecProfile"}], "ResponseProfiles": [{"Container": "m4v", "AudioCodec": null, "VideoCodec": null, "Type": "Video", "OrgPn": null, "MimeType": "video/mp4", "Conditions": [], "$type": "ResponseProfile"}], "SubtitleProfiles": [{"Format": "js", "Method": "External", "DidlMode": null, "Language": null, "Container": null, "$type": "SubtitleProfile"}], "$type": "DeviceProfile"}
[13:52:56] [INF] [242] Jellyfin.Api.Helpers.MediaInfoHelper: User policy for example. EnablePlaybackRemuxing: True EnableVideoPlaybackTranscoding: True EnableAudioPlaybackTranscoding: True
[13:52:56] [INF] [242] Jellyfin.Api.Helpers.MediaInfoHelper: Profile: Unknown Profile, Path: /media/Video_File_With_Surround_Sound.mkv, isEligibleForDirectPlay: True, isEligibleForDirectStream: True
[13:52:56] [INF] [242] Jellyfin.Api.Helpers.MediaInfoHelper: Profile: Unknown Profile, No video direct play profiles found for /media/Video_File_With_Surround_Sound.mkv with codec hevc
[13:52:56] [INF] [242] Jellyfin.Api.Helpers.MediaInfoHelper: RemoteClientBitrateLimit: 10000000, RemoteIp: 192.168.42.124, IsInLocalNetwork: True
[13:52:56] [INF] [242] Jellyfin.Api.Helpers.MediaInfoHelper: Profile: Unknown Profile, Path: /media/Video_File_With_Surround_Sound.mkv, isEligibleForDirectPlay: True, isEligibleForDirectStream: True
[13:52:56] [INF] [242] Jellyfin.Api.Helpers.MediaInfoHelper: Profile: Unknown Profile, No video direct play profiles found for /media/Video_File_With_Surround_Sound.mkv with codec hevc
[13:52:56] [INF] [242] Jellyfin.Api.Helpers.MediaInfoHelper: RemoteClientBitrateLimit: 10000000, RemoteIp: 192.168.42.124, IsInLocalNetwork: True
[13:52:56] [INF] [242] Jellyfin.Api.Helpers.MediaInfoHelper: Profile: Unknown Profile, Path: /media/Video_File_With_Surround_Sound.mkv, isEligibleForDirectPlay: True, isEligibleForDirectStream: True
[13:52:56] [INF] [242] Jellyfin.Api.Helpers.MediaInfoHelper: Profile: Unknown Profile, No video direct play profiles found for /media/Video_File_With_Surround_Sound.mkv with codec hevc
[13:52:56] [INF] [221] Jellyfin.Api.Helpers.TranscodingJobHelper: /usr/lib/jellyfin-ffmpeg/ffmpeg -ss 00:11:01.704 -hwaccel vaapi -hwaccel_output_format vaapi -vaapi_device /dev/dri/renderD128 -i file:"/media/Video_File_With_Surround_Sound.mkv" -map 0:0 -map 0:1 -map -0:s -codec:v:0 h264_vaapi -mpegts_m2ts_mode 1 -force_key_frames "expr:gte(t,n_forced*5)" -vf "format=nv12|vaapi,hwupload,scale_vaapi=format=nv12" -copyts -avoid_negative_ts disabled -start_at_zero -b:v 6101365 -maxrate 6101365 -bufsize 12202730 -profile:v:0 high -level 41 -vsync -1 -map_metadata -1 -map_chapters -1 -threads 0 -codec:a:0 copy -y "/config/transcodes/23b7cab40235c48d8e318ff99b90d538.mkv"
[13:52:57] [WRN] [222] Jellyfin.Server.Middleware.ResponseTimeMiddleware: Slow HTTP Response from https://jelly.example.com/Sessions/Playing to 192.168.42.124 in 0:00:00.501338 with Status Code 204
[13:52:57] [INF] [104] Jellyfin.Plugin.PlaybackReporting.EventMonitorEntryPoint: Adding playback tracker : chromecast_1616939568834-64d1fe8272fc4061ab19219607c14ef9-a8ef68032e4a8969499f8b11960796c8
[13:52:57] [INF] [104] Jellyfin.Plugin.PlaybackReporting.Data.PlaybackTracker: PlaybackTracker : Adding Start Event : 03/28/2021 13:52:57
[13:52:57] [INF] [104] Jellyfin.Plugin.PlaybackReporting.EventMonitorEntryPoint: Creating StartPlaybackTimer Task
[13:52:57] [INF] [104] Trakt.ServerMediator: Playback Started
[13:52:57] [INF] [242] Jellyfin.Plugin.PlaybackReporting.EventMonitorEntryPoint: StartPlaybackTimer : Entered
[13:52:57] [INF] [235] Jellyfin.Plugin.PlaybackReporting.EventMonitorEntryPoint: Processing playback tracker : chromecast_1616939568834-64d1fe8272fc4061ab19219607c14ef9-a8ef68032e4a8969499f8b11960796c8
[13:52:57] [WRN] [235] Jellyfin.Server.Middleware.ResponseTimeMiddleware: Slow HTTP Response from https://jelly.example.com/Sessions/Playing/Progress to 192.168.42.124 in 0:00:00.7087471 with Status Code 204
[13:52:59] [WRN] [235] Jellyfin.Server.Middleware.ResponseTimeMiddleware: Slow HTTP Response from https://jelly.example.com/videos/a8ef6803-2e4a-8969-499f-8b11960796c8/stream.mkv?DeviceId=chromecast_1616939568834&MediaSourceId=a8ef68032e4a8969499f8b11960796c8&Static=false&VideoCodec=h264,vp8&AudioCodec=ac3,aac,mp3,opus,flac,vorbis&AudioStreamIndex=1&VideoBitrate=10680000&AudioBitrate=320000&StartTimeTicks=6617049770&PlaySessionId=3166c33a5d4147f39942865f6bce1b4e&api_key=redacted&SubtitleMethod=Encode&TranscodingMaxAudioChannels=6&CopyTimestamps=true&RequireAvc=false&Tag=a2e2b6ff50ec4b3e04b8655b942cb346&h264-profile=high,main,baseline,constrainedbaseline&h264-level=42&aac-audiochannels=2&TranscodeReasons=VideoCodecNotSupported,AudioCodecNotSupported to 192.168.42.124 in 0:00:02.4997925 with Status Code 200
[13:53:17] [INF] [220] Jellyfin.Plugin.PlaybackReporting.EventMonitorEntryPoint: session.RemoteEndPoint : 192.168.42.124
[13:53:17] [INF] [220] Jellyfin.Plugin.PlaybackReporting.EventMonitorEntryPoint: StartPlaybackTimer : event_playing_id     = a8ef68032e4a8969499f8b11960796c8
[13:53:17] [INF] [220] Jellyfin.Plugin.PlaybackReporting.EventMonitorEntryPoint: StartPlaybackTimer : event_user_id        = 64d1fe8272fc4061ab19219607c14ef9
[13:53:17] [INF] [220] Jellyfin.Plugin.PlaybackReporting.EventMonitorEntryPoint: StartPlaybackTimer : event_user_id_int    = 2
[13:53:17] [INF] [220] Jellyfin.Plugin.PlaybackReporting.EventMonitorEntryPoint: StartPlaybackTimer : session_playing_id   = a8ef68032e4a8969499f8b11960796c8
[13:53:17] [INF] [220] Jellyfin.Plugin.PlaybackReporting.EventMonitorEntryPoint: StartPlaybackTimer : session_user_id      = 64d1fe8272fc4061ab19219607c14ef9
[13:53:17] [INF] [220] Jellyfin.Plugin.PlaybackReporting.EventMonitorEntryPoint: StartPlaybackTimer : play_method          = Transcode (v:h264 a:direct)
[13:53:17] [INF] [220] Jellyfin.Plugin.PlaybackReporting.EventMonitorEntryPoint: StartPlaybackTimer : e.ClientName         = Chromecast
[13:53:17] [INF] [220] Jellyfin.Plugin.PlaybackReporting.EventMonitorEntryPoint: StartPlaybackTimer : e.DeviceName         = Chromecast
[13:53:17] [INF] [220] Jellyfin.Plugin.PlaybackReporting.EventMonitorEntryPoint: StartPlaybackTimer : ItemName             = This is the item name
[13:53:17] [INF] [220] Jellyfin.Plugin.PlaybackReporting.EventMonitorEntryPoint: StartPlaybackTimer : ItemId               = a8ef68032e4a8969499f8b11960796c8
[13:53:17] [INF] [220] Jellyfin.Plugin.PlaybackReporting.EventMonitorEntryPoint: StartPlaybackTimer : ItemType             = Episode
[13:53:17] [INF] [220] Jellyfin.Plugin.PlaybackReporting.EventMonitorEntryPoint: StartPlaybackTimer : All matches, playback registered
[13:53:17] [INF] [220] Jellyfin.Plugin.PlaybackReporting.EventMonitorEntryPoint: Playback tracker found, adding playback info : chromecast_1616939568834-64d1fe8272fc4061ab19219607c14ef9-a8ef68032e4a8969499f8b11960796c8
[13:53:17] [INF] [220] Jellyfin.Plugin.PlaybackReporting.EventMonitorEntryPoint: Saving playback tracking activity in DB
[13:53:17] [INF] [220] Jellyfin.Plugin.PlaybackReporting.EventMonitorEntryPoint: StartPlaybackTimer : Exited
[13:53:19] [INF] [249] Jellyfin.Api.Helpers.TranscodingJobHelper: Transcoding kill timer stopped for JobId e992fc52ec77494981f973a26b9cee29 PlaySessionId 3166c33a5d4147f39942865f6bce1b4e. Killing transcoding
[13:53:19] [INF] [249] Jellyfin.Api.Helpers.TranscodingJobHelper: Stopping ffmpeg process with q command for /config/transcodes/23b7cab40235c48d8e318ff99b90d538.mkv
[13:53:19] [INF] [249] Jellyfin.Api.Helpers.TranscodingJobHelper: FFmpeg exited with code 0
[13:53:19] [INF] [249] Jellyfin.Api.Helpers.TranscodingJobHelper: Deleting partial stream file(s) /config/transcodes/23b7cab40235c48d8e318ff99b90d538.mkv

Unstable Logs: (doesn't produce issue)

[13:57:41] [INF] [246] 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": 33103448, "MaxStaticBitrate": 33103448, "MusicStreamingTranscodingBitrate": 192000, "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", "Type": "Video", "$type": "DirectPlayProfile"}, {"Container": "mp4,m4v", "AudioCodec": "aac,mp3", "VideoCodec": "h264", "Type": "Video", "$type": "DirectPlayProfile"}, {"Container": "opus", "AudioCodec": null, "VideoCodec": null, "Type": "Audio", "$type": "DirectPlayProfile"}, {"Container": "mp3", "AudioCodec": "mp3", "VideoCodec": null, "Type": "Audio", "$type": "DirectPlayProfile"}, {"Container": "aac", "AudioCodec": null, "VideoCodec": null, "Type": "Audio", "$type": "DirectPlayProfile"}, {"Container": "m4a,m4b", "AudioCodec": "aac", "VideoCodec": null, "Type": "Audio", "$type": "DirectPlayProfile"}, {"Container": "flac", "AudioCodec": null, "VideoCodec": null, "Type": "Audio", "$type": "DirectPlayProfile"}, {"Container": "webma,webm", "AudioCodec": null, "VideoCodec": null, "Type": "Audio", "$type": "DirectPlayProfile"}, {"Container": "wav", "AudioCodec": null, "VideoCodec": null, "Type": "Audio", "$type": "DirectPlayProfile"}], "TranscodingProfiles": [{"Container": "ts", "Type": "Audio", "VideoCodec": null, "AudioCodec": "aac,mp3", "Protocol": "hls", "EstimateContentLength": false, "EnableMpegtsM2TsMode": false, "TranscodeSeekInfo": "Auto", "CopyTimestamps": false, "Context": "Streaming", "EnableSubtitlesInManifest": false, "MaxAudioChannels": "2", "MinSegments": 1, "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": "2", "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": "2", "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": "Streaming", "EnableSubtitlesInManifest": false, "MaxAudioChannels": "2", "MinSegments": 0, "SegmentLength": 0, "BreakOnNonKeyFrames": false, "$type": "TranscodingProfile"}, {"Container": "flac", "Type": "Audio", "VideoCodec": null, "AudioCodec": "flac", "Protocol": "http", "EstimateContentLength": false, "EnableMpegtsM2TsMode": false, "TranscodeSeekInfo": "Auto", "CopyTimestamps": false, "Context": "Streaming", "EnableSubtitlesInManifest": false, "MaxAudioChannels": "2", "MinSegments": 0, "SegmentLength": 0, "BreakOnNonKeyFrames": false, "$type": "TranscodingProfile"}, {"Container": "webma", "Type": "Audio", "VideoCodec": null, "AudioCodec": "webma", "Protocol": "http", "EstimateContentLength": false, "EnableMpegtsM2TsMode": false, "TranscodeSeekInfo": "Auto", "CopyTimestamps": false, "Context": "Streaming", "EnableSubtitlesInManifest": false, "MaxAudioChannels": "2", "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": "2", "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": "2", "MinSegments": 1, "SegmentLength": 0, "BreakOnNonKeyFrames": false, "$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": "2", "MinSegments": 0, "SegmentLength": 0, "BreakOnNonKeyFrames": false, "$type": "TranscodingProfile"}], "ContainerProfiles": [], "CodecProfiles": [{"Type": "Audio", "Conditions": [{"Condition": "LessThanEqual", "Property": "AudioSampleRate", "Value": "96000", "IsRequired": false, "$type": "ProfileCondition"}, {"Condition": "LessThanEqual", "Property": "AudioBitDepth", "Value": "24", "IsRequired": false, "$type": "ProfileCondition"}], "ApplyConditions": [], "Codec": "flac", "Container": null, "$type": "CodecProfile"}, {"Type": "VideoAudio", "Conditions": [{"Condition": "Equals", "Property": "IsSecondaryAudio", "Value": "false", "IsRequired": false, "$type": "ProfileCondition"}, {"Condition": "LessThanEqual", "Property": "IsSecondaryAudio", "Value": "2", "IsRequired": false, "$type": "ProfileCondition"}], "ApplyConditions": [], "Codec": "aac", "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": "41", "IsRequired": false, "$type": "ProfileCondition"}, {"Condition": "LessThanEqual", "Property": "Width", "Value": "1920", "IsRequired": true, "$type": "ProfileCondition"}], "ApplyConditions": [], "Codec": "h264", "Container": null, "$type": "CodecProfile"}, {"Type": "Video", "Conditions": [{"Condition": "LessThanEqual", "Property": "Width", "Value": "1920", "IsRequired": true, "$type": "ProfileCondition"}], "ApplyConditions": [], "Codec": null, "Container": null, "$type": "CodecProfile"}, {"Type": "VideoAudio", "Conditions": [{"Condition": "Equals", "Property": "IsSecondaryAudio", "Value": "false", "IsRequired": false, "$type": "ProfileCondition"}], "ApplyConditions": [], "Codec": null, "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": "vtt", "Method": "Hls", "DidlMode": null, "Language": null, "Container": null, "$type": "SubtitleProfile"}], "$type": "DeviceProfile"}
[13:57:41] [INF] [246] Jellyfin.Api.Helpers.MediaInfoHelper: User policy for example. EnablePlaybackRemuxing: True EnableVideoPlaybackTranscoding: True EnableAudioPlaybackTranscoding: True
[13:57:41] [INF] [246] Jellyfin.Api.Helpers.MediaInfoHelper: Profile: Unknown Profile, Path: /media/Video_File_With_Surround_Sound.mkv, isEligibleForDirectPlay: True, isEligibleForDirectStream: True
[13:57:41] [INF] [246] Jellyfin.Api.Helpers.MediaInfoHelper: Profile: Unknown Profile, No video direct play profiles found for /media/Video_File_With_Surround_Sound.mkv with codec hevc
[13:57:41] [INF] [246] Jellyfin.Api.Helpers.MediaInfoHelper: RemoteClientBitrateLimit: 10000000, RemoteIp: 192.168.42.124, IsInLocalNetwork: True
[13:57:41] [INF] [246] Jellyfin.Api.Helpers.MediaInfoHelper: Profile: Unknown Profile, Path: /media/Video_File_With_Surround_Sound.mkv, isEligibleForDirectPlay: True, isEligibleForDirectStream: True
[13:57:41] [INF] [246] Jellyfin.Api.Helpers.MediaInfoHelper: Profile: Unknown Profile, No video direct play profiles found for /media/Video_File_With_Surround_Sound.mkv with codec hevc
[13:57:41] [INF] [246] Jellyfin.Api.Helpers.MediaInfoHelper: RemoteClientBitrateLimit: 10000000, RemoteIp: 192.168.42.124, IsInLocalNetwork: True
[13:57:41] [INF] [246] Jellyfin.Api.Helpers.MediaInfoHelper: Profile: Unknown Profile, Path: /media/Video_File_With_Surround_Sound.mkv, isEligibleForDirectPlay: True, isEligibleForDirectStream: True
[13:57:41] [INF] [246] Jellyfin.Api.Helpers.MediaInfoHelper: Profile: Unknown Profile, No video direct play profiles found for /media/Video_File_With_Surround_Sound.mkv with codec hevc
[13:57:41] [INF] [220] Jellyfin.Plugin.PlaybackReporting.EventMonitorEntryPoint: Adding playback tracker : 1616939850952-64d1fe8272fc4061ab19219607c14ef9-a8ef68032e4a8969499f8b11960796c8
[13:57:41] [INF] [220] Jellyfin.Plugin.PlaybackReporting.Data.PlaybackTracker: PlaybackTracker : Adding Start Event : 03/28/2021 13:57:41
[13:57:41] [INF] [220] Jellyfin.Plugin.PlaybackReporting.EventMonitorEntryPoint: Creating StartPlaybackTimer Task
[13:57:41] [INF] [220] Trakt.ServerMediator: Playback Started
[13:57:41] [INF] [241] Jellyfin.Plugin.PlaybackReporting.EventMonitorEntryPoint: StartPlaybackTimer : Entered
[13:57:42] [INF] [180] Jellyfin.Plugin.PlaybackReporting.EventMonitorEntryPoint: Processing playback tracker : 1616939850952-64d1fe8272fc4061ab19219607c14ef9-a8ef68032e4a8969499f8b11960796c8
[13:57:42] [INF] [180] Jellyfin.Api.Helpers.TranscodingJobHelper: /usr/lib/jellyfin-ffmpeg/ffmpeg -hwaccel vaapi -hwaccel_output_format vaapi -vaapi_device /dev/dri/renderD128 -i file:"/media/Video_File_With_Surround_Sound.mkv" -map_metadata -1 -map_chapters -1 -threads 0 -map 0:0 -map 0:1 -map -0:s -codec:v:0 h264_vaapi -b:v 6101365 -maxrate 6101365 -bufsize 12202730 -profile:v:0 high -level 41  -force_key_frames:0 "expr:gte(t,0+n_forced*3)" -vf "format=nv12|vaapi,hwupload,scale_vaapi=format=nv12" -start_at_zero -vsync -1 -codec:a:0 aac -ac 2 -ab 384000 -af "volume=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/4788825d0d82059523c386a2f1b43e27%d.ts" -hls_playlist_type vod -hls_list_size 0 -y "/config/transcodes/4788825d0d82059523c386a2f1b43e27.m3u8"
[13:57:44] [WRN] [241] Jellyfin.Server.Middleware.ResponseTimeMiddleware: Slow HTTP Response from https://jelly.example.com/videos/a8ef6803-2e4a-8969-499f-8b11960796c8/hls1/main/0.ts?DeviceId=1616939850952&MediaSourceId=a8ef68032e4a8969499f8b11960796c8&Static=false&VideoCodec=h264&AudioCodec=aac,mp3&AudioStreamIndex=1&VideoBitrate=32719448&AudioBitrate=384000&MaxWidth=1920&PlaySessionId=e716fad2d8a848f1998535de1a4c6cfe&api_key=redacted&SubtitleMethod=Encode&TranscodingMaxAudioChannels=2&RequireAvc=false&Tag=a2e2b6ff50ec4b3e04b8655b942cb346&SegmentContainer=ts&MinSegments=1&BreakOnNonKeyFrames=False&h264-profile=high,main,baseline,constrainedbaseline&h264-level=41&TranscodeReasons=VideoCodecNotSupported to 192.168.42.124 in 0:00:02.55243 with Status Code 200
[13:58:01] [INF] [247] Jellyfin.Plugin.PlaybackReporting.EventMonitorEntryPoint: session.RemoteEndPoint : 192.168.42.124
[13:58:01] [INF] [247] Jellyfin.Plugin.PlaybackReporting.EventMonitorEntryPoint: StartPlaybackTimer : event_playing_id     = a8ef68032e4a8969499f8b11960796c8
[13:58:01] [INF] [247] Jellyfin.Plugin.PlaybackReporting.EventMonitorEntryPoint: StartPlaybackTimer : event_user_id        = 64d1fe8272fc4061ab19219607c14ef9
[13:58:01] [INF] [247] Jellyfin.Plugin.PlaybackReporting.EventMonitorEntryPoint: StartPlaybackTimer : event_user_id_int    = 2
[13:58:01] [INF] [247] Jellyfin.Plugin.PlaybackReporting.EventMonitorEntryPoint: StartPlaybackTimer : session_playing_id   = a8ef68032e4a8969499f8b11960796c8
[13:58:01] [INF] [247] Jellyfin.Plugin.PlaybackReporting.EventMonitorEntryPoint: StartPlaybackTimer : session_user_id      = 64d1fe8272fc4061ab19219607c14ef9
[13:58:01] [INF] [247] Jellyfin.Plugin.PlaybackReporting.EventMonitorEntryPoint: StartPlaybackTimer : play_method          = Transcode (v:h264 a:aac)
[13:58:01] [INF] [247] Jellyfin.Plugin.PlaybackReporting.EventMonitorEntryPoint: StartPlaybackTimer : e.ClientName         = Chromecast
[13:58:01] [INF] [247] Jellyfin.Plugin.PlaybackReporting.EventMonitorEntryPoint: StartPlaybackTimer : e.DeviceName         = Google Cast
[13:58:01] [INF] [247] Jellyfin.Plugin.PlaybackReporting.EventMonitorEntryPoint: StartPlaybackTimer : ItemName             = This is the item name
[13:58:01] [INF] [247] Jellyfin.Plugin.PlaybackReporting.EventMonitorEntryPoint: StartPlaybackTimer : ItemId               = a8ef68032e4a8969499f8b11960796c8
[13:58:01] [INF] [247] Jellyfin.Plugin.PlaybackReporting.EventMonitorEntryPoint: StartPlaybackTimer : ItemType             = Episode
[13:58:01] [INF] [247] Jellyfin.Plugin.PlaybackReporting.EventMonitorEntryPoint: StartPlaybackTimer : All matches, playback registered
[13:58:01] [INF] [247] Jellyfin.Plugin.PlaybackReporting.EventMonitorEntryPoint: Playback tracker found, adding playback info : 1616939850952-64d1fe8272fc4061ab19219607c14ef9-a8ef68032e4a8969499f8b11960796c8
[13:58:01] [INF] [247] Jellyfin.Plugin.PlaybackReporting.EventMonitorEntryPoint: Saving playback tracking activity in DB
[13:58:01] [INF] [247] Jellyfin.Plugin.PlaybackReporting.EventMonitorEntryPoint: StartPlaybackTimer : Exited

System (please complete the following information):

Gudui commented 2 years ago

Any updates on this bug?

It's unfortunate when you get a whole show which turn up can't be played due to this fault.

Any workarounds?

rdaems commented 1 year ago

I still have this problem, any updates?

How do you use the unstable channel?

hardwareadictos commented 3 months ago

Still having the same issue on 2024, Chromecast HD and Jellyfin 10.9.6.

Seems I'm unable to play transcoded 2160p content on the Chromecast until I reduce bitrate to 3mbps

GodTamIt commented 1 week ago

@hardwareadictos your problem seems to be different than this one -- this one's about audio issues. I think yours might be more related to issue #502