Konvertování MPEG animací na Amize aneb jak ušetřit 8$

MAREK SOCHŮREK

K napsáni tohoto článku mi dala podnět recenze programu MPEG to ANIM V1.4 v AR 9/99. Tento program konvertuje MPEG animace (i tzv. SYSTEM MPEG se zvukem) do na Amize velmi často používaného formátu ANIM. Neregistrovaná verze má však dost drastické omezení v rozměrech obrázků převedené animace. Co s tím? Jedna možnost je zaplatit registrační poplatek 8$. Když je jedna možnost, tak obvykle existuje i druhá a ta vám ušetří výše zmíněný poplatek. Jat zvědavostí jsem začal zkoumat tento konvertor a co jsem nezjistil. Celý program je pouhá grafická nadstavba (GUI). Samotnou konverzní práci obstarávají externí programy, které jsou součástí archívu. Je zajímavé, že autor požaduje registrační poplatek za grafickou nadstavbu a přitom samotné konverzní programy, které jsou mnohem složitější a odvádějí větší kus práce jsou většinou volně šiřitelné. My se však soustředíme na samotnou konverzi MPEG souborů a jako prémii vám poradím jak vytvářet animace včetně zvuku.

Jako příklad si vezmeme MPEG animaci se zvukem umístěnou na pozici WORK:MPG/TEST.MPG, která má 25 snímků za vteřinu, 50 oken, 24-bitovou hloubku (16,8 mil. barev) a grafické rozlišení 320x200. V první řadě musíme z MPEG souboru dostat 24-bitové obrázky, které poskládáme do samotné animace. To by vám u MPEG animací např. z AMlNETu nemělo činit větší problémy. Pokud však budete chtít konvertovat MPEG SYSTEM animace se zvukem, většina programů je vůbec odmítne jako MPEG soubor identifikovat (vadí jim rozdílné uspořádání souboru). Řešením je rozdělení MPEG SYSTEMu do dvou samostatných souborů AUDlO MPEG-layer2 a VlDEO MPEG-1. K tomu nám pomůže program SPLlTMPEG (archív MPEG2AN114b.LHA, adresář ARCHlVE). Že ho nemůžete najít? Ale ano, je tam, ale autor nám ho pro zábavu skryl. Nejen že se jinak jmenuje, ale dokonce je i fikaně rozdělen na dva soubory. Nevadí, pomůže nám dosovský příkaz:

JOIN MP2ANIMX MP2ANIMY TO C:SPLITMPEG

Nyní můžeme přistoupit k oddělení obrazové a zvukové složky:

SPLITMPEG WORK:MPG/TEST.MPG

V adresáři nám vzniknou nové soubory z nichž nás zajímají pouze STM192.MPG (až STM223.MPG) pro zvuk a STM224.MPG (až STM239.MPG) pro video. Pro pořádek je přejmenujeme na AUDlO.MPG a VlDEO.MPG. Ostatní soubory STMXXX.MPG smažeme. Teď si připravíme program MP (MPEG PLAYER 1.03fixed) z archívu MP103.LHA, který umístíme do adresáře C:. Nyní musíme dostat z MPEG video proudu jednotlivé 24-bitové obrázky. Pro uložení těchto obrázků použijeme např. adresář WORK:PlC. A teď samotná syntaxe:

MP -saveiff WORK:PIC/ PIC.%% WORK:MPG/VIDEO.MPG (%-počet řádů pro číselné indexy).

