jellyfin / jellyfin-android

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

Playback choppiness with TranscodeReason=VideoLevelNotSupported #1273

Closed kevgrig closed 5 months ago

kevgrig commented 10 months ago

Describe the bug

I want to get to a point where there is no transcoding to avoid the choppiness.

  1. Play a video on (old) AndroidTV and it plays well and jellyfin server shows TranscodeReason=0 (good).
  2. Play the same video on an Android 13 phone (much newer than the AndroidTV) on the Jellyfin Android app and it plays very choppy. This is with the default video player of Web player. The jellyfin server shows TranscodeReason=VideoLevelNotSupported:

    Jan 05 19:34:54 x270b jellyfin[842132]: [19:34:54] [INF] [52] Jellyfin.Api.Helpers.MediaInfoHelper: StreamBuilder.BuildVideoItem( Profile=Anonymous Profile, Path=[...], AudioStreamIndex=null, SubtitleStreamIndex=null ) => ( PlayMethod=Transcode, TranscodeReason=VideoLevelNotSupported ) media:[...]

  3. Next, tried the other players. In the Android app } Settings } Client Settings } Video player type = Integrated Player
  4. Restart Jellyfin Android app
  5. Play the same video. A spinner comes up and the video never plays. jellyfin server shows no new log statements.
  6. In the Android app } Settings } Client Settings } Video player type = External Player; External player app = VLC Player
  7. Restart Jellyfin Android app
  8. Play the same video. The Android app receives the error, "Unable to load media info from server". jellyfin server shows a request for the file and TranscodeReason=0 (good) but the video never plays:

    Jan 05 19:48:28 x270b jellyfin[842132]: [19:48:28] [INF] [33] Jellyfin.Api.Helpers.MediaInfoHelper: StreamBuilder.BuildVideoItem( Profile=Android External Player Stub, Path=[...], AudioStreamIndex=null, SubtitleStreamIndex=null ) => ( PlayMethod=DirectPlay, TranscodeReason=0 ) media:[...]


Here's ffmpeg -i metadata on the mp4:

Input #0, mov,mp4,m4a,3gp,3g2,mj2, from '[..]':
  Metadata:
    major_brand     : isom
    minor_version   : 512
    compatible_brands: isomiso2avc1mp41
    encoder         : Lavf60.3.100
  Duration: 00:02:05.85, start: 0.000000, bitrate: 5806 kb/s
  Stream #0:0[0x1](und): Video: h264 (High) (avc1 / 0x31637661), yuv420p(tv, bt709, progressive), 3840x2160 [SAR 1:1 DAR 16:9], 5671 kb/s, 24 fps, 24 tbr, 12288 tbn (default)
    Metadata:
      handler_name    : VideoHandler
      vendor_id       : [0][0][0][0]
      encoder         : Lavc60.3.100 libx264
  Stream #0:1[0x2](und): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 130 kb/s (default)
    Metadata:
      handler_name    : SoundHandler
      vendor_id       : [0][0][0][0]

logcatextracts.zip

Logs

I have full adb logcats for all three issues:

1: web player causes transcoding
2: integrated player just spins
3: VLC player gives error

But I just extracted out lines with "jellyfin" in them though I can provide
other lines if you tell me what to search for. I tried pasting all outputs
but I got a GitHub error, "Comment is too long (maximum is 65536 characters)"
so I attached the text files in logcatextracts.zip to the description above.

Application version

2.6.0

Where did you install the app from?

Google Play

Device information

Motorola Edge 2022

Android version

Android 13

Jellyfin server version

master@98177b8649066a47ee0ac898b293fb23313c7521

Which video player implementations does this bug apply to?

kevgrig commented 10 months ago

I should have added that I click the play button on the playlist (whose first video has the issue) at approximately these times:

  1. Issue 1: 19:34:52
  2. Issue 2: 19:44:16
  3. Issue 3: 19:48:26
kevgrig commented 10 months ago

For issue 2, I see this warning right after playing:

01-05 19:44:17.351 25576 25576 E WebView : Uncaught (in promise) TypeError: Cannot read properties of undefined (reading 'Container'), webpack-internal:///./components/playback/playbackmanager.js (412)

No obviously problematic warnings/errors in the issue 1 or issue 3 logcats.

jellyfin-bot commented 6 months 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.