Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

"There was an error starting direct playback" #540

Open
nothing2obvi opened this issue Nov 6, 2024 · 0 comments
Open

"There was an error starting direct playback" #540

nothing2obvi opened this issue Nov 6, 2024 · 0 comments
Labels
bug Something isn't working

Comments

@nothing2obvi
Copy link

nothing2obvi commented Nov 6, 2024

Describe the bug
When playing an H.264 video on Jellyfin on iPhone 11, iOS 17.6.1, the server reports: Reason for transcoding: There was an error starting direct playback.

This is the media info of the video:
Image

This is the ffprobe of the video:

Input #0, mov,mp4,m4a,3gp,3g2,mj2, from '/hdd/Season 01/Terrace.House.Boys.x.Girls.Next.Door_S02E01_Week.14.2012_.1080p.NF.WEB-DL.AAC-IRENEBRO.mp4':
Metadata:
major_brand : mp42
minor_version : 512
compatible_brands: mp42dby1iso2avc1mp41
creation_time : 2024-11-06T17:58:43.000000Z
encoder : HandBrake 1.8.2 2024081000
Duration: 00:23:42.11, start: 0.000000, bitrate: 5237 kb/s
Stream #0:0[0x1](und): Video: h264 (High) (avc1 / 0x31637661), yuv420p(tv, bt709, progressive), 1920x1080 [SAR 1:1 DAR 16:9], 5104 kb/s, 23.98 fps, 23.98 tbr, 90k tbn (default)
Metadata:
creation_time : 2024-11-06T17:58:43.000000Z
handler_name : VideoHandler
vendor_id : [0][0][0][0]
Stream #0:1[0x2](jpn): Audio: eac3 (ec-3 / 0x332D6365), 48000 Hz, stereo, fltp, 128 kb/s (default)
Metadata:
creation_time : 2024-11-06T17:58:43.000000Z
handler_name : Stereo
vendor_id : [0][0][0][0]
Side data:
audio service type: main

These are the server logs:

