Recenze  |  Aktuality  |  Články
Doporučení  |  Diskuze
Filmy a seriály, streamovací služby
Televize  |  Projektory
Audio a domácí kina
Multimediální centra  |  Ostatní
Svět hardware  |  Digimanie
Svět mobilně

Rychla konverze MPEG-2 -> DivX (WMV9)

Radeq (277)|6.10.2005 11:52
Zdravim, potreboval bych poradit nejakej hodne rychlej konvertor z MPEG2 (DVB zdroj) do neceho hodne sikovne komprimovanyho, treba DivX, XVid, nebo jeste lip WMV9.
Jde o monitoring TV vysilani, u nehoz nezalezi zase tak moc na kvalite, ale hlavne na rychlosti a spolehlivosti celyho procesu. Pokud by byl i nejakej hw nebo super soft, i to je za tim ucelem mozny poridit.

V podstate jde o nasledujici kroky, ktery samozrejme zvladam timto beznym postupem:

TS -> demux na M2V a MP2 (PVAStrumento nebo ProjectX)
M2V -> D2V (DGIndex nebo DVD2AVI)
D2V + MP2 -> AV vstup (Avisynth)
vysledny AVS nacpu VirtualDubu a nasleduje:
Deinterlace (VD deinterlace)
Resize na 384x288 nebo i min (VD resize bilinear/bicubic)
Komprese videa do DivX/XVid/WMV9 (VBR)
Komprese audia do MP3/WMV9 (ABR)

Tak tohle bezi maximalne tak v realtimu (pri pouziti DivX a jeste s odrenyma usima), a ja to potrebuju nekde nejak podstatne urychlit aby to behalo aspon na 5x realtime. Vychazi mi z toho jedine HW komprese (spec. PCI karta, ale existuje? a jaka?), ale i v SW je urcite mozny ledacos.

Diky moc za jakykoli napad jak to resit.

P.S. Prosim bez poznamek co ze to je za hnusnej vystup, kterej byste si nepustili ani na LCD u mobilu. Proste se smirte s tim, ze jsou lidi, ktery si to z nejakyho duvodu pustej. 9-) :-E
SS2CZ (874)|7.10.2005 08:30
Otázka za milión,zdá se. Taky,by mě zajímala. B-)
mirekv (7169)|7.10.2005 09:32
Radeq
To není lepší si v něčem pustit ten MPEG-2?
vlada (3470)|7.10.2005 10:41
Radeq
Na mym Athlonu XP 2000+ běží realtime XviD 768x576. Když snížíš rozlišení na třeba 320x240, tak se to výrazně urychlý. 5x realtime potřebuješ tak 3000+ CPU. Pokud chceš vědět, kde děláš chybu, je to jednoduchý. Používáš filtry VD, tím zcela znehodnotíš postup přes AviSynth, jehož smyslem je celou akci urychlit. V AVS vyhoď jeden půlsnímek (deinterlace je pomalej) a udělej Lanczos resize na požadovanou velikost. Ve VD nastav mód fast recompress, zvuk tam nahrň ten MP2 a nech ho tak. Případně ho zkomprimuj do MP3 CBR. Jako kodek videa zvol XviD (je nejrychlejší) a navol ho na maximální rychlost.
Jo a ještě vyměň DVD2AVI za DGMPGDec. Ten by měl bejt o něco rychlejší. Podrobnosti kdyžtak najdeš na mych stránkách v návodu na ripování DVD.
Takhle by to na nějakym 2GHz CPU mělo jet minimálně 2x realtime. O žádnym HW MPEG-4 enkoderu nevim a stejně by jel maximálně realtime.
Největší zátěž CPU způsobuje komprimování (XviD kodek), potom dekomprese MPEG-2 (DGDecode nebo MPEG2Dec z DVD2AVI alias DGMPGDec) a potom filtry. Resize je poměrně nenáročnej, nějaký potlačení šumu nebo kvalitní deinterlace je hodně náročnej.
SS2CZ (874)|7.10.2005 11:02
Možná,by ti pomohlo nahrávat v jiném playeru než AltDVB,aby jsi nemusel dělat demux atd.Nevím. :-)
vlada (3470)|7.10.2005 13:30
SS2CZ
Tím se nic moc neurychlí. Největší žrout času je kompresní kodek a s tím nikdo nic nenadělá.
clee (6592)|7.10.2005 14:30
mpeg2->wmv9=canopus procoder2
SS2CZ (874)|7.10.2005 14:50
vlada
Já jsem si to myslel.Komprese do Divx se používá jako parametr při testem procesorů. Při tom testu co jsem četl vyhrál Intel,ale ve výsledku Athlon - lehce.
Radeq (277)|7.10.2005 17:49
Diky moc za tipy.

