Linux Chrome HEVC támogatás - Kinek működik?

Fórumok

Sziasztok!

 

Elv 1-2 főverzió óta a linuxos Chrome is rendelkezik HEVC/H265 támogatással. (elég hasznos dolog, főleg akik web alapu biztonsagi kamerakat hasznalnak) . Nekem viszont valamiert nem hajlando a 108-as verzioju chrome lejatszani a HEVC tartalmat linux alatt (Win alatt mar megy, 1-2 release ota). Nalam van a hiba? Vagy kell valami flag indulashoz? Van barki, akinel megy egyaltalan?

Itt egy teszt video: https://test-videos.co.uk/vids/bigbuckbunny/mp4/h265/1080/Big_Buck_Bunn…

Ami erdekes, hogy ez a chromium alapu browser viszont gond nelkul viszi a h265-ot (szinten 1-2 verzio ota) linux alatt is...

 

https://github.com/Alex313031/Thorium

Hozzászólások

De miért jó, a Google integráción kívül a Chrome Linuxra, ha ott a Chromium, ami, ha jól tudom (de javítsatok ki) szépen frissül a csomagtárolóból?

Windows alatt persze pakold ki a binárist, ahová akarod és frissítgesd kézzel, viszont ezért volt olyan projektem, amihez pont ideális volt Windows alatt is, egy fix weboldalról töltöttem le adatokat ütemezve Chromiumon keresztül.

Szerkesztve: 2023. 01. 04., sze – 15:05

nem a kérdésedre válaszolok, de gondolom megemlítem:

nálam Windows 10 Pro 21H2 (Quadro K2100M, 426.78-as driver) alatt Google Chrome "A Chrome naprakész Verzió: 108.0.5359.125 (Hivatalos verzió) (64 bites)" alatt sem megy az általad linkelt videó bekapcsolt "Hardveres gyorsítás alkalmazása lehetőség szerint" esetén, megjelenik a lejátszó teljes méretben, de fekete kép fogad, lejátszás indítása esetén "nem mozdul", beletekerni "enged", de ugyanaz, fekete, nem megy a "playhead", viszont a jobb egérgombos menüben le tudom menteni,
ok, a GPU (GK 106) nem támogatja a HEVC decoding-ot, kapcsoljuk ki a "Hardveres gyorsítás alkalmazása lehetőség szerint"-et, viszont így hiába jelenik meg a lejátszó, de az is "kicsiben", nem a videó méretének megfelelően, és jobb egérgombra a mentést sem lehet választani,

ugyanezen a rendszeren a Chromium alapú "Microsoft EdgeVersion 108.0.1462.54 (Official build) (64-bit)"-del meg semmi probléma, simán megy a lejátszás...

Windows 10 Pro 21H2 (operációs rendszer bildszáma: 19044.2364)

NVIDIA GeForce GT 1030 (driver: 31.0.15.1694)

Google Chrome "A Chrome naprakész Verzió: 108.0.5359.125 (Hivatalos verzió) (64 bites)" minden gond nélkül lejátssza, lehet benne tekerni.

 

Microsoft Edge Verzió: 108.0.1462.54 (Hivatalos build) (64 bites) fekete képernyő, nem játssza le.

köszönöm a választ,

nálam is 19044.2364-es az OS build,

"érdekes", hogy nálam/nálad pont "fordítva" működik..., gondolom a GPU lehet az oka, az nVidia GeForce GT 1030-as az ugye GP108-as, meg nálam a driver (fájl verzió szerint) 25.21.14.2678-os, windows szerint ez a "legjobb" a videokártyámhoz...

Nálam Arch Linuxon egyik se viszi, még hardveres lejátszással sem (pedig a GPU támoigatja, hozzá szükséges va-api csomag fent van). Se a Firefox, se a Chrome, se a Chromium, mindegyik 108-as verzió, csak az mpv. Az is igaz, hogy a neten iszonyat ritkán használják, főleg x264 megy helyette, a YouTube meg a Google-féle vp8/vp9-et erőlteti helyette, esetleg av1 kísérleti jelleggel. Igazából az x265 még ilyen kalóz körökben sem népszerű, nem sok filmet, sorozatot, videót látok x265-ként megosztva, épp csak mutatóba akad egy-egy. Gondolom a warezt leszámítva azért nincs beépítve az x265-lejátszás, mert licencköteles lenne.

