Podobno kot pri kodiranju analognega zvoka je tudi kodiranje s CD plošče dvodelni proces. Najprej izvlečemo zvočne podatke s CD plošče in jih pretvorimo v datoteko WAV. Potem to datoteko pretvorimo v format MP3.
V osnovi obstajata dva tipa kodirnikov: tisti za konzolo in tisti za okolje X Window. Oboji opravljajo enako nalogo, vendar je tiste za okolje X Window lažje uporabljati (in izgledajo prijaznejši).
Tudi tokrat se morate pred začetkom kodiranja prepričati, da imate dovolj prostora na disku.
Avtor je napisal preprost skript za Perl, ki bo zajel in kodiral skladbe s CD plošče:
#!/usr/bin/perl if ($ARGV[0] ne "") { $count = 1; do { $cdcap = system("cdparanoia", $count, "/mp3/cdda.wav"); $track = "$ARGV[1]/track".$count.".mp3"; $enc = system("bladeenc /mp3/cdda.wav $track -br 256000"); $count++; } until $count > $ARGV[0]; exit; } else { print "Uporaba: cdripper [število skladb] [ciljni_imenik]\n\n"; }
Najpomembnejše zanimive vrstice so:
$cdcap = system("cdparanoia", $count, "/mp3/cdda.wav");
Ta vrstica pokliče zajemovalnik Cdparanoia, ki pretvori zvok s CD pčošče v format WAV.
V tem primeru je omenjena Cdparanoia, če pa želite uporabiti CDDA2WAV, morate vrstico popraviti v:
$cdcap = system("cdda2wav", $count, "/mp3/cdda.wav");
Uporabljeni možnosti sta $count, ki pomeni število skladb za zajem, in pot do izhodne datoteke WAV. V tem primeru gre za začasni imenik na disku SCSI.
Datoteko WAV nato pretvorimo v format MP3 z uporabo programa BladeEnc.
Ta script je bil napisan, da ne bi bilo potrebno zajeti s CD plošče in kodirati vsake skladbe posebej in da ne bi bilo potrebno uporabiti paketnega načina Cdparanoie. Tako zmanjšamo velikost potrebnega prostora na disku, ker paketni način Cdparanoie obdela celotno CD ploščo in porabi vse do 600 MB.
Če želite uporabiti Lame ali Gogo, nadomestite kodirnik z:
$enc = system("lame /mp3/cdda.wav $track -b 256");
$enc = system("gogo /mp3/cdda.wav $track -b 256");
Sledi še preveden seznam možnosti za vsak kodirnik.
Bladeenc
BladeEnc 0.91 (c) Tord Jansson Domača stran: http://bladeenc.mp3.no =============================================================================== BladeEnc je prosta programska oprema, distribuira se pod licenco LGPL. Oglejte si datoteko COPYING, BladeEncovo domačo stran ali www.fsf.org za več podrobnosti. Uporaba: bladeenc [globalna_stikala] vh_dat1 [izh_dat1 [stikala]] vh_dat2 ... Splošna stikala: -[kbit], -br [kbit] Nastavi MP3 bitno stopnjo. Privzeto je 128 (64 za mono). -crc Datoteki MP3 vključi podatke o kontrolni vsoti. -delete, -del Zbriši vzorec po uspešnem kodiranju. -private, -p V izhodni datoteki nastavi zastavico 'private-flag'. -copyright, -c V izhodni datoteki nastavi zastavico 'copyright-flag'. -copy V izhodni datoteki zbriše zastavico 'original-flag'. -mono, -dm Naredi mono MP3 datoteke s kombiniranjem stereo kanalov. -leftmono, -lm Naredi mono MP3 datoteke samo iz levega stereo kanala. -rightmono, -rm Naredi mono MP3 datoteke samo iz desnega stereo kanala. -swap Zamenjaj levi in desni stereo kanal. -rawfreq=[freq] Določi frekvenco vzorcev. Privzeto je 44100. -rawbits=[bits] Določi število bitov na kanal za vzorce. Privzeto je 16. -rawmono Določi, da so vzorci v načinu mono, ne stereo. -rawstereo Določi, da so vzorci v načinu stereo (privzeto). -rawsigned Določi, da so vzorci predznačeni (privzeto). -rawunsigned Določi, da so vzorci nepredznačeni (nenegativna števila). -rawbyteorder=[order]Določi vrstni red bitov v vzorcu: LITTLE ali BIG. -rawchannels=[1/2] Določi število kanalov za vzorec. Naredi isto kot -rawmono oz. -rawstereo. Samo globalna stikala: -quit, -q Po koncu zaključi program brez čakanja na pritisnjeno tipko. -outdir=[dir] Shrani MP3 datoteke v določen imenik. -quiet Onemogoči pisanje na zaslon -nocfg Ne upošteva nastavitev iz konfiguracijske datoteke -prio=[prio] Določi BladeEncovo prioriteto. Veljavne nastavitve so HIGHEST, HIGHER, NORMAL, LOWER, LOWEST (privzeta) in IDLE. -refresh=[rate] Stopnja osveževanja za prikaz napredka. 1=najhitrejša, 2=privzeta. -progress=[0-8] Kateri kazalec napredka naj se uporablja. 0=izklopljeno, 1=privzeto. Vhodne/izhodne datoteke se lahko ustrezno nadomestijo s STDIN in STDOUT.
Lame
LAME različica 3.50 (www.sulaco.org/mp3) GPSYCHO: GPL psycho-acoustic model različica 0.74. UPORABA : lame [možnosti] <vhodna_datoteka> [izhodna_datoteka] <vhodna_datoteka> in/ali <izhodna_datoteka> je lahko "-", kar pomeni stdin/stdout. MOŽNOSTI : -m mode (s)tereo, (j)oint, (f)orce ali (m)ono (privzeto je j) force = prisili ms_stereo vsem okvirjem. Je hitreje in uporablja posebne Mid & Size maskirne pragove -b <bitrate> nastavi bitno stopnjo, privzeto 128 kBit/s (pri VBR to nastavi najmanjšo dovoljeno bitno stopnjo) -s sdreq vzorčna frekvenca vhodne datoteke v kHz - privzeto 44.1 --resample sfreq vzorčna frekvenca izhodne datoteke v kHz Privzeto je enaka sfreq vhodne datoteke --mp3input vhodna datoteka je v formatu MP3 --voice poskusni glasovni način -v uporabi spremenljivo bitno stopnjo (VBR) -V n nastavitev kvalitete VBR. privzeto n=4 0=visoka kvaliteta, daljše datoteke. 9=krajše datoteke -t onemogoči Xing VBR informacijske oznake --nohist onemogoči prikaz VBR histograma -h uporabi (možne) izboljšave kvalitete -f hiter način (slaba kvaliteta) -k onemogoči rezanje pri frekvenci sfb=21 -d kanala imata lahko različna tipa blokov --athonly uporabi samo ATH za maskiranje -r vhod je v formatu pcm -x prisili menjanje zlogov na vhodu -a pretvori iz sterea v mono datoteko za kodiranje mono -e emp ne-poudari n/5/c (zastarelo) -p zaščita pred napakami. vsakemu okvirju doda 16 bitno kontrolno vsoto (ki se izračuna pravilno) -c označi kot avtorsko zaščiteno (copyright) -o označi kot neizvirno (non-original) -S ne izpisuj poročila o napredku in VBR histogramov Določitev katerekoli izmed naslednjih možnosti bo dodala oznako ID3 --tt <title> naslov skladbe (največ 30 znakov) --ta <artist> izvajalec skladbe /največ 30 znakov) --tl <album> album, od koder skladba izhaja (največ 30 znakov) --ty <year> letnica izdaje (največ 4 znaki) --tc <comment> dodatne informacije (največ 30 znakov) MPEG1 vzorčne frekvence (kHz): 32 44.1 48 bitne stonje(kBit/s): 32 48 56 64 80 96 112 128 160 192 224 256 320 MPEG2 vzorčne frekvence (kHz): 16 22.05 24 bitne stopnje (kBit/s): 8 16 24 32 40 48 56 64 80 96 112 128 144 160
Gogo
GOGO-no-coda razl. 2.24 (12. Feb 2000) Copyright (C) 1999 PEN@MarineCat and shigeo Posebna zahvala Keiichi SAKAI, URURI, Noisyu in Kei Gogo temelji na LAME3.29beta in se distribuira pod LGPL uporaba gogo vhodniPCM [izhodniPCM] [možnosti] vhodniPCM is vhodna datoteka WAV če je input.wav enak `stdin', deluje v načinu stdin izhodniPCM je izhodna datoteka MP3 (lahko se izpusti) možnosti -b kbps bitna stopnja [kBit/s] -br bps bitna stopnja [Bit/s] -silent ne izpisuj poročil o napredku -off {3dn,mmx,kni(sse),e3dn} -v {0,..,9} VBR [0:visoka kvaliteta 9: visoka kompresija] Ta možnost naj bi se kombinirala z možnostjo -b samo za vhod v formatu surovi PCM (RAW-PCM) -offset bytes preskoči zaglavje določene velikosti -8bit 8 bitni PCM [privzet je 16 bitni PCM] -mono mono PCM [privzet je stereo PCM] -bswap izmenjava nižjega in višjega zloga pri 16bitPCM -s kHz frekvenca PCM [privzeto 44,1kHz] -nopsy onemogoči način 'psycho-acoustics' -m {s,m,j} izhodni format s:stereo, m:mono, j:j-stereo -d kHz spremeni vzorčno frekvenco MP3 izhoda -emh {n,c,5} ne-poudari -lpf {on,off} 16kHz filter [privzeto se uporabi če <= 128kbps; se ne uporabi če >= 160kbps] -test način 'benchmark' -delete po kodiranju zbriši vhodno datoteko
RipEnc naredi enako kot zgornji primeri, le da je lupinski skript in ga je lažje uporabljati.
Preveden pa izgleda takole:
RipEnc različica 0.7, Copyright (C) 1999 Michael J. Parmeley <mjparme@asde.com>, za RipEnc ni NOBENE GARANCIJE Trenutno v ozadju ne poteka NOBENO kodiranje. Vaša datoteka encode.log je dolga 982607 zlogov. <Vnesite 'd' za podrobnosti, 'v' za gledanje encode log, ali 'del' za brisanje encode log> 1) Spremeni delovni imenik.......................[/megajukebox/tmp] 2) Izberi kodirnik...............................[lame] 3) Izberi zajemovalnik...........................[cdparanoia] 4) Izberi ordoje za id3..........................[nobeno] 5) Preklopi med ročnim in CDDB poimenovanjem.....[ročno] 6) Nastavi spremenljivko XMCD_LIBDIR za CDA .....[/var/X11R6/lib/xmcd] 7) Nastavi priljubljeno konvencijo poimenovanja..[izvajalec-ime_skladbe.mp3] 8) Zajamem celotno CD ploščo?....................[ne] 9) Nastavim možnost za majhne diske?.............[ne] 10) Izberi CDROM.................................[/dev/cdrom] 11) Nastavi bitno stopnjo kodiranih datotek MP3..[256] 12) Seznam datotek v delovnem imeniku 13) Začetek 14) O programu 15) Izhod ?
Kodirniki z grafičnim uporabniškim vmesnikom ponujajo vso funkcionalnost kodiranja z ukazne vrstice, le da vse skupaj skrijejo za prijazen in enostaven grafični vmesnik. Grip in RipperX delujeta na podoben način, oba omogočata izbiranje med eno, več ali kar vsemi skladbami na CD plošči in njihovo pretvorbo. Podpirata tudi CDDB, ki lahko poišče vse podatke o albumu in skladbah kar na strežniku, na ta način si lahko prihranite nekaj dela z ročnim vnašanjem podatkov.
V razdelkih o kodirnikih smo omenili tri različne kodirnike: BladeEnc, Lame in Gogo. Glavna razlika je njihova zmožnost kodiranja (čeprav se razlikujejo tudi v ponujenih možnostih).
Oglejmo si primerček, kjer smo najprej zajeli skladbo s CD plošče in jo zatem kodirali z različnimi kodirniki. Vsi kodirniki so bili pognani v enakih sistemskih pogojih in vsi so naredili datoteko MP3 v stereu.
[dj@megajukebox]$ ls -l cdda.wav -rw-rw-r-- 1 dj dj 59823164 Feb 10 00:56 cdda.wav [dj@megajukebox]$ bladeenc cdda.wav -br 256 BladeEnc 0.91 (c) Tord Jansson Homepage: http://bladeenc.mp3.no =============================================================================== BladeEnc is free software, distributed under the Lesser General Public License. See the file COPYING, BladeEnc's homepage or www.fsf.org for more details. Files to encode: 1 Encoding: ../test.wav Input: 44.1 kHz, 16 bit, stereo. Output: 128 kBit, stereo. Completed. Encoding time: 00:05:58 (0.78X) All operations completed. Total encoding time: 00:05:58 -------------------------------------------------------------------------------- [dj@megajukebox]$ lame cdda.wav -b 256 LAME version 3.50 (www.sulaco.org/mp3) GPSYCHO: GPL psycho-acoustic model version 0.74. Encoding ../test.wav to ../test.wav.mp3 Encoding as 44.1 kHz 128 kbps j-stereo MPEG1 LayerIII file Frame | CPU/estimated | time/estimated | play/CPU | ETA 10756/ 10756(100%)| 0:02:28/ 0:02:28| 0:02:29/ 0:02:29| 1.9074| 0:00:00 -------------------------------------------------------------------------------- [dj@megajukebox]$ gogo cdda.wav -m s -b 256 GOGO-no-coda ver. 2.24 (Feb 12 2000) Copyright (C) 1999 PEN@MarineCat and shigeo Special thanks to Keiichi SAKAI, URURI, Noisyu and Kei MPEG 1, layer 3 stereo inp sampling-freq=44.1kHz out sampling-freq=44.1kHz bitrate=256kbps inp sampling-freq=44.1kHz out sampling-freq=44.1kHz bitrate=128kbps input file `../test.wav' output file `../test.mp3' { 10751/ 10755} 100.0% ( 2.94x) re:[00:00:00.03] to:[00:01:35.42] End of encoding time= 95.430sec
Kot kaže, ima Gogo precej bolje optimiziran algoritem za kodiranje kot BladeEnc in Lame.