2024-01-25, 10:08 PM
(This post was last modified: 2024-01-26, 10:43 AM by evilfranky. Edited 2 times in total.)
Evening all,
Hoping joining the forum will finally resolve a long standing issue with transcoding HEVC Main10 video while using the official Jellyfin Android client Exoplayer on my Honor Tab X9.
I'd been using an LG GPAD 8.3 for years, an older tablet that supported HEVC Main but not HEVC Main10 and could never get Jellyfin to transcode using Exoplayer on there either. It finally died so bought this Honor last week stupidly assuming that an 'upper' low range modern tablet that is 10 years younger than my old LG would support all the video formats I need. I should have done more research, but still I should be able to use Jellyfin to help me out
General Info:
Videos also transcode correctly when using Brave Browser on my PC and played from the Jellyfin web portal.
Tried both Intel QSV and VAAPI both show the same issue. QSV is my default.
Now curiously, if I manually configure the desired resolution and bit rate within Exoplayer itself once the video has failed to start, I can get some form of playback. As an example, on one video which is 1080p HEVC Main10 YUV4:2:0 I have options from 1080p 60Mbps all the way down to 360p 420kbps. If I select 480p 3Mbps through to 360p 420kbps the video transcodes and works fine although at a much reduced resolution and quality. Anything higher and the video fails to play again.
Anyway, Jellyfin should be transcoding to Exoplayer like it does when using the webplayer. I can't understand why it doesn't.
Could it be that Exoplayer cannot differentiate between HEVC profile device abilities? So if a device can play back HEVC Main but not HEVC Main10 Exoplayer just looks at the top level and says, yep HEVC is supported and attempts direct play?
I'd love to get to the bottom of this as I'm sure other people must be having the same or very similar issues.
Also is there a guide for grabbing the logs correctly, I'm not sure I'm providing enough info.
Cheers!
Hoping joining the forum will finally resolve a long standing issue with transcoding HEVC Main10 video while using the official Jellyfin Android client Exoplayer on my Honor Tab X9.
I'd been using an LG GPAD 8.3 for years, an older tablet that supported HEVC Main but not HEVC Main10 and could never get Jellyfin to transcode using Exoplayer on there either. It finally died so bought this Honor last week stupidly assuming that an 'upper' low range modern tablet that is 10 years younger than my old LG would support all the video formats I need. I should have done more research, but still I should be able to use Jellyfin to help me out
General Info:
Jellyfin 10.8.13.
Ubuntu 22.04 running Jellyfin in a Docker container from the official repo.
Intel GeminiLake with UHD 605 Graphics. Codec support can be found here https://en.wikipedia.org/wiki/Intel_Grap...eleration) . HEVC Main10 is supported for decode.
Ubuntu 22.04 running Jellyfin in a Docker container from the official repo.
Intel GeminiLake with UHD 605 Graphics. Codec support can be found here https://en.wikipedia.org/wiki/Intel_Grap...eleration) . HEVC Main10 is supported for decode.
HEVC Main10 videos do NOT playback when using either software decoding or hardware acceleration when using the option from within the Exoplayer itself.
HEVC Main videos playback without issue with either hardware acceleration on or off. This is expected behaviour as this codec is supported by the Snapdragon 685 SOC.
When using an external player either MX Player Pro or VLC, videos will play natively with HEVC Main10 software decoding (there's enough grunt in the new tablet to do that).
When using the built in webplayer rather than Exoplayer, videos transcode without issue to H264 and play fine. But this will incur a battery penalty as I believe the webplayer will use software decode?HEVC Main videos playback without issue with either hardware acceleration on or off. This is expected behaviour as this codec is supported by the Snapdragon 685 SOC.
When using an external player either MX Player Pro or VLC, videos will play natively with HEVC Main10 software decoding (there's enough grunt in the new tablet to do that).
Videos also transcode correctly when using Brave Browser on my PC and played from the Jellyfin web portal.
Tried both Intel QSV and VAAPI both show the same issue. QSV is my default.
Now curiously, if I manually configure the desired resolution and bit rate within Exoplayer itself once the video has failed to start, I can get some form of playback. As an example, on one video which is 1080p HEVC Main10 YUV4:2:0 I have options from 1080p 60Mbps all the way down to 360p 420kbps. If I select 480p 3Mbps through to 360p 420kbps the video transcodes and works fine although at a much reduced resolution and quality. Anything higher and the video fails to play again.
Anyway, Jellyfin should be transcoding to Exoplayer like it does when using the webplayer. I can't understand why it doesn't.
Could it be that Exoplayer cannot differentiate between HEVC profile device abilities? So if a device can play back HEVC Main but not HEVC Main10 Exoplayer just looks at the top level and says, yep HEVC is supported and attempts direct play?
Code:
[2024-01-25 22:03:26.194 +00:00] [INF] [65] Jellyfin.Api.Helpers.MediaInfoHelper: User policy for "Frankie". EnablePlaybackRemuxing: True EnableVideoPlaybackTranscoding: True EnableAudioPlaybackTranscoding: True
[2024-01-25 22:03:26.194 +00:00] [INF] [65] Jellyfin.Api.Helpers.MediaInfoHelper: StreamBuilder.BuildVideoItem( Profile="Jellyfin Android", Path="/media/Movies/W/Wonka.2023/Wonka.2023.1080p.WEBRip.DDP5.1.x265.10bit-GalaxyRG265.mkv", AudioStreamIndex=null, SubtitleStreamIndex=null ) => ( PlayMethod=DirectPlay, TranscodeReason=0 ) "media:/videos/39923cc8-f0cd-f357-7e81-5e7914a9d3f4/stream.mkv?MediaSourceId=39923cc8f0cdf3577e815e7914a9d3f4&Static=true&VideoCodec=hevc&AudioCodec=eac3&AudioStreamIndex=1&api_key=<token>&Tag=0ff675331345cebf731a719c4ea585f7"
I'd love to get to the bottom of this as I'm sure other people must be having the same or very similar issues.
Also is there a guide for grabbing the logs correctly, I'm not sure I'm providing enough info.
Cheers!