The world runs on Excel spreadsheets. (Dylan Beattie)

> nem sok filmet, sorozatot, videót látok x265-ként megosztva

pedig torrenten a hd tartalmak kb fele h265-be megy mar egy ideje... foleg a streamingekrol lementett cuccoke.

es amugy foleg az IP kamerak miatt erdekes a h265, mert azok mar evek ota azt hasznaljak, sok mar nem is tud h264-et vagy csak szarabb felbontasban/minosegben. raadasul a h265 kb fele bitratan tudja a h264 minoseget, ami folyamatos rogzitesnel nagyon nem mind1.

onmagaban a bitstream formatum irasa nem sokkal bonyolultabb, amitol jobban tomoritene az a tobbfele mozgas/zoomolas/elforgatas stb felismerese es optimalizalasa (motion prediction), meg a blokkmeret dinamikus valtoztatgatasa, de ezzel nem foglalkoznak az olcso kinaiak, mondjuk egy ip kameranal nincs is ra nagyon szukseg.

meg eleg volt nekik 1x kifejleszteni (ellopni) egy ilyen chip tervet es milliardos mennyisegben gyartjak, gondolom ok licenszdijat se fizetnek utana, meg a compliance teszteknek se kell megfeleljenek, eleg ha egy atlag h265 dvr vagy lejatszo elboldogul a kimenettel...

a netflix es tarsai viszont szejjel optimalizalt h265 codecet hasznalhatnak, ami akar 1000 fele parameterrel is letomoriti ugyanazt a szekvenciat es kivalasztja a legjobb meretu/minosegut, mivel nekik eleg 1x megcsinalni a tpmoritest viszont sok millioszor fogjak streamelni utana ahol minden bit adatforgalom szamit. ezert van hogy 2-3 gb meretben tudnak HD minosegu filmeket streamelni.

Nem egyszerűen az a baj, hogy licenszköteles lenne, a h.264 is az volt és végül valahogy megoldották. (Ok, ott is voltak vargabetűk, ha Google kényszerből nem kezdi el a VP8/VP9-et nyomtani akkor az sem ment volna simán)

A h.265-nél a szabadalomtulajdonosok nem bírtak megegyezni a feltételekben, ezért több különálló patent pool jött létre, más-más cégekkel, más szerződéses feltételekkel, más díjszabással. Korábban az MPEG LA kezelte az összes szabadalmat, elég volt velük leszerződni. Most van a HEVC Advance nevezetű társaság is, ami a h.264-hez képest 20x-os per-device árat kér a h.265-ért (mindez az MPEG LA HEVC licenszen felül!) + online streaming szolgáltatásnál megtekintésenkénti járulékot is megköveteltek. Mindezt kb Netflix-re szabott árakon, ahol minden letöltés "nagy értékű", ellenben mondjuk Youtube és hasonlókkal, ahol nagyszámú, egyenként elenyésző bevételt produkáló letöltésre épül a modell. Ez utóbbiakat valószínűleg teljesen ellehetetlenítette volna. Szóval sikerült megoldani, hogy ebben a történetben az MPEG LA legyen a "jó zsaru", ami szerintem szép teljesítmény. És akkor még jöttek olyan finomságok, hogy pl a Technicolor (és talán még 1-2 másik cég is) időközben kilépett a HEVC Advance poolból is, és velük még ezeken felül külön kell leszerződni.

Konkrétan egy jogi agyrém az egész, nemcsak hogy kedvezőtlenek a feltételek, de teljesen kiszámíthatatlanul változik is, ahogy a cégek ki-be lépkednek a patent poolokba.

