Podobno kot pri kodiranju analognega zvoka je tudi kodiranje s plošče CD dvodelni proces. Najprej zajamemo zvočne zapise s plošče CD in jih pretvorimo v zapis WAV. Potem to datoteko pretvorimo v zapis MP3.
Kodirniki so dveh vrst: za konzolo in za okolje X Window. Oboji opravljajo isto nalogo, vendar je kodirnike za okolje X Window laže uporabljati (in so videti prijaznejši).
Tudi tokrat se morate pred kodiranjem prepričati, ali imate dovolj prostora na disku.
Avtor je napisal preprost skript za perl, ki bo zajel in shranil skladbe s plošče CD:
#!/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 vrstice so:
$cdcap = system("cdparanoia", $count, "/mp3/cdda.wav");
Ta pokliče zajemalnik Cdparanoia, ki pretvori zvok s plošče CD v zapis WAV.
V tem primeru je omenjena Cdparanoia, če pa želite uporabiti CDDA2WAV, morate vrstico popraviti v:
$cdcap = system("cdda2wav", $count, "/mp3/cdda.wav");
Uporabljeni izbiri sta $count, ki označuje število skladb za zajemanje, in pot do izhodne datoteke WAV. V tem primeru gre za začasni imenik na disku SCSI.
Datoteko WAV nato pretvorimo v zapis MP3 s programom BladeEnc.
Ta script je napisan, da ne bi bilo treba vsake skladbe posebej zajeti s plošče CD in je kodirati in da ne bi bilo treba uporabiti paketnega načina Cdparanoie. Tako zmanjšamo velikost potrebnega prostora na disku, ker paketni način Cdparanoie obdela celotno ploščo CD in porabi vse do 600 MB.
Če želite uporabiti Lame ali Gogo, nadomestite klic kodirnika z:
$enc = system("lame /mp3/cdda.wav $track -b 256");
$enc = system("gogo /mp3/cdda.wav $track -b 256");
Sledi še prevedeni seznam izbir za vsak kodirnik.
Bladeenc
BladeEnc 0.91 (c) Tord Jansson Domača stran: http://bladeenc.mp3.no =============================================================================== BladeEnc je prosta programska oprema, distribuira se z dovoljenjem LGPL. Oglejte si datoteko COPYING, domačo stran BladeEnc ali www.fsf.org za podrobnosti. Uporaba: bladeenc [globalna_stikala] vh_dat1 [izh_dat1 [stikala]] vh_dat2 ... Splošna stikala: -[kbit], -br [kbit] Nastavi bitno hitrost MP3. Privzeto je 128 (64 za mono). -crc Datoteka MP3 obsega podatke o kontrolni vsoti. -delete, -del Zbriši zapis po uspešnem kodiranju. -private, -p V izhodni datoteki nastavi 'private-flag'. -copyright, -c V izhodni datoteki nastavi 'copyright-flag'. -copy V izhodni datoteki zbriši 'original-flag'. -mono, -dm Naredi datoteke mono MP3 s kombiniranjem kanalov stereo. -leftmono, -lm Naredi datoteke mono MP3 samo iz levega kanala stereo. -rightmono, -rm Naredi datoteke mono MP3 samo iz desnega kanala stereo. -swap Zamenjaj levi in desni kanal stereo. -rawfreq=[freq] Določi frekvenco vzorčenja. 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 zapisani predznačeno (privzeto). -rawunsigned Določi, da so vzorci zapisani nepredznačeno (nenegativna števila). -rawbyteorder=[order]Določi vrstni red zlogov 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 končaj program, ne da bi čakal na pritisnjeno tipko. -outdir=[dir] Shrani MP3 datoteke v določen imenik. -quiet Onemogoči pisanje na zaslon. -nocfg Ne upoštevaj nastavitev konfiguracijske datoteke. -prio=[prio] Določi BladeEncovo prioriteto. Veljavne nastavitve so HIGHEST, HIGHER, NORMAL, LOWER, LOWEST (privzeta) in IDLE. -refresh=[rate] Hitrost 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 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 [izbire] <vhodna_datoteka> [izhodna_datoteka] <vhodna_datoteka> in/ali <izhodna_datoteka> je lahko "-", kar pomeni stdin/stdout. IZBIRE : -m mode (s)tereo, (j)oint, (f)orce ali (m)ono (privzeto je j) force = prisili ms_stereo vsem okvirom. Je hitreje in uporablja posebne maskirne pragove Mid & Size -b <bitrate> nastavi bitno hitrost, privzeto 128 kBit/s (pri VBR to nastavi najmanjšo dovoljeno bitno hitrost) -s sdreq frekvenca vzorčenja vhodne datoteke v kHz -- privzeto 44.1 --resample sfreq frekvenca vzorčenja izhodne datoteke v kHz Privzeto je enako sfreq vhodne datoteke --mp3input vhodna datoteka je v zapisu MP3 --voice poskusni glasovni način -v uporabi spremenljivo bitno hitrost (VBR) -V n nastavitev kakovosti VBR. privzeto n = 4 0 = visoka kakovost, daljše datoteke. 9 = krajše datoteke -t onemogoči informacijske oznake Xing VBR --nohist onemogoči prikaz histograma VBR -h uporabi (možne) izboljšave kakovosti -f hiter način (slaba kakovost) -k onemogoči rezanje pri frekvenci sfb = 21 -d kanala imata lahko različni vrsti blokov --athonly uporabi samo ATH za maskiranje -r vhod je v zapisu PCM -x prisili menjanje zlogov na vhodu -a pretvori iz sterea v datoteko mono za kodiranje mono -e emp ne-poudari n/5/c (zastarelo) -p zaščita pred napakami. vsakemu okviru 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 histogramov VBR 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 izhaja skladba (največ 30 znakov) --ty <year> letnica izdaje (največ 4 znaki) --tc <comment> dodatne informacije (največ 30 znakov) frekvence vzorčenja MPEG1 (kHz): 32 44.1 48 bitne hitrosti (kBit/s): 32 48 56 64 80 96 112 128 160 192 224 256 320 frekvence vzorčenja MPEG2 (kHz): 16 22.05 24 bitne hitrosti (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 razširja z dovoljenjem LGPL uporaba gogo vhodniPCM [izhodniPCM] [izbire] vhodniPCM je vhodna datoteka WAV če je input.wav enak `stdin', deluje v načinu stdin izhodniPCM je izhodna datoteka MP3 (lahko se izpusti) izbire -b kbps bitna hitrost [kBit/s] -br bps bitna hitrost [Bit/s] -silent ne izpisuj poročil o napredku -off {3dn,mmx,kni(sse),e3dn} -v {0,..,9} VBR [0:visoka kakovost 9: veliko stiskanje] Ta možnost naj bi se kombinirala z izbiro -b samo za vhod v formatu surovi PCM (RAW-PCM) -offset bytes preskoči zaglavje podane velikosti -8bit 8-bitni PCM [privzet je 16-bitni PCM] -mono mono PCM [privzet je stereo PCM] -bswap zamenjava nižjega in višjega zloga pri 16bitPCM -s kHz frekvenca PCM [privzeto 44,1 kHz] -nopsy onemogoči način 'psycho-acoustics' -m {s,m,j} izhodni format s:stereo, m:mono, j:j-stereo -d kHz spremeni frekvenco vzorčenja izhoda MP3 -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 se uporablja enako kakor zgornji zgledi, le da je lupinski skript in ga je laže uporabljati.
Preveden pa je videti takole:
RipEnc različica 0.7, Copyright (C) 1999 Michael J. Parmeley <mjparme@asde.com>, za RipEnc NE VELJAJO ZAGOTOVILA Trenutno v ozadju NE poteka kodiranje. Vaša datoteka encode.log je dolga 982607 zlogov. <Vnesite 'd' za pojasnila, 'v' za sledenje dnevniškim zapiskom, ali 'del' za brisanje teh zapiskov> 1) Spremeni delovni imenik.......................[/megajukebox/tmp] 2) Izberi kodirnik...............................[lame] 3) Izberi zajemalnik.............................[cdparanoia] 4) Izberi orodje za id3..........................[nobeno] 5) Preklopi med ročnim in poimenovanjem CDDB.....[ročno] 6) Nastavi spremenljivko XMCD_LIBDIR za CDA .....[/var/X11R6/lib/xmcd] 7) Uporabi priljubljeni dogovor za poimenovanje..[izvajalec-ime_skladbe.mp3] 8) Zajamem celotno ploščo CD?....................[ne] 9) Uporabim možnost za majhne diske?.............[ne] 10) Izberi CDROM.................................[/dev/cdrom] 11) Nastavi bitno hitrost kodiranih datotek MP3..[256] 12) Seznam datotek v delovnem imeniku 13) Začetek 14) O programu 15) Izhod ?
Cd2mp3 je enokoračni zapisovalnik glasbe s plošč CD v zapis MP3, ne da bi se vmes izdelale datoteke v zapisu WAV.
Njegovo delovanje je prevedeno videti takole:
[dj@megajukebox]$ cd2mp3 options ALL Jezik: 1 - angleščina. Prevajalec: Gustavo Sverzut Barbieri(k-s) <gsbarbieri@hotmail.com> %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Cd2Mp3 1.0 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Avtor: Gustavo Sverzut Barbieri (k-s) <gsbarbieri@hotmail.com.br> *** pogon za CDROM: -D/dev/cdrom tip: -Icooked_ioctl *** zvočna kartica: /dev/dsp *** prednastavitev: trak *** avtorska zaščita: Da. *** avtor: *** album: zapisujem: '1' kot 'track-1.mp3' (čakaj) V redu! (zapisano) zapisujem: '2' kot 'track-2.mp3' (čakaj)
Seveda lahko v ukazni vrstici podaste tudi druge izbire. Preveden seznam teh izbir je:
dj@megajukebox]$ cd2mp3 --help %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Cd2Mp3 1.0 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Avtor: Gustavo Sverzut Barbieri (k-s) <gsbarbieri@hotmail.com.br> Uporaba: cd2mp3 izbire <številka_skladbe>="<ime_skladbe>" ... <številka_skladbe>="<ime_skladbe>" ali: cd2mp3 izbire ALL (za zapis vseh skladb) ali: cd2mp3 izbire LIST=<pot_do_seznama_skladb> (v obliki dvojic: <številka_skladbe>="<ime_skladbe>" v datoteki) ali: cd2mp3 izbire PLAY=<številka_skladbe> VOL=[0..100] (samo predvajanje skladbe) Izbire: DEV=<pogon_za_CDROM> (privzeto: /dev/cdrom) DEV_TYPE=[generic_scsi|cooked_ioctl] (privzeto: cooked_ioctl) AUDIO_DEV=<zvočna_kartica> (privzeto:/dev/dsp) LANGUAGE=<številka_jezika> (LANGUAGE=help za seznam podprtih jezikov) COPYRIGHT=[YES|NO] PRESET=[phone|voice|fm|tape|hifi|cd|studio] (PRESET=help za več informacij) ALBUM="<naslov_albuma>" AUTHOR="<avtorjevo_ime>"
Kodirniki z grafičnim uporabniškim vmesnikom ponujajo vso funkcionalnost kodiranja iz ukazne vrstice, le da vse skrijejo za prijazen in preprost grafični vmesnik. Grip in RipperX delujeta podobno, oba omogočata izbiranje med eno, več ali kar vsemi skladbami na plošči CD in njihovo pretvorbo. Podpirata tudi CDDB, ki lahko poišče vse podatke o plošči in skladbah kar v strežniku, tako si prihranite nekaj dela z ročnim vnašanjem podatkov.
V razdelkih o kodirnikih smo omenili tri kodirnike: BladeEnc, Lame in Gogo. Poglavitna razlika med njimi je njihova zmožnost kodiranja (čeprav se razlikujejo tudi po ponujenih izbirah).
Oglejmo si zgled, pri katerem smo najprej zajeli skladbo s plošče CD in zatem skladbo kodirali z različnimi kodirniki. Vsi kodirniki so bili pognani pod enakimi pogoji in vsi so ustvarili datoteko MP3 stereo.
[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 optimaliziran algoritem za kodiranje kot BladeEnc in Lame.