jellyfin / jellyfin-androidtv

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

Android TV Dolby Vision frame drops #2625

Closed kraM1tt closed 1 year ago

kraM1tt commented 1 year ago

Describe the bug

When playing Dolby Vision files through exoplayer there is consistent frame drops. LibVLC doesn't support DV so I can't use that.

When playing the same DV file through the TV's native video player via DLNA, it plays perfectly smooth.

HDR10 files play just fine even in Jellyfin Android TV with exoplayer.

Media info: image

File is Direct Playing, no transcode at all.

Logs

No response

FFmpeg logs

No response

Media info of the file

General
Unique ID                      : 89499574682364015535303126427140354815 (0x4354FDB80361504C678124587D17F2FF)
Complete name                  : MOVIE.NAME
Format                         : Matroska
Format version                 : Version 4
File size                      : 33.7 GiB
Duration                       : 3 h 12 min
Overall bit rate               : 25.0 Mb/s
Writing application            : mkvmerge v74.0.0 ('You Oughta Know') 64-bit
Writing library                : libebml v1.4.4 + libmatroska v1.7.1

Video
ID                             : 1
Format                         : HEVC
Format/Info                    : High Efficiency Video Coding
Format profile                 : Main 10@L5@High
HDR format                     : Dolby Vision, Version 1.0, dvhe.08.06, BL+RPU, HDR10 compatible / SMPTE ST 2094 App 4, Version 1, HDR10+ Profile A compatible
Codec ID                       : V_MPEGH/ISO/HEVC
Duration                       : 3 h 12 min
Bit rate                       : 24.3 Mb/s
Width                          : 3 840 pixels
Height                         : 2 072 pixels
Display aspect ratio           : 1.85:1
Frame rate mode                : Constant
Frame rate                     : 23.976 (24000/1001) FPS
Color space                    : YUV
Chroma subsampling             : 4:2:0 (Type 2)
Bit depth                      : 10 bits
Bits/(Pixel*Frame)             : 0.127
Stream size                    : 32.6 GiB (97%)
Language                       : English
Default                        : Yes
Forced                         : No
Color range                    : Limited
Color primaries                : BT.2020
Transfer characteristics       : PQ
Matrix coefficients            : BT.2020 non-constant
Mastering display color primar : BT.2020
Mastering display luminance    : min: 0.0050 cd/m2, max: 1000 cd/m2
Maximum Content Light Level    : 412 cd/m2
Maximum Frame-Average Light Le : 201 cd/m2

Audio
ID                             : 2
Format                         : E-AC-3 JOC
Format/Info                    : Enhanced AC-3 with Joint Object Coding
Commercial name                : Dolby Digital Plus with Dolby Atmos
Codec ID                       : A_EAC3
Duration                       : 3 h 12 min
Bit rate mode                  : Constant
Bit rate                       : 768 kb/s
Channel(s)                     : 6 channels
Channel layout                 : L R C LFE Ls Rs
Sampling rate                  : 48.0 kHz
Frame rate                     : 31.250 FPS (1536 SPF)
Compression mode               : Lossy
Stream size                    : 1.03 GiB (3%)
Language                       : English
Service kind                   : Complete Main
Default                        : Yes
Forced                         : No
Complexity index               : 16
Number of dynamic objects      : 15
Bed channel count              : 1 channel
Bed channel configuration      : LFE

Text #1
ID                             : 3
Format                         : UTF-8
Codec ID                       : S_TEXT/UTF8
Codec ID/Info                  : UTF-8 Plain Text
Duration                       : 3 h 1 min
Bit rate                       : 38 b/s
Frame rate                     : 0.216 FPS
Count of elements              : 2359
Stream size                    : 51.6 KiB (0%)
Language                       : English
Default                        : No
Forced                         : No

Text #2
ID                             : 4
Format                         : UTF-8
Codec ID                       : S_TEXT/UTF8
Codec ID/Info                  : UTF-8 Plain Text
Duration                       : 3 h 8 min
Bit rate                       : 56 b/s
Frame rate                     : 0.304 FPS
Count of elements              : 3447
Stream size                    : 78.4 KiB (0%)
Title                          : SDH
Language                       : English
Default                        : No
Forced                         : No

Text #3
ID                             : 5
Format                         : UTF-8
Codec ID                       : S_TEXT/UTF8
Codec ID/Info                  : UTF-8 Plain Text
Duration                       : 3 h 2 min
Bit rate                       : 40 b/s
Frame rate                     : 0.221 FPS
Count of elements              : 2411
Stream size                    : 53.5 KiB (0%)
Title                          : Latin American
Language                       : Spanish (Latin America)
Default                        : No
Forced                         : No

Application version

0.15.5

Device information

Sony

Android version

SONY BRAVIA XR-65A75KU

Jellyfin server version

10.8.9

kraM1tt commented 1 year ago

Does nobody else have this issue? It's related to the recent release of blue people, it uses Dolby Vision that has fallback to HDR10/+. It's 25Mbps bitrate. I can play the original remux of Predator which is 46Mbps bitrate just fine with no dropped frames, but that uses standard HDR10

KuraiAndras commented 1 year ago

Same here

RubenTeixeira commented 1 year ago

I do experience some judder if frame rate matching is enabled. Disabling it improves the playback. This is on Android TV 10 on a Sony A84J, and happens regardless of the video being SDR/HDR10/DV. How can I be sure that frames are being dropped? Do you figured this by observing some sort of artifacts?

kraM1tt commented 1 year ago

I think you have a different issue, this only happens with DV content inside the JF player, on Disney+/Netflix etc with DV the issue is not present. By dropped frames I mean it's completely choppy, no smooth movement, not so much judder, more stutter.

camilofabregas commented 1 year ago

I had the same problem tonight watching the Tetris movie. In my case, I have a Samsung QLED that doesn't support Dolby Vision. I had the same problem with HDR10. Same issue: frame drops. Not judder, but frame drops. It also caused the audio to go off every once in a while. It's the first time it's happened to me.

Using Jellyfin for Chromecast with Google TV.

Video ID : 1 Format : HEVC Format/Info : High Efficiency Video Coding Format profile : Main 10@L5@High HDR format : Dolby Vision, Version 1.0, dvhe.08.06, BL+RPU, HDR10 compatible / SMPTE ST 2094 App 4, Version 1, HDR10+ Profile B compatible Codec ID : V_MPEGH/ISO/HEVC Duration : 1 h 57 min Bit rate : 24.4 Mb/s Width : 3 840 pixels Height : 1 606 pixels Display aspect ratio : 2.40:1 Frame rate mode : Constant Frame rate : 23.976 (24000/1001) FPS Color space : YUV Chroma subsampling : 4:2:0 (Type 2) Bit depth : 10 bits Bits/(Pixel*Frame) : 0.165 Stream size : 20.0 GiB (97%) Language : English Default : Yes Forced : No Color range : Limited Color primaries : BT.2020 Transfer characteristics : PQ Matrix coefficients : BT.2020 non-constant Mastering display color primaries : Display P3 Mastering display luminance : min: 0.0050 cd/m2, max: 1000 cd/m2 Maximum Content Light Level : 1698 cd/m2 Maximum Frame-Average Light Level : 75 cd/m2

jellyfin-bot commented 1 year 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.