[11:12:10] [INF] [19] Jellyfin.Api.Helpers.MediaInfoHelper: User policy for redacted. EnablePlaybackRemuxing: True EnableVideoPlaybackTranscoding: True EnableAudioPlaybackTranscoding: True
[11:12:12] [INF] [31] Jellyfin.Api.Controllers.DynamicHlsController: Current HLS implementation doesn't support non-keyframe breaks but one is requested, ignoring that request
[11:12:12] [INF] [31] MediaBrowser.MediaEncoding.Transcoding.TranscodeManager: /usr/lib/jellyfin-ffmpeg/ffmpeg -analyzeduration 200M -probesize 1G -fflags +genpts  -i file:"/media/jellyfin-dimepiece/TV Shows/Tracker (2024)/Season 02/Tracker.(2024)_S02E01_Out.of.the.Past_WEBDL-1080p.Proper_h264_8bit_EAC3_5.1_[FLUX].mkv" -map_metadata -1 -map_chapters -1 -threads 0 -map 0:0 -map 0:1 -map -0:s -codec:v:0 copy -bsf:v h264_mp4toannexb -start_at_zero -codec:a:0 libfdk_aac -ac 6 -ab 640000 -copyts -avoid_negative_ts disabled -max_muxing_queue_size 2048 -f hls -max_delay 5000000 -hls_time 6 -hls_segment_type fmp4 -hls_fmp4_init_filename "d7bd0e52c5cc071e1ec4333ea6c79ca8-1.mp4" -start_number 0 -hls_segment_filename "/config/cache/transcodes/d7bd0e52c5cc071e1ec4333ea6c79ca8%d.mp4" -hls_playlist_type vod -hls_list_size 0 -y "/config/cache/transcodes/d7bd0e52c5cc071e1ec4333ea6c79ca8.m3u8"
[11:12:15] [INF] [45] Jellyfin.Plugin.KodiSyncQueue.EntryPoints.UserSyncNotification: Started user data sync
[11:12:15] [INF] [45] Jellyfin.Plugin.KodiSyncQueue.EntryPoints.UserSyncNotification: User Data Sync: User redacted (f9ba48664db445b38303488551a08960) posted 2 updates
[11:12:15] [INF] [45] Jellyfin.Plugin.KodiSyncQueue.EntryPoints.UserSyncNotification: Finished user data sync, taking 00:00:00.0511649
[11:12:48] [INF] [12] MediaBrowser.Controller.MediaEncoding.TranscodingJob: Stopping ffmpeg process with q command for /config/cache/transcodes/d7bd0e52c5cc071e1ec4333ea6c79ca8.m3u8
[11:12:49] [INF] [12] MediaBrowser.MediaEncoding.Transcoding.TranscodeManager: Deleting partial stream file(s) /config/cache/transcodes/d7bd0e52c5cc071e1ec4333ea6c79ca8.m3u8
[11:12:49] [INF] [49] MediaBrowser.MediaEncoding.Transcoding.TranscodeManager: FFmpeg exited with code 0
[11:12:50] [INF] [45] Emby.Server.Implementations.Session.SessionManager: Playback stopped reported by app Jellyfin Mobile (iOS) 1.5.0 playing Out of the Past. Stopped at 31397 ms
[11:12:51] [INF] [48] Emby.Server.Implementations.ScheduledTasks.TaskManager: Webhook Item Added Notifier Completed after 0 minute(s) and 0 seconds
[11:12:51] [INF] [45] Jellyfin.Plugin.KodiSyncQueue.EntryPoints.UserSyncNotification: Started user data sync
[11:12:51] [INF] [36] jellyfin_ani_sync.UpdateProviderStatus: Item is in a folder the user does not want to be monitored; ignoring
[11:12:51] [ERR] [45] Jellyfin.Plugin.KodiSyncQueue.EntryPoints.UserSyncNotification: An error has occurred in UserUpdateTimerCallback
System.InvalidCastException: Unable to cast object of type 'System.Guid' to type 'System.String'.
  at lambda_method1901(Closure, Object, Object)
  at LiteDB.BsonMapper.DeserializeObject(EntityMapper entity, Object obj, BsonDocument value)
  at LiteDB.BsonMapper.Deserialize(Type type, BsonValue value)
  at LiteDB.LiteQueryable1.<ToEnumerable>b__27_2(BsonDocument x)
  at System.Linq.Enumerable.SelectEnumerableIterator2.ToList()
  at Jellyfin.Plugin.KodiSyncQueue.Data.DbRepo.SetUserInfoSync(List1 dtos, List1 itemRefs, String userId)
  at Jellyfin.Plugin.KodiSyncQueue.EntryPoints.UserSyncNotification.SaveUserChanges(List1 dtos, List1 itemRefs, String userName, String userId)
  at Jellyfin.Plugin.KodiSyncQueue.EntryPoints.UserSyncNotification.SendNotifications(IEnumerable1 changes, List1 itemRefs, CancellationToken cancellationToken)
  at Jellyfin.Plugin.KodiSyncQueue.EntryPoints.UserSyncNotification.UpdateTimerCallback(Object state)
