jellyfin / jellyfin-web

Web Client for Jellyfin
https://jellyfin.org
GNU General Public License v2.0
2.35k stars 1.25k forks source link

Chromium edge direct play HEVC-10bit video and the screen is shaking #2180

Closed bingzhangdai closed 3 years ago

bingzhangdai commented 3 years ago

Describe The Bug

edge chromium (Version 87.0.664.55 (Official build) (64-bit)) can direct play HEVC-10bit video and Jellyfin does not transcode the video. However the screen is always shaking. I tried many videos and the result is the same.

Media Information

General
Unique ID                                : 161418311064054559652594287514267689994 (0x7970092FC387D0AAAC051A499E70240A)
Complete name                            : \\omv.moredaisy.local\SATA1\Animations\鬼灭之刃 (2019)\Season 1\鬼灭之刃 - S01E01 - 残酷.mkv
Format                                   : Matroska
Format version                           : Version 4
File size                                : 2.14 GiB
Duration                                 : 23 min 41 s
Overall bit rate mode                    : Variable
Overall bit rate                         : 12.9 Mb/s
Encoded date                             : UTC 2020-06-17 09:09:44
Writing application                      : mkvmerge v32.0.0 ('Astral Progressions') 64-bit
Writing library                          : libebml v1.3.7 + libmatroska v1.5.0

Video
ID                                       : 1
Format                                   : HEVC
Format/Info                              : High Efficiency Video Coding
Format profile                           : Main 10@L4@High
Codec ID                                 : V_MPEGH/ISO/HEVC
Duration                                 : 23 min 41 s
Bit rate                                 : 11.3 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                                : 10 bits
Bits/(Pixel*Frame)                       : 0.227
Stream size                              : 1.87 GiB (87%)
Writing library                          : x265 3.3+3-g8f8e332f1+29:[Windows][GCC 9.3.0][64 bit] Yuuki 10bit+8bit+12bit
Encoding settings                        : rc=crf / crf=15.0000 / qcomp=0.65 / qpstep=4 / stats-write=0 / stats-read=0 / vbv-maxrate=30000 / vbv-bufsize=40000 / vbv-init=0.9 / crf-max=0.0 / crf-min=0.0 / no-lossless / no-cu-lossless / aq-mode=1 / aq-strength=0.80 / cbqpoffs=-2 / crqpoffs=-2 / ipratio=1.40 / pbratio=1.20 / psy-rd=1.70 / psy-rdoq=0.80 / deblock=-1:-1 / ref=5 / limit-refs=1 / limit-modes / bframes=8 / b-adapt=2 / bframe-bias=0 / b-pyramid / b-intra / weightp / weightb / min-keyint=1 / max-keyint=360 / rc-lookahead=80 / gop-lookahead=0 / scenecut=40 / hist-scenecut=0 / radl=0 / max-cu-size=32 / min-cu-size=8 / me=3 / subme=4 / merange=57 / rdoq-level=1 / rd=5 / rdpenalty=0 / dynamic-rd=0.00 / no-rd-refine / ----- / cutree / no-sao / rect / no-amp / no-open-gop / wpp / no-pmode / no-pme / no-psnr / no-ssim / nr-intra=0 / nr-inter=0 / no-constrained-intra / no-strong-intra-smoothing / max-tu-size=32 / tu-inter-depth=3 / tu-intra-depth=3 / limit-tu=4 / qg-size=8 / qpmax=69 / qpmin=0 / ----- / cpuid=1111039 / frame-threads=4 / numa-pools=+ / log-level=2 / input-csp=1 / input-res=1920x1080 / interlace=0 / level-idc=0 / high-tier=1 / uhd-bd=0 / no-allow-non-conformance / no-repeat-headers / no-aud / no-hrd / info / hash=0 / no-temporal-layers / lookahead-slices=0 / no-splice / no-intra-refresh / no-ssim-rd / signhide / no-tskip / max-merge=4 / temporal-mvp / no-frame-dup / no-hme / no-analyze-src-pics / no-sao-non-deblock / selective-sao=0 / no-early-skip / rskip / no-fast-intra / no-tskip-fast / no-splitrd-skip / zone-count=0 / no-strict-cbr / no-rc-grain / no-const-vbv / sar=0 / 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 / no-scenecut-aware-qpconformance-window-offsets / right=0 / bottom=0
Default                                  : Yes
Forced                                   : No
Color range                              : Limited
Color primaries                          : BT.709
Transfer characteristics                 : BT.709
Matrix coefficients                      : BT.709

Audio #1
ID                                       : 2
Format                                   : FLAC
Format/Info                              : Free Lossless Audio Codec
Codec ID                                 : A_FLAC
Duration                                 : 23 min 41 s
Bit rate mode                            : Variable
Bit rate                                 : 1 438 kb/s
Channel(s)                               : 2 channels
Channel layout                           : L R
Sampling rate                            : 48.0 kHz
Frame rate                               : 11.719 FPS (4096 SPF)
Bit depth                                : 24 bits
Compression mode                         : Lossless
Stream size                              : 244 MiB (11%)
Writing library                          : libFLAC 1.3.2 (UTC 2017-01-01)
Language                                 : Japanese
Default                                  : Yes
Forced                                   : No

