Problematika konverze AVI do MPEG-1

[strana 1] [strana 2] [strana 3]

Jak spojovat MPEG-1 soubory?

Ideální je samozřejmě vyrenderovat ze vstupních AVI souborů jeden veliký výsledný MPEG, namísto několika malých, které se pak musí spojovat. Schopností renderovat z vícero vstupních AVI do jednoho výsledného souboru oplývají všechny střihové programy (Ulead Systems Media Studio Pro, MainConcept MainActor Sequencer, Adobe Premiere, ...) i některé specializované programy (Avery Lee VirtualDub) a dokonce i některé encodéry (na název toho jednoho, na který jsem narazil, si bohužel nevzpomenu, sorry). Nicméně pokud už máme hotové MPEG-1 soubory, s jejichž velikostí nejsme spokojeni, nezbývá než spojovat (ev. dělit/stříhat).

Takže, spojovat MPEG-1 soubory lze prostým kopírováním:
copy /b cast1.mpg+cast2.mpg film.mpg
bohužel, vstupní soubory, kromě toho, že musí být vyrenderovány se shodnými parametry, musí dodržet všechny MPEG-1 specifikace, aby byl výsledek přehratelný. Ale i přes to nemusí být výsledný soubor přehratelný v některých přehrávačích, protože prostým spojením správný MPG soubor rozhodně nevznikne.

Programy na spojování MPEGů

Spojovat MPEG-1 soubory lze samozřejmě i za pomoci utilit k tomu určených. Já jsem objevil tyto programy:

Pravé tlačítko myši Right mouse button

Spojoval jsem dva různé MPEGy renderované stejným programem za použití shodných parametrů. Výsledný MPEG jsem testoval pomocí komponenty Active Movie Player za použití těchto postupů:
příponě MPG jsem přiřadil příkazovou řádku
C:\WINDOWS\RUNDLL32.EXE C:\WINDOWS\SYSTEM\AMOVIE.OCX,RunDll /PLAY %1
případně lze doplnit o /CLOSE (klip se přehraje a zavře) nebo /PLAY nahradit /OPEN (klip se jenom otevře) a při přehrávání jsem zafajfkoval položku Snímky v menu, které se otevře při stisku pravého tlačítka myši (pokud tato položka nebyla zakázaná).

Příkaz COPY a program Mpack dávaly naprosto shodné výsledky, ať už byl MPG renderován čímkoli: záleželo na velikosti spojovaných souborů, někdy se položka menu Snímky ukázala, jindy byla zakázaná, celkový čas případně celkový počet snímků nesouhlasil (zobrazeny byly hodnoty náležící jednomu ze souborů) a v místě spojení se přehrávání zastavilo nebo poskakovalo (stylem pauza, převinutí o několik snímků vpřed, přehrání několika snímků a tak dokola).

Programy iFilmEditM-Editor dávali naprosto shodné výsledky ať už byl MPG renderován čímkoli: výsledný soubor byl vždy správně přehrán a měl i správný formát (kontrolováno programem mpgprop).

Program Scissors kromě toho, že pracuje velmi pomalu, nedokázal spojit MPEGy z MainActora (u výsledku nešel přehrát obraz), ani z DVMPEGu a Uleadu (výsledek nešel přehrát vůbec). Autoři se netají tím, že se jim doposud nepodařilo sehnat úplný popis formátu (mě také ne), a že tedy program nemusí fungovat správně.

WebFlixPro, MpegRepairVCDCutter teprve čekají na řádné otestování, ale nejspíš se ho vůbec nedočkají (nějak jsem se k tomu totiž stále nemohl dokopat a teď, když používám téměř výhradně MPEG-4, případně TMPGEnc, už to pro mě ztratilo smysl). "Bleskový" průzkum naznačil, že programy iFilmEdit, WebFlixProVCDCutter jsou na tom ve výsledku přibližně stejně, tj. produkují korektní MPEGy.

Též jsem experimentoval se spojováním dvou MPEGů, kdy měl každý jiné obrazové vlastnosti (zdá se, že vlastnosti zvuku rozdílné být mohou). V takovém případě opět nebyl správně zobrazen čas/snímky a navíc nefungovalo převíjení (po převinutí na jakékoli jiné místo již nešlo dál přehrávat). Při přehrávání bez zásahu do ovládání se přehrávání zastavilo v místě spoje a nebylo možné pokračovat dál.

Závěr

Zhruba od března 2000 renderuji video téměř výhradně jen za pomoci programu VirtualDub s kodekem MPEG-4, protože při stejné nebo lepší kvalitě je výsledný soubor menší a nemusí se s ním dělat "psí kusy" (de/multiplexovat). MPEG-1 jsem zcela nezavrhl, protože není tak náročný na výkon CPU (filmy lze přehrávat na Pentiu 100 MHz) a pokud nedělám MPEG jen pro sebe, ale pro "široké publikum", využívám raději MPEG-1. Taktéž nelze pominout, že Video-CD je postavené na MPEGu-1: na Video-CD dokáži "vměstnat" až 80 minut videa a toto pak přehrávat ve stolním přehrávači (tedy není nutné poslouchat šumící PC).

S pořízením DVD přehrávače, který umí (S)Video-CD, přede mnou vyvstala otázka, jak si případně dopřát vlastní Super Video-CD (cca 40 min/disk) případně Video-CD v2.0 (max. 80 min/disk). Za tímto účelem jsem se začal zabývat již zmiňovaným programem TMPGEnc (Tsunami MPEG Encoder). Na první, druhý i třetí pohled se zdá být použitelnější než všechny ostatní programy dohromady. Umí toho hodně a hlavně umí to dobře (vytváří korektní soubory). Obraz renderuje pěkný, je freeware... co víc si přát? Snad jen to, aby nebyl primárně jen v Japonštině (na kterou se musí aplikovat patch s angličtinou, aby byl "muříhnohprostý" a nám obyčejným smrtelníkům srozumitelnější). Ve spojení s programem VirtualDub ve funkci frameserveru lze dosáhnout opravdu "kouzelných" výsledků.

Zde půjde (de)mux/cut/join
Položka MPEG tools... v Menu File skrývá vše potřebné pro spojování/rozdělování MPEG souborů (umí i VOBy!)

Zde lze (de)mux/cut/join

Formátu MPEG-4 se věnuji na této stránce, programu VirtualDub na této stránce.


Announcement:
o všech informacích zde uvedených platí, že nutně nemusí být 100% správné.
Stránka byla vytvořena pomocí programu NOTEPAD.EXE, což je jediná správná cesta, jak tvořit HTML.
Obrázky obrazovek byly nasnímány za prostého užití čudlíku [PrintScreen], následně byly zpracovány a případné ostatní obrázky i namalovány v programu Corel PhotoPaint.

Home


© 1999-2001, K5