Strojno pospešeno dekodiranje filmov v mkv

doto

Fizikalc
25. jul 2007
3.175
0
36
Novejše grafične kartice podirajo strojno pospešeno dekodiranje HD videa v x.264 formatu. Vendar so zelo skope glede podprtega softvare-a. Večinoma so podprti razni blue ray predvajalniki PowerDVD, WinDVD, ... Tu pa je problem, ker ti praviloma ne znajo predvajati filmov v mkv formatu.

Predvajalnik Media Player Classic – Homecinema ima vključeno podporo za DxVA, ki omogoča strojno pospešeno dekodiranje videa. Se pravi, če imate MPC-HC in katero novejšo grafično kartico, ki podpira DxVA, jo bo ta uporabil za dekodiranje videa. Jaz pa uporabljam za gledanje filmov htpc z MediaPortalom in mi je uporabniški vmesnik MPC-HC malo preveč špartanski. Poglejmo si torej, kako to omogočiti v Media Portalu. Podoben postopek bi bil tudi za BSPlayer, Media Player, ali kateri drugi predvajalnik, ki uporablja DirectShow filtre.

MPC-HC ima direct show filtre integrirane , zato se jih ne da uporabiti v drugih aplikacijah. Lahko pa na njihovi download strani dobiš tudi sandalone direct show filtre. Rabiš MPC - Video decoder za tvoj OS (32 ali 64 bitov).

- Downloudati moraš MPCVideoDec.ax datotekao ki jo je shranš nekam na disk.
- Z ukazom regsvr32 c:\pot\do\datoteke\MPCVideoDec.ax registriraš directshow filter

- V MediaPortalu nastaviš MPC Vide decoder kot privzeti dekoder za h.264

3331616934_0c2936b8dd_o.png


- Video renderer v Visti nastaviš na Enhanced video renderer, v XP pa na Video mixing renderer 9. To je pomembno, ker drugače ne bo delalo

3331622380_a4be115ec0_o.png


Paziti je treba tudi, da se ne uporablja kak vobsub ali kaj podobnega, ker v tem primeru ne bo delalo. Več o tem tukaj . Skratka med MPC -Video dekoderjem in EVR ne sme biti nobenega drugega filtra. Graph mora izgledati podobno temu:

3330801579_70f83a7cd1_o.png


Če je šlo vse po sreči, bi sedaj morala biti bistveno manjša obremenitev.

3331641038_81e79ded6d_o.png


Vista že sama po sebi kuri okoli 10% Za primerjavo še dekodiranje z CoreAVC na istem sistemu.

3331650518_40c234c9d6_o.png


Tole deluje z Nvidinimi in Atijevimi karticami. Obstaja pa še ena možnost. CoreAVC v1.9.0. ima vključeno podporo za Nvidia CUDA tehnologijo. To je posebna knjižnica, ki omogoča programom, da izkoriščajo moč GPU za izvajanje splošnih računskih operacij. CoreAVC jo uporablja za pomoč, da delegira delo še na GPU in s tem malo razbremeni CPU. Zadeva dela samo na Nvidinih karticah serije 8+. Pospešitev je sicer očitna, vendar malo slabša kot z DxVA, ki uporablja namenski h.264 dekoder na GPU-ju.
 
Nazadnje urejeno:

DrM007

700. registrirani uporabnik
1. sep 2007
2.450
1
38
42
Krain
Odličen post. Samo tole me je malce zbodlo:

Citat:
Video renderer v Visti nastaviš na Enchanted video renderer

Saj potem skoraj mora delat, če je enchanted...
grin1.gif
 

doto

Fizikalc
25. jul 2007
3.175
0
36
Ja jebat ga typo
redface-1.gif
Sej sem videl včeraj, pa se mi ni dalo pol popravljat :D
 

blazko

Majstr
21. sep 2007
7.323
372
83
Vidim, da se zastopiš na stvar, mejbi mi lahko pomagaš.

