HEVC Main10 will not transcode for Exoplayer - Printable Version +- Jellyfin Forum (https://forum.jellyfin.org) +-- Forum: Support (https://forum.jellyfin.org/f-support) +--- Forum: Troubleshooting (https://forum.jellyfin.org/f-troubleshooting) +--- Thread: HEVC Main10 will not transcode for Exoplayer (/t-hevc-main10-will-not-transcode-for-exoplayer) |
HEVC Main10 will not transcode for Exoplayer - evilfranky - 2024-01-25 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: 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_Graphics_Technology#Capabilities_(GPU_video_acceleration) . 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.
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 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! RE: HEVC Main10 will not transcode for Exoplayer - TheDreadPirate - 2024-01-25 The log snippet you provided says it is direct playing, so the device compatibility is the only factor in that case. Can you share the full media info of this video from the Jellyfin UI? Logs are located in container path /config/data/logs. RE: HEVC Main10 will not transcode for Exoplayer - evilfranky - 2024-01-26 Good morning, Thanks for the quick reply, much appreciated. So what I have done is stopped the Jellyfin container, updated the 'logging.default.json' config file to provide DEBUG logging, deleted all the old log files and restarted the Jellyfin container. I then tried to play the same file and there is more info in the log now. I've zipped the log file and attached to this post. There are no transcode logs as transcoding is not being attempted. From the Exoplayer UI, pressing the information button doesn't really provide a lot of file info. So I loaded it into MPC-HC and pulled the media info from there:- [code] Video ID : 1 Format : HEVC Format/Info : High Efficiency Video Coding Format profile : Main 10@L4@Main Codec ID : V_MPEGH/ISO/HEVC Duration : 1 h 56 min Bit rate : 6 647 kb/s Width : 1 920 pixels Height : 802 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 0) Bit depth : 10 bits Bits/(Pixel*Frame) : 0.180 Stream size : 5.40 GiB Title : ***- Wonka.2023.1080p.WEBRip.DDP5.1.x265.10bit-*** Writing library : x265 3.5:[Linux][GCC 10.2.1][64 bit] 10bit Encoding settings : cpuid=1111039 / frame-threads=5 / wpp / no-pmode / no-pme / no-psnr / no-ssim / log-level=2 / input-csp=1 / input-res=1920x802 / interlace=0 / total-frames=0 / level-idc=0 / high-tier=1 / uhd-bd=0 / ref=4 / no-allow-non-conformance / no-repeat-headers / annexb / no-aud / no-hrd / info / hash=0 / no-temporal-layers / open-gop / min-keyint=23 / keyint=250 / gop-lookahead=0 / bframes=8 / b-adapt=2 / b-pyramid / bframe-bias=0 / rc-lookahead=48 / lookahead-slices=4 / scenecut=40 / hist-scenecut=0 / radl=0 / no-splice / no-intra-refresh / ctu=64 / min-cu-size=8 / rect / no-amp / max-tu-size=32 / tu-inter-depth=1 / tu-intra-depth=1 / limit-tu=0 / rdoq-level=2 / dynamic-rd=0.00 / no-ssim-rd / signhide / no-tskip / nr-intra=0 / nr-inter=0 / no-constrained-intra / strong-intra-smoothing / max-merge=5 / limit-refs=3 / limit-modes / me=3 / subme=3 / merange=57 / temporal-mvp / no-frame-dup / no-hme / weightp / no-weightb / no-analyze-src-pics / deblock=0:0 / sao / no-sao-non-deblock / rd=4 / selective-sao=4 / no-early-skip / rskip / no-fast-intra / no-tskip-fast / no-cu-lossless / no-b-intra / no-splitrd-skip / rdpenalty=0 / psy-rd=2.00 / psy-rdoq=1.00 / no-rd-refine / no-lossless / cbqpoffs=0 / crqpoffs=0 / rc=crf / crf=22.0 / qcomp=0.60 / qpstep=4 / stats-write=0 / stats-read=0 / vbv-maxrate=4500 / vbv-bufsize=9000 / vbv-init=0.8 / min-vbv-fullness=50.0 / max-vbv-fullness=80.0 / crf-max=0.0 / crf-min=0.0 / ipratio=1.40 / pbratio=1.30 / aq-mode=3 / aq-strength=1.00 / cutree / zone-count=0 / no-strict-cbr / qg-size=32 / no-rc-grain / qpmax=69 / qpmin=0 / no-const-vbv / sar=1 / overscan=0 / videoformat=5 / range=0 / colorprim=1 / transfer=1 / colormatrix=1 / chromaloc=1 / chromaloc-top=0 / chromaloc-bottom=0 / display-window=0 / cll=0,0 / min-luma=0 / max-luma=1023 / log2-max-poc-lsb=8 / vui-timing-info / vui-hrd-info / slices=1 / no-opt-qp-pps / no-opt-ref-list-length-pps / no-multi-pass-opt-rps / scenecut-bias=0.05 / hist-threshold=0.01 / no-opt-cu-delta-qp / no-aq-motion / no-hdr10 / no-hdr10-opt / no-dhdr10-opt / no-idr-recovery-sei / analysis-reuse-level=0 / analysis-save-reuse-level=0 / analysis-load-reuse-level=0 / scale-factor=0 / refine-intra=0 / refine-inter=0 / refine-mv=1 / refine-ctu-distortion=0 / no-limit-sao / ctu-info=0 / no-lowpass-dct / refine-analysis-type=0 / copy-pic=1 / max-ausize-factor=1.0 / no-dynamic-refine / no-single-sei / no-hevc-aq / no-svt / no-field / qp-adaptation-range=1.00 / scenecut-aware-qp=0conformance-window-offsets / right=0 / bottom=0 / decoder-max-rate=0 / no-vbv-live-multi-pass Language : English Default : Yes Forced : No Color range : Limited Color primaries : BT.709 Transfer characteristics : BT.709 Matrix coefficients : BT.709 Audio ID : 2 Format : E-AC-3 Format/Info : Enhanced AC-3 Commercial name : Dolby Digital Plus Codec ID : A_EAC3 Duration : 1 h 56 min Bit rate mode : Constant Bit rate : 384 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) Bit depth : 32 bits Compression mode : Lossy Stream size : 638 MiB (28%) Title : ***- Wonka.2023.1080p.WEBRip.DDP5.1.x265.10bit-*** Writing library : Lavc60.14.101 eac3 Language : English Service kind : Complete Main Default : Yes Forced : No Text #1 ID : 3 Format : UTF-8 Codec ID : S_TEXT/UTF8 Codec ID/Info : UTF-8 Plain Text Duration : 1 h 55 min Bit rate : 81 b/s Frame rate : 0.338 FPS Count of elements : 2348 Stream size : 68.8 KiB (0%) Title : ***- Wonka.2023.1080p.WEBRip.DDP5.1.x265.10bit-*** Language : English Default : Yes Forced : No [code] Are there any logs for Exoplayer on my device that I can grab as well? Cheers! RE: HEVC Main10 will not transcode for Exoplayer - TheDreadPirate - 2024-01-26 I see the device profile in the debug log. No mention of HEVC 10-bit, but I haven't see a lot of device profile examples so I don't know what is normal. When I get home I'll do some testing on my device that definitely supports HEVC 10-bit and report back. RE: HEVC Main10 will not transcode for Exoplayer - evilfranky - 2024-01-27 Thanks mate, appreciate your time. RE: HEVC Main10 will not transcode for Exoplayer - Revv23 - 2024-03-12 I just ran into this same issue on a Samsung a9+ Instead of transcode x265.10 just nulls out. So I ended up getting findroid going and turning on MPV player and I think it's working as intended. Weird edge case for sure. |