Rychla konverze MPEG-2 -> DivX (WMV9)
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
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
Otázka za milión,zdá se. Taky,by mě zajímala. B-)
Radeq
To není lepší si v něčem pustit ten MPEG-2?
To není lepší si v něčem pustit ten MPEG-2?
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.
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.
Možná,by ti pomohlo nahrávat v jiném playeru než AltDVB,aby jsi nemusel dělat demux atd.Nevím. :-)
SS2CZ
Tím se nic moc neurychlí. Největší žrout času je kompresní kodek a s tím nikdo nic nenadělá.
Tím se nic moc neurychlí. Největší žrout času je kompresní kodek a s tím nikdo nic nenadělá.
mpeg2->wmv9=canopus procoder2
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.
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.
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-)
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-)
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ší.
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ší.
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.
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í.
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=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.
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.
Pokud se nepletu, SS1 má HW dekodér, ale zkušenost s ní nemám a hledat se mi to taky nechce.
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.
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.
dgdecode sa da zrychlit pouzitim vhodneho idct skus este s tym laborovat ...