V adresáři PIC by se mělo vytvořit 50 IFF ILBM souborů: PIC.01 až PIC.50. Získané obrázky buď převedeme do formátu IFF ANlM nebo obrázků s nižším počtem barev pro standardní zobrazovací módy AMlGY. K tomu nám poslouží program REND24 (V1.05), který je součástí balíku MPEG2ANIM. Po rozbalení archívu REND105.LHA nainstalujte pomocí přiloženého skriptu. Tento program má přehledné GUI, takže si na chvíli odpočineme od SHELLovské dřiny. Do prvního okna SOURCE IMAGE PATTERN zadáme název a cestu pro zdrojové obrázky bez čísla indexu: WORK:PIC/PIC. Do pole SOURCE FRAME COUNT zadáme celkový počet snímků:50. Do polí START (číslo prvního obr.) a SKIP (násobky přeskakovaných snímků) zadáme 1. V první řadě se pokusíme vytvořit animaci bez zvuku, takže zadáme název animace do DEST ANIMATION: WORK:TEST.ANIM. Zkontrolujeme nastavení ostatních přepínačů: DEVICE=AMIGA, MNTR: DEFAULT (zobrazovací režim), HOR: LORES (nízké rozlišení), FORMAT: HAM (4096 barev), COL: MAX (počet barev, nelze volit pokud je nastaven HAM nebo HAM8), VER: NO LACE (neprokládaný režim). Dále musí být zatrhnuty tyto poIožky: HlGH QUALlTY (lepší kvalita převodu režimů HAM a HAM8), HIDE CONVERSION (program nebude během konverze zobrazovat jednotlivé obrázky), DONT PAUSE (po konverzi obrázku začne ihned převádět další). Položky X, Y-0. Teď už stačí pouze stisknout BEGIN CONVERSION a program udělá veškerou dřinu za vás (což mu v případě extrémě dlouhých animací může trvat i hodiny). Až se počítač dolopotí, můžete směle shlédnout své dílko v jakémkoliv přehrávači, který podporuje formát IFF ANIM5 (je jich celá řada, navíc máte k dispozici i datatypy).
Něco tomu však chybí. Původní soubor TEST.MPG obsahoval i zvukovou stopu a tak nás ten návrat k němému filmu příliš netěší. Co s tím? Samotný formát IFF ANIM je velmi flexibilní a tak firmu VlRTUAL WORLS PRODUCTlONS (www.virtualworlds.se) napadlo specifikovat rozšíření tohoto animačního formátu o zvukovou stopáž, tak aby byla zachována zpětná kompatibilita. Samotné přidání zvuku do animace umožňuje program WAVETRACER a přehrát si je můžete včetně zvuku programem ANIMFX. Jelikož s těmito programy nemám zkušenosti, nechám to na vaší zvídavosti.
Jak jsem vám však slíbil, existuje ještě jedna možnost-formát CDXL. Ano, jedná se o dnes už prehistorický formát pro ukládání a čtení videosekvencí ze CDROM jednotek u jehož zrodu stála firma COMMODORE AMIGA. Tento formát neužívá žádný typ datové komprese a je velmi primitivní. Jsou to v podstatě hrubá grafická a zvuková data uložená do jednoho souboru. Z toho plyne velká spotřeba volného místa na disku a požadavek na vysokou přenosovou rychlost zařízení. Dá se to však zredukovat volbou nižšího rozlišení, počtu snímků a maximálním počtem barev. Takže směle do toho a CDXL je hotovo! Vrátíme se k programu REND24. Vše uděláme jako v předchozím případě akorát místo animace budeme vytvářet nové obrázky. Vytvoříme adresář WORK:CDXL a do okna DEST PICTURE PATTERN zadáme: WORK:CDXL/*. Změňte položky X:160 a Y:100. Po konverzi by vám v novém adresáři mělo vzniknout 50 HAM obrázků o rozměrech 160x100. Ještě potřebujeme zvuk ve formátu IFF 8SVX, který získáme s pomocí jednoduché konverzní utilitky FORREST (vyžaduje MPEGA.LIBRARY)

FORREST WORK:MPG/AUDIO.MPG WORK:CDXL/AUDIO.IFF

Tak, zvukový samplík a obrázky máme, což nám bohatě stačí na vytvoření CDXL souboru. Je čas sáhnout po XLTOOLS od COMMODORE, konkrétně příkazech XLMAKE a XLAUDIO (pro tyto utilitky je na AMINETu k dispozici GUI). Nejdříve si však trochu započítáme, protože je třeba stanovit datový tok CDXL, takže kalkulačky do ruky a jdeme na to. Máme k dispozici 50 snímků o rozlišení 160x100 a bitové hloubce 6 (=HAM6, 4096 barev), zvukový sampl o vzorkovací frekvenci 22050Hz MONO a chceme, aby se video přehrávalo rychlostí 25 snímků za vteřinu.

XLSPEED =(((((160*100) /8)*6)+(22050/25)+32+32) *25)/2048.

Pro vysvětlenou:
XLSPEED=(((((Hroz*Vroz)/8)*bit. hloubka) + (sampl. frekvence/počet snímků za vteřinu) + velikost hlavičky CDXL + (počet nastavitelných barev*2))*počet snímků za vteřinu)/2048.
Výsledek je přibližně 158,032. Parametr XLSPEED by však měl být celé číslo, aby byla dodržena korektní rychlost přehrávání. K tomu CDXL soubory používají tzv. podložku (PAD). Pokud použijeme podložku (nebo výplň-jak chcete) o velikosti 1390 BYTE a znovu vypočítáme XLSPEED (před závěrečným dělením číslem 2048 přičteme k závorce:(velikost podložky*počet snímků za vteřinu)) vyjde nám 175. Teď už máme konečně všechno pro vytvoření CDXL souboru. Začneme obrázkem:

XLMAKE -f1 -a882 -p1390 -b WORK:CDXL/PIC.Ol -h WORK:CDXL/TEST.CDXL

(f-číslo prvního snímku, a-vzorkovací frekvence/počet snímků za vteřinu, p-velikost podložky na snímek, b-název prvního snímku, h-HAM mód)
Přidáme zvuk:

XLAUDIO -a882 -i -e WORK:CDXL/AUDIO.IFF WORK:CDXL/TEST.CDXL

(i-vloží zvuk do existujícího souboru, e-ignoruje chyby v délce vloženého zvuku)
Výsledek našeho snažení je na světě! Takže si ho přehrajeme:

CDGSXL FROM WORK:CDXL /TEST.CDXL VIEW BLIT MULTIPAL XLSPEED=175 NOPOINTER DOSXL LMBABORT

(VlEW-centrování, BLlT-zobrazení přes BLITTER, MULTIPAL-paleta na snímek, NOPOINTER-bez ukazatele myši, DOSXL- přehrává pomocí DOS ovladače, LMBABORT-přehrávání ukončí tlačítko myši). Krása co?
Uvedený postup konvertování MPEG animací je jen jeden z mnoha dalších. Namátkou uvedu programy: MAINACTOR BROADCAST, XANIM, WlLDFlRE nebo vynikající datatypy od Rolanda Mainze (MPEGVIDEO, MPEGAUDIO, MPEGSYSTEM) a program DTCONVERT. Podobnými způsoby lze konvertovat i animace AVI (RIFF) a QUICKTIME (MOV). V článku jsem se záměrně vyhnul podrobnému popisu jednotlivých programů (jednak bych se upsal k smrti a pak taky musím trochu radosti ze zkoumání přenechat vám). Tento článek také předpokládá základní znalosti grafického a zvukového HARDWARE AMIGY. Takže-návod máte, programy seženete a zbytek je už jen na vás. Hodně štěstí!

Použité programy:
z archívu MPEG2ANI14B.LHA (gfx/conv) vybrány SPLITMPEG V1.0, MPEGPLAYER V1.03, REND24 V1.05 dále XLMAKE V1.1 a XLAUDIO V1.1 z XLTOOLS (AMIGA DEVELOPER CD), konvertor FORREST AMP V1.0 (mus/misc) a přehrávač CDGSXL V1.5 (gfx/show).

Pozn.: Program SPLITMPEG ve své ranné verzi neumí rozdělit všechny MPEG SYSTEM soubory. Bohužel nevím, jestli je chyba v MPEG souborech nebo v samotném programu. Jistě si říkáte, proč sem pro výsledný grafický režim CDXL souboru nepoužil mód HAM8 (262144 barev) namísto HAM6 (4096 barev). Důvodem je jednak to, že tento mód lze využít pouze na AGA čipsetu a také to, že programy REND24 a XLMAKE malí s tímto grafickým režimem problémy.
e-mail:
sma@volny.cz, marek.sochurek@czech-tv.cz



Pozn.: články boli naskenované ako text a preto obsahujú aj zopár chýb. Taktiež neručíme za zdrojové kódy (Asm, C, Arexx, AmigaGuide, Html) a odkazy na web. Dúfame, že napriek tomu vám táto databáza dobre poslúži.

Žiadna časť nesmie byť reprodukovaná alebo inak šírená bez písomného povolenia vydavatela © ATLANTIDA Publishing