[11:12:58] [INF] [36] Jellyfin.Server.Implementations.Trickplay.TrickplayManager: Finished creation of trickplay files for /media/jellyfin-duzzin/TV Shows/Terrace House - Boys x Girls Next Door/Season 01/Terrace.House.Boys.x.Girls.Next.Door_S01E02_Week.02.2012_.1080p.NF.WEB-DL.AAC-IRENEBRO.mp4
[11:12:58] [INF] [46] Jellyfin.Server.Implementations.Trickplay.TrickplayManager: Creating trickplay files at 320 width, for /media/jellyfin-duzzin/TV Shows/Terrace House - Boys x Girls Next Door/Season 01/Terrace.House.Boys.x.Girls.Next.Door_S01E03_Week.03.2012_.1080p.NF.WEB-DL.AAC-IRENEBRO.mp4 [ID: 55aa367c-db82-00bd-d314-4050f96a501b]
[11:12:58] [INF] [46] MediaBrowser.MediaEncoding.Encoder.MediaEncoder: Trickplay generation: /usr/lib/jellyfin-ffmpeg/ffmpeg -loglevel error -threads 1 -i file:"/media/jellyfin-duzzin/TV Shows/Terrace House - Boys x Girls Next Door/Season 01/Terrace.House.Boys.x.Girls.Next.Door_S01E03_Week.03.2012_.1080p.NF.WEB-DL.AAC-IRENEBRO.mp4" -an -sn -vf "fps=0.10000000149011612,setparams=color_primaries=bt709:color_trc=bt709:colorspace=bt709,scale=trunc(min(max(iw\,ih*(a*sar))\,320)/2)*2:trunc(ow/(a*sar)/2)*2,format=yuv420p" -threads 1 -c:v mjpeg -qscale:v 4 -fps_mode passthrough -f image2 "/tmp/jellyfin/e151084868434749b365db86828c7aac/%08d.jpg"
[11:12:58] [INF] [46] Jellyfin.Api.Helpers.MediaInfoHelper: User policy for redacted. EnablePlaybackRemuxing: True EnableVideoPlaybackTranscoding: True EnableAudioPlaybackTranscoding: True
[11:12:59] [INF] [36] Jellyfin.Api.Controllers.DynamicHlsController: Current HLS implementation doesn't support non-keyframe breaks but one is requested, ignoring that request
[11:12:59] [INF] [36] MediaBrowser.MediaEncoding.Transcoding.TranscodeManager: /usr/lib/jellyfin-ffmpeg/ffmpeg -analyzeduration 200M -probesize 1G -fflags +genpts  -i file:"/media/jellyfin-dimepiece/TV Shows/Shrinking/Shrinking_S02E05_Honesty.Era_WEBDL-1080p_HEVC_8bit_AC3_5.1_[X265].mkv" -map_metadata -1 -map_chapters -1 -threads 0 -map 0:0 -map 0:43 -map -0:s -codec:v:0 copy -tag:v:0 hvc1 -bsf:v hevc_mp4toannexb -start_at_zero -codec:a:0 libfdk_aac -ac 6 -ab 640000 -copyts -avoid_negative_ts disabled -max_muxing_queue_size 2048 -f hls -max_delay 5000000 -hls_time 6 -hls_segment_type fmp4 -hls_fmp4_init_filename "b3d6d27f9a84aa0c418a133764d31860-1.mp4" -start_number 0 -hls_segment_filename "/config/cache/transcodes/b3d6d27f9a84aa0c418a133764d31860%d.mp4" -hls_playlist_type vod -hls_list_size 0 -y "/config/cache/transcodes/b3d6d27f9a84aa0c418a133764d31860.m3u8"
[11:13:03] [WRN] [51] Trakt.ServerMediator: Received playback progress from user redacted but initial state was never set - setting it now!
[11:13:04] [INF] [52] Jellyfin.Plugin.KodiSyncQueue.EntryPoints.UserSyncNotification: Started user data sync
[11:13:04] [INF] [52] Jellyfin.Plugin.KodiSyncQueue.EntryPoints.UserSyncNotification: User Data Sync: User redacted (f9ba48664db445b38303488551a08960) posted 2 updates
[11:13:04] [INF] [52] Jellyfin.Plugin.KodiSyncQueue.EntryPoints.UserSyncNotification: Finished user data sync, taking 00:00:00.1096265
[11:13:46] [INF] [45] MediaBrowser.MediaEncoding.Transcoding.TranscodeManager: FFmpeg exited with code 0
[11:14:14] [INF] [19] MediaBrowser.MediaEncoding.Transcoding.TranscodeManager: Deleting partial stream file(s) /config/cache/transcodes/b3d6d27f9a84aa0c418a133764d31860.m3u8
[11:14:16] [INF] [32] Emby.Server.Implementations.Session.SessionManager: Playback stopped reported by app Jellyfin Mobile (iOS) 1.5.0 playing Honesty Era. Stopped at 69487 ms
[11:14:16] [INF] [11] jellyfin_ani_sync.UpdateProviderStatus: Item is in a folder the user does not want to be monitored; ignoring
[11:14:16] [INF] [37] Jellyfin.Plugin.KodiSyncQueue.EntryPoints.UserSyncNotification: Started user data sync
[11:14:16] [ERR] [37] Jellyfin.Plugin.KodiSyncQueue.EntryPoints.UserSyncNotification: An error has occurred in UserUpdateTimerCallback
System.InvalidCastException: Unable to cast object of type 'System.Guid' to type 'System.String'.
  at lambda_method1901(Closure, Object, Object)
  at LiteDB.BsonMapper.DeserializeObject(EntityMapper entity, Object obj, BsonDocument value)
  at LiteDB.BsonMapper.Deserialize(Type type, BsonValue value)
  at LiteDB.LiteQueryable1.<ToEnumerable>b__27_2(BsonDocument x)
  at System.Linq.Enumerable.SelectEnumerableIterator2.ToList()
  at Jellyfin.Plugin.KodiSyncQueue.Data.DbRepo.SetUserInfoSync(List1 dtos, List1 itemRefs, String userId)
  at Jellyfin.Plugin.KodiSyncQueue.EntryPoints.UserSyncNotification.SaveUserChanges(List1 dtos, List1 itemRefs, String userName, String userId)
  at Jellyfin.Plugin.KodiSyncQueue.EntryPoints.UserSyncNotification.SendNotifications(IEnumerable1 changes, List1 itemRefs, CancellationToken cancellationToken)
  at Jellyfin.Plugin.KodiSyncQueue.EntryPoints.UserSyncNotification.UpdateTimerCallback(Object state)