Nem csodálkozom rajta, hogy a böngésző készítők - a saját érdekükben - inkább letiltják a támogatást.

Régóta vágyok én, az androidok mezonkincsére már!

Nos amit még sikerült kihámozni.

Linux alatt az AMD gpu-k a mesa-t használják. A jogi viták elkerülése miatt alapban a mesa-ban nincs benne a hw támogatás AVC/HEVC/VC-1-hez.
Intel és Nvidia gpu-k ebben nem érintettek, mert azok a saját meghajtójukat használják. Elvileg ha külső forrásból fordítod a mesa-t van rá lehetőség, hogy bekapcsolt a hw támogatást. Míg nincs hw támogatás (mint fent meg tudod nézni / chrome://gpu /) addig nem lesz videolejátszás se. Bár elvileg CPU-ból mennie kellene, de nem igazán működik. Letöltve persze cpu kódolva megy a lejátszás.

debian 11 amdgpu

 

Graphics Feature Status

  • Canvas: Hardware accelerated
  • Canvas out-of-process rasterization: Disabled
  • Direct Rendering Display Compositor: Disabled
  • Compositing: Hardware accelerated
  • Multiple Raster Threads: Enabled
  • OpenGL: Enabled
  • Rasterization: Hardware accelerated on all pages
  • Raw Draw: Disabled
  • Video Decode: Hardware accelerated
  • Video Encode: Software only. Hardware acceleration disabled
  • Vulkan: Disabled
  • WebGL: Hardware accelerated
  • WebGL2: Hardware accelerated
  • WebGPU: Disabled

 

Video Acceleration Information

Decoding

Decode h264 baseline

16x16 to 4096x4096 pixels

Decode h264 main

16x16 to 4096x4096 pixels

Decode h264 high

16x16 to 4096x4096 pixels

Decode vp9 profile0

16x16 to 8192x4352 pixels

Decode vp9 profile2

16x16 to 8192x4352 pixels

Decode hevc main

16x16 to 8192x4352 pixels

Decode hevc main 10

16x16 to 8192x4352 pixels

Decode hevc main still-picture

16x16 to 8192x4352 pixels

 

a chrome, chromium es firefox a linkelt videot nem jatssza le.

mplayer lejatssza

szerk:

feltettem a mesa-vdpau-drivers csomagot, mert az mplayer mindig hianyolja a libvdpau_radeonsi.so-t, es ... a bongeszok igy sem jatsszak le.

szerk2:

vdpauinfo-ban ez volt

Decoder capabilities:

name                        level macbs width height
----------------------------------------------------
MPEG1                          --- not supported ---
MPEG2_SIMPLE                    3 65536  4096  4096
MPEG2_MAIN                      3 65536  4096  4096
H264_BASELINE                  52 65536  4096  4096
H264_MAIN                      52 65536  4096  4096
H264_HIGH                      52 65536  4096  4096
VC1_SIMPLE                      1 65536  4096  4096
VC1_MAIN                        2 65536  4096  4096
VC1_ADVANCED                    4 65536  4096  4096
MPEG4_PART2_SP                  3 65536  4096  4096
MPEG4_PART2_ASP                 5 65536  4096  4096
DIVX4_QMOBILE                  --- not supported ---
DIVX4_MOBILE                   --- not supported ---
DIVX4_HOME_THEATER             --- not supported ---
DIVX4_HD_1080P                 --- not supported ---
DIVX5_QMOBILE                  --- not supported ---
DIVX5_MOBILE                   --- not supported ---
DIVX5_HOME_THEATER             --- not supported ---
DIVX5_HD_1080P                 --- not supported ---
H264_CONSTRAINED_BASELINE       0 65536  4096  4096
H264_EXTENDED                  --- not supported ---
H264_PROGRESSIVE_HIGH          --- not supported ---
H264_CONSTRAINED_HIGH          --- not supported ---
H264_HIGH_444_PREDICTIVE       --- not supported ---
VP9_PROFILE_0                  --- not supported ---
VP9_PROFILE_1                  --- not supported ---
VP9_PROFILE_2                  --- not supported ---
VP9_PROFILE_3                  --- not supported ---
HEVC_MAIN                      186 139264  8192  4352
HEVC_MAIN_10                   186 139264  8192  4352
HEVC_MAIN_STILL                --- not supported ---
HEVC_MAIN_12                   --- not supported ---
HEVC_MAIN_444                  --- not supported ---
HEVC_MAIN_444_10               --- not supported ---
HEVC_MAIN_444_12               --- not supported ---

$ vainfo
libva info: VA-API version 1.10.0
libva info: Trying to open /usr/lib/x86_64-linux-gnu/dri/radeonsi_drv_video.so
libva info: Found init function __vaDriverInit_1_10
libva info: va_openDriver() returns 0
vainfo: VA-API version: 1.10 (libva 2.10.0)
vainfo: Driver version: Mesa Gallium driver 20.3.5 for AMD RENOIR (DRM 3.40.0, 5.10.0-20-amd64, LLVM 11.0.1)
vainfo: Supported profile and entrypoints
     VAProfileMPEG2Simple            : VAEntrypointVLD
     VAProfileMPEG2Main              : VAEntrypointVLD
     VAProfileVC1Simple              : VAEntrypointVLD
     VAProfileVC1Main                : VAEntrypointVLD
     VAProfileVC1Advanced            : VAEntrypointVLD
     VAProfileH264ConstrainedBaseline: VAEntrypointVLD
     VAProfileH264ConstrainedBaseline: VAEntrypointEncSlice
     VAProfileH264Main               : VAEntrypointVLD
     VAProfileH264Main               : VAEntrypointEncSlice
     VAProfileH264High               : VAEntrypointVLD
     VAProfileH264High               : VAEntrypointEncSlice
     VAProfileHEVCMain               : VAEntrypointVLD
     VAProfileHEVCMain               : VAEntrypointEncSlice
     VAProfileHEVCMain10             : VAEntrypointVLD
     VAProfileHEVCMain10             : VAEntrypointEncSlice
     VAProfileJPEGBaseline           : VAEntrypointVLD
     VAProfileVP9Profile0            : VAEntrypointVLD
     VAProfileVP9Profile2            : VAEntrypointVLD
     VAProfileNone                   : VAEntrypointVideoProc

 

neked aztan fura humorod van...

Ez azért nem egészen igaz. A mesa a legtöbb disztrón tudja az AVC, HEVC, VC1-et is, csak néhány olyan corporate disztró kapcsolta ki fordításkor ezt a funkciót, akiknek van US székhelye vagy kirendeltsége (tehát hivatalosan jelen vannak ott), pl. Red Hat disztrók, Suse/OpenSuse, és a Manjaro. A többiek viszont továbbra is belefordítják a mesa-ba, nem kapcsolják ki, Debian/Ubuntu és az azon alapuló disztrók, Arch és azon alapulók (kivéve a Manjaro), és az összes független közösségi disztró (Void, Gentoo, stb.). Szóval a legtöbb disztrón elérhető, és ott, ahol ki is vették, ott is elérhető 3rd party vagy extra tárolókban egy spéci mesa csomag, ami viszont tudja (pl. Fedoránál az rpmfusion, Manjaro alatt az AUR-ban, stb.).

A gond itt nem a GPU-val van, mert ha az nem is támogatja a hardveres lejátszást, vagy támogatja, de a mesa-ban nincs benne a hozzá szükséges kód, attól még mindig kéne mennie az AVC, HEVC, VC1 lejátszásának, legfeljebb akkor a CPU rendereli le. Itt azonban az a poén, hogy a böngészők CPU renderben sem viszik. Szerintem is gáz, bár nincs rá gyakran szükség, de valamit kitalálhatnának rá, ha más nem, valami plugin formájában, amit a user telepítene, ezzel a jogi problémák is elkerülhetők lennének.

Aki tesztelni akarja, hogy az ő disztróján a mesa-ban benne van-e ezeknek a kódekeknek a hardveres lejátszása, az a vainfo nevű CLI toolt tegye fel, és futtassa le, az írni fogja, hogy megy-e ez a funkció. Ennek helyessége mpv, mplayer lejátszással is ellenőrizhető, ha meg van adva a hwdec kapcsoló (vagy 1-re van állítva a konfigfájlban), ilyenkor a lejátszó is írja kimenetben, hogy azt használ, és a CPU terhelésen is észlelhető, hogy csak alig pár % lesz, jóval 10 alatt. Nvidiásoknak, vagy ősi AMD kártyásoknak nem a vaapi kell, hanem a vdpau.

The world runs on Excel spreadsheets. (Dylan Beattie)

LinuxMInt Chrome nem megy. chrome_//gpu:

Graphics Feature Status
Canvas: Hardware accelerated
Canvas out-of-process rasterization: Disabled
Direct Rendering Display Compositor: Disabled
Compositing: Hardware accelerated
Multiple Raster Threads: Enabled
OpenGL: Enabled
Rasterization: Hardware accelerated
Raw Draw: Disabled
Video Decode: Software only. Hardware acceleration disabled
Video Encode: Software only. Hardware acceleration disabled
Vulkan: Enabled
WebGL: Hardware accelerated
WebGL2: Hardware accelerated
WebGPU: Disabled
Driver Bug Workarounds
adjust_src_dst_region_for_blitframebuffer
clear_uniforms_before_first_program_use
count_all_in_varyings_packing
decode_encode_srgb_for_generatemipmap
disable_chromium_framebuffer_multisample
enable_webgl_timer_query_extensions
exit_on_context_lost
msaa_is_slow
msaa_is_slow_2
disabled_extension_GL_KHR_blend_equation_advanced
disabled_extension_GL_KHR_blend_equation_advanced_coherent
Problems Detected
WebGPU has been disabled via blocklist or the command line.
Disabled Features: webgpu
Accelerated video encode has been disabled, either via blocklist, about:flags or the command line.
Disabled Features: video_encode
Accelerated video decode has been disabled, either via blocklist, about:flags or the command line.
Disabled Features: video_decode

“The basic tool for the manipulation of reality is the manipulation of words. If you can control the meaning of words, you can control the people who must use them.”

― Philip K. Dick

Egy kis almás adalék:

Safari-n megjelenik a lejátszó de nem indítja el. M1 air, legfrissebb minden is. Telefon pontosan ugyanez.

Szerkesztve: 2023. 01. 06., p – 17:46

Ez zárt formátum, miért annyira fontos erőltetni?

Tudtommal a WebM/VP9 az alternatívája, ami viszont már nyílt szabvány, az nem lenne jobb helyette?

Vagy ami még újabb, az AV1, ami szintén nyílt szabvány.

Vagy ez az adott biztonsági kamera ezeket nem támogatja?

Szerkesztve: 2023. 01. 12., cs – 00:02

na sikerult kihamozni par infot:

 

- HEVC csak olyan gepen fog menni, ahol hardveresen tamogatja ezt a GPU, a szoftveres gyorsitatas csak chromium/custom buildben van(lehet). Ezert megy Thorium-al, az ugy van buildelve.

- Szuksegesek bizonyos kapcsolok inditaskor: --disable-features=UseChromeOSDirectVideoDecoder --enable-features=VaapiVideoDecoder --disable-features=PlatformHEVCDecoderSupport

- VAAPI/VDPAU be legyen a gepen normalisan allitva

(Az infok nagy resze innen van: https://github.com/StaZhu/enable-chromium-hevc-hardware-decoding )

 

Nalam amugy erdekes jelenseg van most... Ugye kijott a 109-es Chrome, ebben az altalam linkelt teszt video tovabbra sem megy, viszont az Axxon Next program webes feluleten (ezzel managelem a sec-camokat) megy a HEVC stream! (eddig nyilvan nem ment) nem tudok ra egyelore magyarazatot, mi a differencia...