Na Visti imam MPCHC in kot sem prebral je za DXVA treba output nastavit na EVR, če pa želiš podnapise pa tudi izbrat "Auto load subtitles". In gledam .mkv film, bluray rip, 720p in res je razlika v CPU time ogromna.

Ampak problem so podnapisi: zraven sta prišla dva .srt fajla - ang in slo. Če ne uporabljam DXVA lahko uporabim katerega koli, v nasprotnem primeru pa zmeraj prikaže angleškega. In sem probal preimenovat angleški .srt in pustit samo slovenskega, ampak podnapisi so še vedno angleški???

Vprašanje (mater sem zakompliciral
grin1.gif
): ali so podnapisi že "zapečeni" v .mkv format? Ker drugače si tega obnašanja ne znam razložit?
 
Nazadnje urejeno:

Mikrohard

iPhone Profi
20. jul 2007
5.823
723
113
www.jernej.org
Podnapisi so lahko tudi v mkv-ju... ni pa nujno. Predstavljaj si mkv kot škatlo, v katero zapakiraš video (h264), zvok (ac3, dts, ...), podnapise (srt) in še kaj....
 

doto

Fizikalc
25. jul 2007
3.175
0
36
Ja mkv je full zmogliva zadeva, poleg osnovnega videa i podnapisov podpira tudi menije, tako kot na DVD-ju.

Lahko pa podnapise dodaš v mkv z mkvmerge GUI .
 

blazko

Majstr
21. sep 2007
7.323
372
83
Aha, se mi je zdelo, da bo tako. Hvala.

Zdej rabim samo še način za strojno pospešeno dekodiranje z možnostjo prikaza zunanjih podnapisov? Po možnosti za x64. Je to možno?
 

doto

Fizikalc
25. jul 2007
3.175
0
36
Na Nvidini grafični kartici verzije 8+ z novejšimi gonilniki in CoreAVC v1.9.0 je možno. V nastavitvah od CoreAVC ali že kar ob instalaciji je treba obklukati podporo za cuda. Ima pa CoreAVC tudi ikono v trayu. Če je ta zelena, pomeni, da je vkopljeno strojno pospešeno dekodiranje. V tem primeru ni omejitev glede podnapisov. Rabiš le predvajalnik, ki uporablja direct show filtre (media player, bs player, media portal, ...)

3347173858_da5061b20f.jpg
 

blazko

Majstr
21. sep 2007
7.323
372
83
Se pravi ne bo šlo. Imam en basic notebook z ATI Radeon HD 3200, pa še poštenjakar sem in ne furam gusarske robe (če je le možno) ter za povrh vsega še Gorenjec, ki za tale CoreAVC ne bo pljunil cekinov.

Hvala.
 

doto

Fizikalc
25. jul 2007
3.175
0
36
Ponavadi ne uporabljam podnapisov, sem si pa sedaj posebej pogledal, kako lahko dodaš podnapise v mkv datoteko.

Se pravi rabiš MKVtoolnix GUI , film v mkv formatu in podnapise v srt formatu.

- zaženeš mkvmerge gui
- klikneš na add in izbereš mkv datoteko
- isto ponoviš za srt datoteko
- srt datoteki nastaviš jezik in encoding. Jaz sem izbral utf-8 in sem srt datoteko prej konvertiral v ta encoding.
- nastaviš output filename (to bo nova mkv datoteka z integriranimi podnapisi)
- klikneš na start muxing in počakaš kakih 5-10min

In to je to. MPC-HC bo znal tako datoteko predvajati strojno pospešeno z slovenskimi podnapisi
 

keber

majski hrošč
28. jul 2007
13.240
44
48
Na kakšnem računalu pa je to dekodirano?
Ker meni VLC Player pri dekodiranju matroške (mkv-ja) porabi cca 7-10% procesorskega časa, ne da bi uporabljal kaj drugega kot default nastavitve - grafična je pa radeon 4870.
 