[11:14:18] [INF] [30] Jellyfin.Api.Helpers.MediaInfoHelper: User policy for redacted. EnablePlaybackRemuxing: True EnableVideoPlaybackTranscoding: True EnableAudioPlaybackTranscoding: True
[11:14:22] [INF] [30] Emby.Server.Implementations.ScheduledTasks.TaskManager: Webhook Item Added Notifier Completed after 0 minute(s) and 0 seconds
[11:14:37] [INF] [51] Jellyfin.Api.Helpers.MediaInfoHelper: User policy for redacted. EnablePlaybackRemuxing: True EnableVideoPlaybackTranscoding: True EnableAudioPlaybackTranscoding: True
[11:14:38] [INF] [50] Jellyfin.Api.Controllers.DynamicHlsController: Current HLS implementation doesn't support non-keyframe breaks but one is requested, ignoring that request
[11:14:38] [INF] [50] MediaBrowser.MediaEncoding.Transcoding.TranscodeManager: /usr/lib/jellyfin-ffmpeg/ffmpeg -analyzeduration 200M -probesize 1G  -i file:"/media/jellyfin-duzzin/TV Shows/Terrace House - Boys x Girls Next Door/Season 01/Terrace.House.Boys.x.Girls.Next.Door_S01E02_Week.02.2012_.1080p.NF.WEB-DL.AAC-IRENEBRO.mp4" -map_metadata -1 -map_chapters -1 -threads 0 -map 0:0 -map 0:1 -map -0:s -codec:v:0 libx264 -preset veryfast -crf 23 -maxrate 5990093 -bufsize 11980186 -profile:v:0 high -level 40 -x264opts:0 subme=0:me_range=16:rc_lookahead=10:me=hexFace-with-open-mouthpen_gop=0 -force_key_frames:0 "expr:gte(t,n_forced*3)" -sc_threshold:v:0 0 -vf "setparams=color_primaries=bt709:color_trc=bt709:colorspace=bt709,scale=trunc(min(max(iw\,ih*a)\,min(1920\,1080*a))/2)*2:trunc(min(max(iw/a\,ih)\,min(1920/a\,1080))/2)*2,format=yuv420p" -codec:a:0 libfdk_aac -ac 2 -ab 256000 -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 "b7df1d394ffb45b91a07505bb1df66f6-1.mp4" -start_number 0 -hls_segment_filename "/config/cache/transcodes/b7df1d394ffb45b91a07505bb1df66f6%d.mp4" -hls_playlist_type vod -hls_list_size 0 -y "/config/cache/transcodes/b7df1d394ffb45b91a07505bb1df66f6.m3u8"
[11:14:38] [INF] [49] Jellyfin.Plugin.KodiSyncQueue.EntryPoints.UserSyncNotification: Started user data sync
[11:14:38] [ERR] [49] Jellyfin.Plugin.KodiSyncQueue.EntryPoints.UserSyncNotification: An error has occurred in UserUpdateTimerCallback
System.InvalidCastException: Unable to cast object of type 'System.Guid' to type 'System.String'.
  at lambda_method1901(Closure, Object, Object)
  at LiteDB.BsonMapper.DeserializeObject(EntityMapper entity, Object obj, BsonDocument value)
  at LiteDB.BsonMapper.Deserialize(Type type, BsonValue value)
  at LiteDB.LiteQueryable1.<ToEnumerable>b__27_2(BsonDocument x)
  at System.Linq.Enumerable.SelectEnumerableIterator2.ToList()
  at Jellyfin.Plugin.KodiSyncQueue.Data.DbRepo.SetUserInfoSync(List1 dtos, List1 itemRefs, String userId)
  at Jellyfin.Plugin.KodiSyncQueue.EntryPoints.UserSyncNotification.SaveUserChanges(List1 dtos, List1 itemRefs, String userName, String userId)
  at Jellyfin.Plugin.KodiSyncQueue.EntryPoints.UserSyncNotification.SendNotifications(IEnumerable1 changes, List1 itemRefs, CancellationToken cancellationToken)
  at Jellyfin.Plugin.KodiSyncQueue.EntryPoints.UserSyncNotification.UpdateTimerCallback(Object state)
