logo

Jak si vyrobit MP3.

Na začátek uvedu pro ty z Vás co nemaj páru vo co gou, že se jedná o kompresovaný hudební formát MPEG layer 3. V praxi to vypadá asi tak, že na CD máte nějakou písničku uloženou standartně ve formátu 16bit, 44.1kHz, stereo. Její velikost záleží podle délky skladby. Pohybuje se většinou mezi 35-50 Mb. To je docela velkej objem dat a tak se hledal nějaký způsob, jak data zmáčknout a přitom nějakým způsobem přehrát. A tak se zrodil formát MPEG. Nejprve MPEG layer 1, potom layer 2, a jako poslední a nejrozšířenější MPEG layer 3. Skladba takto zkomprimovaná mívá většinou v rozmezí 3-4 Mb. Poměr komprimace je zhruba 1:11.

Co k tomu budete potřebovat? Samozřejmě počítač, (čím rychlejší tím líp) a nějaký program, (zaklínání, prosby, nářky a výhrůžky nad obyčejným hudebním CD nepomohou) který umí komprimovat do formátu MP3 a CD mechaniku. Mě zatím známý program je mp3enc ve verzi 0.3 z listopadu 1997. Jednotlivé verze jsou Encode020, Encode020881 a Encode040. Podle toho jaký máte procesor. Další program co znám je MusicIn, ale ten umí komprimovat zatím MPEG layer 1 a layer 2. Takže mimo mísu.

Program mp3enc potřebuje ke své funkci knihovnu ixemul.library verzi 47 nebo vyšší. Když ji nenajde upozorní Vás na to a ukončí se. Jak autor píše, implementoval do programu nové rutiny, které zrychlí enkodování oproti verzi 0.1 o 70 %. Nemyslete si však, že to je nějak moc rychlé. V dokumentaci je uvedeno, že na Pentiu 166 MHz se skladba dlouhá 3,5 minuty encoduje 15 minut. Na mém Cyberstormu 060/66 MHz se skladba, která měla 3 minuty 31 sekund encodovala 52 minut 25 sekund. Používal jsem verzi pro procesor 68040 a ixemul library 47.1. Bohužel optimalizovaná verze pro 68060 není. Výsledky by měly být učitě lepší. Do budoucna k tomu snad dojde. Můj odhad je, že na klasické A4000 040/25 MHz bude encodování trvat asi 2 hodiny a na nejrozšířenější kartě 030/50 MHz přibližně 5 hodin. Nic moc řeknete si, ale důležité je, že to jde. Takže aby Vás enkodování nezdržovalo přes den bude asi nejlepší spustit program před spaním a ráno budete mít písničku hotovou. Tyto časy platí pro verze programu pro koprocesor. Nekoprocesorová verze programu je k dispozici, ale výsledný čas encodování bude zhruba 3 krát delší.

Vlastní encodování spočívá v tom, že máte nastartovaný systém s programem AsimCDFS pod kterým máte přístup k písničkám jako k normálním datovým souborům. Ze shelu spustíte program Encode, který můžete mít v adresáři C, aby jste nemuseli vypisovat zbytečně nějakou cestu. Po spuštění programu se Vás zeptá, kde máte soubor, který chcete encodovat. Tady bych chtěl připomenout, že jsem zkoušel soubory AIFF i Maud a výsledky byli stejné. Protože však vlastním zvukovou kartu Toccata, která umí přehrávat soubory Maud, stahuji si hudební soubory na hard disk v tomto formátu. Pak si je můžu pomoci ní přehrát a potom třeba převést do formátu MP3. Příklad cesty k souboru bude vypadat takto ---> CD0:Maud/Track.1, pokud budete chtít encodovat soubory přímo z CD. Dál se zeptá kam chcete soubor MP3 uložit a zbytek nabídek můžete odentrovat, protože jsou uloženy defaultně.

Zkoušel jsem jednu skladbu dlouhou 1,5 minuty (to proto abych nemrhal tolik časem) prověřit několika testy a tady jsou výsledky:

19 minut 20 sekund - encodování přímo z CD
19 minut - encodování z Ram
19 minut 35 sekund - encodování z Ram a program CyberPatcher, který urychluje výpočty FPU
18 minut 2 sekundy - encodování z Ram a program OxyPatcher, také na urychlení výpočtů FPU

Výsledky se možná zdají trochu zvláštní, ale prováděl jsem je vždy dvakrát po sobě. Program CyberPatcher je dodáván přímo od Phase 5 ke kartám s procesory 68060. Jeho aktualizaci a nové knihovny mám z prosince 97. Výsledky by měly být lepší, ale bohužel není to jediný případ kdy je OxyPatcher lepší. Znát je to hlavně u 3D grafických programů. Porovnání připravuji do příštího čísla. V tomto případě jsou výsledky při použití CyberPatcheru opravdu horší než bez něj.

Na závěr musím uvést ještě jeden poznatek. Zkoušel jsem při encodování spustit z harddisku už vytvořené soubory MP3 a co myslíte jak to dopadlo? Normálně začala hrát muzika. Nevěříte co? Taky jsem byl překvapenej. Musím ovšem podotknout, že encodování se zpomalilo.

Kdybych měl porovnávat v tomto případě výkon mého Cyberstorma a Pentia vyšlo by mi, že je stejný asi jako Pentium na 47 MHz. Musím ale uvážit, že program se stále vyvíjí a není optimalizován pro 68060. Stále je však k dispozici multitask. Doufám, že další verze budou ještě lepší a hlavně rychlejší. Všechno záleží především na schopnostech programátora.

Autorem programu je Michael Cheng z Austrálie a jak sám píše, program je TackyPostCardWare. To znamená, že nemusíte nic platit, ale měli by jste mu poslat pohled. Myslím, že alespoň taková podpora za to stojí.

Verzi programu Encode040 jsem přeložil do češtiny, alespoň hlavní body. Pokud budete mít zájem mohu Vám jí poskytnout. Když mě ukecáte mohu přeložit i verzi pro jiný procesor.

JIP          

__________________________________________

. Zpátky do Obsahu