Zjistil jsem, ze bezkonkurencne nejvic zabere dekomprese MPEG-2. Pouzitim fastMC=true v parametrech DGDecode se to docela zlepsilo (cca 1.5x), ale porad je to strasne moc (cca 30-50% CPU v realnem case). Zkousel jsem to zatim na P4 2,4G/800M, coz snad neni zase tak uplne spatny. Hlavne me prekvapuje, ze prehravani DVD napriklad Intervideo WinDVD na stejnym PC zabere jen cca 10-20% CPU. Neexistuje nejakej plugin pro AviSynth, kterej by se umel napojit treba prave Intervideo Video Decoder nebo proste nejakej rychlejsi?

Jinak snimky zmensuju pomoci VerticalReduceBy2() a pak BilinearResize(), ale je to v podstate jedno. Mel jsi pravdu, ze ten resize je velmi sviznej a v pomeru k MPEG-2 dekompresi je to naprosto zanedbatelna casova ztrata.

Neexistuje nekde nejakej benchmark specialne na MPEG-2 dekompresi pomoci DGDecode pro ruzny CPU? Jak vypada v tomhle smeru treba Athlon64 v porovnani s P4 Prescott?

Diky moc komukoli za dalsi tipy. 8-)
vlada (3470)|11.10.2005 12:07
Radeq
Nějaký porovnání rychlosti dekomprese v DGDecode jsem neviděl. Jestli tam je optimalizace pro 64-bit procesory, tak by to AMD64 určitě jelo rychlejš,

Pokud chceš použít nějaký jiný dekoder než DGDecode z DGMPGDec (který opravdu není nejrychlejší, jde spíš za kvalitou), tak v AviSynthu existuje filtr DirectShow source, který využije DirectShow filtry pro dekompresi. Dokonce si můžeš v GraphEditu udělat vlastní graf a ten potom dát jako parametr. Jinak se použijou výchozí dekodery.

Co se týká té zátěže při přehrávání, toho nikdy při převodu nedocílíš. Programy jako WinDVD nebo PowerDVD totiž používají HW akceleraci grafických karet pro iDCT, čímž přesunou výpočty z procesoru na grafickou kartu. Myslím si, že je nemožné tohle použít při konverzi, alespoň jsem to nikde neviděl.

TIP: Zkus MPEGDecoder místo DGDecode. Možná bude fungovat jenom se starým DVD2AVI a podle autora má občas problémy, ale měl by být rychlejší.
Jozef2 (188)|2.12.2005 16:42
Neviem ci tomu dobre rozumiem. ale co takto ukladat video priamo v rozliseni 384x288 alebo 352x288 bodov. Potom by dekompresia mpg2 trvala podstatne kratsie. Len neviem, ci to pri zachytavani DVB je mozne. Klasicke TV karty s analogovym tunerom samozrejme zachytavania v takomto nizkom rozliseni umoznuju.
vlada (3470)|2.12.2005 16:58
Jozef2
DVB je digitál, leze to do počítače nebo TV v MPEG-2. Co z toho plyne? Aby si s tim mohl cokoliv udělat, musíš ten MPEG-2 nejdřív dekomprimovat a to samozřejmě v plnym rozlišení.
Jozef2 (188)|2.12.2005 17:26
[quote=vlada]Jozef2
DVB je digitál, leze to do počítače nebo TV v MPEG-2. Co z toho plyne? Aby si s tim mohl cokoliv udělat, musíš ten MPEG-2 nejdřív dekomprimovat a to samozřejmě v plnym rozlišení.[/quote]
No ved prave. Napriek tomu, zda sa mi, ze som cital o karte, ktora dokaze ukladat aj v inom rozliseni. Ale asi sa jednalo o najaku lepsiu DVB-S kartu, zeby ta drahsia z kariet Sky Star? Pravdepodobne v realnom case robi rekompresiu a uklada mpeg v inom rozliseni.
exTNT (1421)|2.12.2005 17:57
Pokud se nepletu, SS1 má HW dekodér, ale zkušenost s ní nemám a hledat se mi to taky nechce.
Jozef2 (188)|3.12.2005 08:49
Este ma napada moznost nahravat TV vysielanie z DVB prijimaca na DVD rekordery v rezime s rozlisenim 352x288. Ak nezalezi na kvalite vysledneho videa tak je uplne jedno, ze bude dochadzat ku konverzii videosignalu z digitalu na analog. Lenze neviem, ktore videorekordery maju rezim zaznamu v takomto rozliseni (mnohe maju iba 352x576 co je zbytocne vela). Viem, ze to ale maju Panasoniky v rezime EP (moznost vyberu 6 alebo 8 hodin zaznamu na DVD). Takze mozno toto by bola schodna cesta.
A samozrejme, ak to treba este viac skomprimovat do DivXu, tak potom video v rozliseni 352x288 sa bude rychlejsie konvertovat ako video v rozliseni 720x576.
Devaster (477)|3.12.2005 18:35
dgdecode sa da zrychlit pouzitim vhodneho idct skus este s tym laborovat ...