[11:14:41] [INF] [11] MediaBrowser.Controller.MediaEncoding.TranscodingJob: Stopping ffmpeg process with q command for /config/cache/transcodes/b7df1d394ffb45b91a07505bb1df66f6.m3u8
[11:14:42] [INF] [11] MediaBrowser.MediaEncoding.Transcoding.TranscodeManager: FFmpeg exited with code 0
[11:14:42] [INF] [11] Jellyfin.Api.Controllers.DynamicHlsController: Current HLS implementation doesn't support non-keyframe breaks but one is requested, ignoring that request
[11:14:42] [INF] [11] MediaBrowser.MediaEncoding.Transcoding.TranscodeManager: /usr/lib/jellyfin-ffmpeg/ffmpeg -analyzeduration 200M -probesize 1G -ss 00:01:42.000 -noaccurate_seek  -i file:"/media/jellyfin-duzzin/TV Shows/Terrace House - Boys x Girls Next Door/Season 01/Terrace.House.Boys.x.Girls.Next.Door_S01E02_Week.02.2012_.1080p.NF.WEB-DL.AAC-IRENEBRO.mp4" -map_metadata -1 -map_chapters -1 -threads 0 -map 0:0 -map 0:1 -map -0:s -codec:v:0 libx264 -preset veryfast -crf 23 -maxrate 5990093 -bufsize 11980186 -profile:v:0 high -level 40 -x264opts:0 subme=0:me_range=16:rc_lookahead=10:me=hexFace-with-open-mouthpen_gop=0 -force_key_frames:0 "expr:gte(t,n_forced*3)" -sc_threshold:v:0 0 -vf "setparams=color_primaries=bt709:color_trc=bt709:colorspace=bt709,scale=trunc(min(max(iw\,ih*a)\,min(1920\,1080*a))/2)*2:trunc(min(max(iw/a\,ih)\,min(1920/a\,1080))/2)*2,format=yuv420p" -codec:a:0 libfdk_aac -ac 2 -ab 256000 -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 "b7df1d394ffb45b91a07505bb1df66f6-1.mp4" -start_number 34 -hls_segment_filename "/config/cache/transcodes/b7df1d394ffb45b91a07505bb1df66f6%d.mp4" -hls_playlist_type vod -hls_list_size 0 -y "/config/cache/transcodes/b7df1d394ffb45b91a07505bb1df66f6.m3u8"
[11:15:53] [INF] [30] Emby.Server.Implementations.ScheduledTasks.TaskManager: Webhook Item Added Notifier Completed after 0 minute(s) and 0 seconds
close
close

System (please complete the following information):

  • iOS Version: 17.6.1
  • Jellyfin Expo version: 43.0.0
  • Jellyfin Server version: 10.10.1

To Reproduce

  1. Go to video
  2. Play video
  3. Server indicates that there was an error on direct playback, and it transcodes.

Expected behavior
The video should play without any transcoding.

Additional Context
I also tried to play an encode with profile Main instead of High, and the result is the same. The Jellyfin server transcodes.

I was told by someone on the Jellyfin forum that from my logs, it seems that on Jellyfin, the video got "copied" and audio got transcoded to AAC. However, as I watched the red bar on the dashboard, it was quite slow, at about the pace I usually see when Jellyfin transcodes video. Usually when I see Jellyfin transcoding only the audio portion of a show/movie, the red bar moves much faster.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
Status: Needs Investigation
Development

No branches or pull requests

1 participant