jellyfin / Swiftfin

Native Jellyfin Client for iOS and tvOS
Mozilla Public License 2.0
2.46k stars 271 forks source link

Apple TV - Fully-compatible video stutters and drops keyframes #929

Open buresdv opened 9 months ago

buresdv commented 9 months ago

Describe the bug

I have an Apple TV connected via ethernet. I'm trying to play the following video:

Format                                   : Matroska
Format version                           : Version 4
File size                                : 4.83 GiB
Duration                                 : 1 h 52 min
Overall bit rate mode                    : Variable
Overall bit rate                         : 6 136 kb/s
Frame rate                               : 23.976 FPS
Writing application                      : Lavf58.76.100
Writing library                          : Lavf58.76.100
ErrorDetectionType                       : Per level 1

Video
ID                                       : 1
Format                                   : HEVC
Format/Info                              : High Efficiency Video Coding
Format profile                           : Main@L4@Main
Codec ID                                 : V_MPEGH/ISO/HEVC
Duration                                 : 1 h 52 min
Bit rate                                 : 24.9 Mb/s
Width                                    : 1 920 pixels
Height                                   : 1 080 pixels
Display aspect ratio                     : 16:9
Frame rate mode                          : Constant
Frame rate                               : 23.976 (24000/1001) FPS
Color space                              : YUV
Chroma subsampling                       : 4:2:0 (Type 0)
Bit depth                                : 8 bits
Bits/(Pixel*Frame)                       : 0.501
Stream size                              : 19.6 GiB
Title                                    : MPEG-4 AVC Video / 24920 kbps / 1080p / 23.976 fps / 16:9 / High Profile 4.1
Writing library                          : Lavc58.134.100 hevc_vaapi
Language                                 : English
Default                                  : Yes
Forced                                   : No

According to playback info, the video is played natively, with no transcoding. The network speed between the Apple TV and the server is ~500Mb/s.

Still, the playback stutters often and drops a large amount of keyframes, which results in a gray screen.

This happens only on the Apple TV; I have tested playing the video on a MacBook Air M1, iPhone 12, iPad Air M1 and iPhone 15 Pro, and they all play very smoothly, with no stuttering or dropped keyframes, so this is exclusively an Apple TV issue.

Jellyfin logs for this playback:

[11:17:00] [INF] [170] Jellyfin.Api.Helpers.MediaInfoHelper: StreamBuilder.BuildVideoItem( Profile=Anonymous Profile, Path=/data/movies/Test Movie.mkv, AudioStreamIndex=null, SubtitleStreamIndex=null ) => ( PlayMethod=DirectPlay, TranscodeReason=0 ) media:/videos/cb552ffa-f735-9e4c-efe9-44d888c36ec7/stream.mkv?MediaSourceId=cb552ffaf7359e4cefe944d888c36ec7&Static=true&VideoCodec=hevc&AudioCodec=dts&AudioStreamIndex=2&api_key=<token>&Tag=d2260e3eacce64dabc2e83fea0e5674b
[11:17:00] [INF] [10] Jellyfin.Api.Helpers.MediaInfoHelper: User policy for User. EnablePlaybackRemuxing: True EnableVideoPlaybackTranscoding: True EnableAudioPlaybackTranscoding: True
[11:17:00] [INF] [10] Jellyfin.Api.Helpers.MediaInfoHelper: StreamBuilder.BuildVideoItem( Profile=Anonymous Profile, Path=/data/movies/Test Movie.mkv, AudioStreamIndex=null, SubtitleStreamIndex=null ) => ( PlayMethod=DirectPlay, TranscodeReason=0 ) media:/videos/cb552ffa-f735-9e4c-efe9-44d888c36ec7/stream.mkv?

Video of the problem: https://streamable.com/lr1re2

Switching to "Native Player" in Experimental settings makes the video not load at all.

Application version

1.0.1 (70)

Where did you install the app from?

App Store

Device information

Apple TV 4K 128GB (2022)

OS version

tvOS 17.1 (21K69)

Jellyfin server version

10.8.12

justinstclair commented 7 months ago

I have a similar issue. On videos where the native player works the stuttering also goes away.

fabienengels commented 7 months ago

Same problem with Jellyfin 10.8.13. Native player : no playback issue but I loose the ability to choose the subtitles Swiftin : playback issue but I can choose subtitles

torrinworx commented 3 weeks ago

Experiencing the same issue on multiple apple tvs, even appletv 4k