doto

Fizikalc
25. jul 2007
3.175
0
36
C2D 3GHz. Je pa to kurčeva vista, ki že v idle kuri 8-10%
frown-1.gif


Mora pa biti 1080p video, 720p seveda kuri bistveno manj. VLC meni kuri podobno kot CoreAVC brez pospešitve.
 

keber

majski hrošč
28. jul 2007
13.240
44
48
Aha, potem smo na istem. No, zaenkrat mi 720p zadostuje.
Je pa zakon tale matroška, imam Blade Runnerja vse v enem fajlu, od podnapisov (tudi slo), kupa dodatnih avdio trackov itd. Ne vem, zakaj se jo izdelovalci playerjev še vedno nekako izogibajo.
 

agerg

Zelenc'
3. jun 2009
1
0
1
NO, da malo obudim temo.
Vidim, da "doto" kar obvlada zadevo, zato imam kakšno vprašanje zanj. Seveda ostali tudi kar z besedo na plano!

Torej vereli ali ne. Imam Atoma z nVidio ION čipsetom pa me zanima, kaj vi menite, ali je možno, da zadevo usposobim za predvajanje MKV-jev 1080p?

Kaj bi pravzaprav rad. NA vsak način bi rad poganjal XBMC, nevem pa ali je to izvedljivo.
Sami surovi winsi ne zmorejo na tem mlinčku niti 720p kaj šele 1080p mkv fajle. Seveda, o raznih programskih rešitvah še nism preizkušal.
Sem pa namestil zadnjo verzijo XBMC live in je zadeva SUPER. 720p deluje super tekoče, medtem ko 1080p se preveč zatika.

Kaj mi še preostane? naj poizkusim vseeno z Windowsi, najraje XP-ji, vendar nevem točno česa naj se lotim. Kot vidim, sta dve možnosti. CoreAVC in CUDE ali pa MPC HomeCinema?

Vidim pa, da je ena izmed dobrih rešitev tudi, UBUNTU na katerem bi bil XBMC z uporabo VDPAU. Ima kdo na tem področju kaj izkušenj?

Z besedo na dan z vašimi predlogi kaj naj sprobam.
 

doto

Fizikalc
25. jul 2007
3.175
0
36
Citat:
Uporabnik agerg pravi:
Torej vereli ali ne. Imam Atoma z nVidio ION čipsetom pa me zanima, kaj vi menite, ali je možno, da zadevo usposobim za predvajanje MKV-jev 1080p?

Uuuuu, kje in za koliko si nabavil
cheer.gif


Drugače pa zadeva je taka XBMC je več ali manj problem, ker uporablja opengl in ffmpeg za dekodiranje, za katerega pa nisem 100%, če podpira CUDA, directx itak odpade. Če in ko bo ffmpeg to podpiral, bo verjetno delalo tudi z XBMC. Samo kolikor sem zdaj na hitro pogooglal, čakajo na OpenCL standard, ki bi naj bila standarna knjižnica, ki bi delala na vseh karticah.

Trenutna varjanta je MediaPortal, v katerem lahko uporabiš CoreAVC z CUDA. Tega tudi jaz uporabljam. Meniji bi sicer lahko bili malo bolj tekoči, drugače pa "It gets the job done". Bi pa tudi jaz rad videl podporo v Boxee ( fork XBMC).

Citat:
Vidim pa, da je ena izmed dobrih rešitev tudi, UBUNTU na katerem bi bil XBMC z uporabo VDPAU. Ima kdo na tem področju kaj izkušenj?

Še nisem probal, bom pa ob prvi priliki.
 

doto

Fizikalc
25. jul 2007
3.175
0
36
Pride jeseni z Snow Leopardom, ki bo imel vgrajen OpenCL. To je praktično enaka zadeva kot nvidina knjižnica CUDA, le da bo delalo na vseh GPU-jih.