Audio #2
ID                                       : 3
Format                                   : AAC LC
Format/Info                              : Advanced Audio Codec Low Complexity
Codec ID                                 : A_AAC-2
Duration                                 : 23 min 41 s
Bit rate                                 : 179 kb/s
Channel(s)                               : 2 channels
Channel layout                           : L R
Sampling rate                            : 48.0 kHz
Frame rate                               : 46.875 FPS (1024 SPF)
Compression mode                         : Lossy
Stream size                              : 30.2 MiB (1%)
Language                                 : Japanese
Default                                  : No
Forced                                   : No

Screenshots

image

System (please complete the following information):

Additional Context I can remember, several months ago, the media can play very well. I am not sure whether it is the regression of Jellyfin or Edge. There is no error in logs.

nyanmisaka commented 3 years ago

I also encountered this issue recently in edge chromium 87, but I think this should be an upstream issue in chromium or the hevc plugin from microsoft since this happens in Jellyfin direct play and my nextcloud video player.

Both are using the native video player from browser, we didn’t change anything. I think you should report this issue to edge developers. The hevc plugin allows edge to use D3D11VA decoder in their ffmpeg library. You can see that in edge://media-internals

BTW this problem didn’t happen on my Intel laptop.

nyanmisaka commented 3 years ago

I have filed a ticket to Edge community. https://techcommunity.microsoft.com/t5/discussions/hevc-main-10-video-playback-is-heavily-stuttering/m-p/1959752

bingzhangdai commented 3 years ago

Great! I will follow the issue there. Since it is not the problem of Jellyfin, I will close the issue. Thanks for your help.

nyanmisaka commented 3 years ago

Seems that the latest HEVC Video Extensions from Device Manufacturer is broken on AMD and NVIDIA.

I have just purchased HEVC Video Extensions and the stutter is gone.

bingzhangdai commented 3 years ago

I also purchased the extension. After installing, I experienced a very strange thing, that Jellyfin start transcoding for HEVC. image

Uninstalling the extension does not turn Edge into direct play. It is very strange. Cloud you @nyanmisaka verify that your Edge is directly playing the video normally?

nyanmisaka commented 3 years ago

Can you restart edge to load the new codec? image

bingzhangdai commented 3 years ago

Sadly, restarting Edge does not help. I will try to find another PC to recurrent the issue. Maybe it only happens on my laptop. :(

nyanmisaka commented 3 years ago

I recall that I also restarted the system due to some updates.

nyanmisaka commented 3 years ago

Unfortunately, the issue is back now on edge 87.0.664.66 :/

bingzhangdai commented 3 years ago

Same here. I upgraded to the latest stable version 88.0.705.53. The video is now directly playing but becomes shuttering again :(

Nowadays, Microsoft software quality goes down rapidly :(

nyanmisaka commented 3 years ago

Seems that Edge team have found the issue. The lastest HEVC plugin is incompatible with Edge. You can remove the existing plugin and downgrade it to 1.0.31823 for the time being. https://www.free-codecs.com/hevc_video_extension_download.htm

image

kuacci commented 3 years ago

I got this issue with the latest edge and jellyfin recently. But I disabled hardware acceleration in edge then everything goes right now.

image

bingzhangdai commented 3 years ago

@kuacci disabling the hardware acceleration will cause server side to transcode. I do not disable this option because I fear this will disable other types of video trancoding. For Hevc videos, I use Firefox instead.

kuacci commented 3 years ago

Then we have to wait chromium or edge to improve this.

Thanks for your sharing, I will test Firefox tonight.

-k

bingzhangdai commented 3 years ago

Actually, Firefox does not support HEVC transcoding. Server is responsible for transcoding, hence there is no problem. I use Firefox only because I do not want to change edge default settings.😂

wolonggl commented 3 years ago

Can you provide version HEVC Video Extension 1.0.31823 for download? thanks

nyanmisaka commented 3 years ago

Remove the .zip suffix before installing it. Microsoft.HEVCVideoExtension_1.0.31823.0_x64__8wekyb3d8bbwe.Appx.zip

wolonggl commented 3 years ago

Remove the .zip suffix before installing it. Microsoft.HEVCVideoExtension_1.0.31823.0_x64__8wekyb3d8bbwe.Appx.zip

thanks.

zjgcjy commented 3 years ago

Remove the .zip suffix before installing it. Microsoft.HEVCVideoExtension_1.0.31823.0_x64__8wekyb3d8bbwe.Appx.zip

Nice, problem solved with HEVC Video Extensions from Device Manufacturer @1.0.31823

riverscn commented 3 years ago

the problem remains in version 90.0.818.62. please re-open this issue.

nyanmisaka commented 3 years ago

Seems that Edge team have found the issue. The lastest HEVC plugin is incompatible with Edge. You can remove the existing plugin and downgrade it to 1.0.31823 for the time being. https://www.free-codecs.com/hevc_video_extension_download.htm

image

This is NOT a jellyfin issue. Please follow the solution above to downgrade your HEVC plugin.

jzr-supove commented 2 months ago

Still facing this issue after 4 years lmao

anujsedhai commented 3 weeks ago

Still facing this exact issue in Chrome