• email
  • facebook
  • linkedin
  • google+
  • pinteres

Audio Linuxon, konzolból

Sok ok lehet rá, hogy valaki nem akar valamely feladatra GUI-s eszközöket használni. Nekem is van néhány, amiért így vagyok a zenehallgatással, audio fájlok kezelésével, konvertálásával. Az okok végeredményben sose fontosak, legfeljebb a technikák, így gondoltam, összeírom, én milyen programokat használok, hátha mást is érdekel ez a világ.

1.   Formátumok

wav: Minden audio fájlok őse a wav, melynek lejátszására a legalacsonyabb szintű eszköz a play nevű programocska. Az ezt tartalmazó sox csomagot (az audio manipulálás svájci bicskáját) manapság pl. az Ubuntu telepítő sem teszi fel nekünk egyből, így kézzel kell ezt pótolni. A bicska tartalmazza a rec nevű felvevő programot is. A SoX gerincét a libSoX segédkönyvtár adja, amelynek különböző moduljait is telepíthetjük, és így flac, mp3, ogg stb. fájlokat is kezelni tudunk (és le tudunk játszani) vele. A SoX mindezek ellenére nem elsősorban lejátszásra, inkább arra szolgál, hogy audio fájlok konvertálása közben manipulálni tudjuk a folyamatot.

mp3: Célirányosan mp3 fájlok konzolos lejátszására való az mpg321 program, amely a régebbi, nem free mpg123 nevű alkalmazás szabad klónja.

ogg és flac: A veszteséges és veszteségmentes audio tömörítés legelterjedtebb szabad formátumai az ogg (az mp3 szabad alternatívája) és a flac (szabad, veszteségmentes audio kodek). Ezeket a vorbis-tools nevű csomagban található ogg123 nevű lejátszóval tudjuk lejátszani. (Flac fájlok lejátszására régebben külön létezett egy flac123 nevű program, de később ez a funkció is az ogg lejátszóba került.)

mpc: Musepack fájlok lejátszására a már kitalálható mpc123 nevű csomag és program szolgál.

ape: Veszteségmentesen tömörített ape fájlokat (legjobb információim szerint) nem lehet lejátszani Linuxon, csak átkonvertálni más formátumba. Erről lásd később.

2.   Frontendek

mplayer: Bár nem igazi frontend (előtét?), de a fenti formátumok majdnem mindegyikét lejátssza az MPlayer. Sőt, rádió streameket is tudunk vele hallgatni (mplayer -cache 1024 -playlist mr2.m3u), megfelelő csomagok jelenlétében fordítva pedig a CD adatait is megjeleníti lejátszáskor (CDDB-ről lekérve: mplayer cddb://).

mocp lejátszó

mocp: Nekem az utóbbi időben a music on console (moc csomag) lejátszója, a mocp vált be legjobban, így ezt merem leginkább ajánlani. Könyvtárak bejárására, lejátszási lista szerkesztésére is alkalmas, igazi konzolos UI-val rendelkező program a mocp. Zene fájlokkal, mint paraméterrel elindítva a fájlokat be is töltöttük a lejátszási listába, amelyből (a TAB gomb segítségével) bármikor átléphetünk a fájlrendszerböngésző ablakba, ahonnan az a gomb segítségével adhatunk emelhetünk át újabb fájlokat. Az összes billentyűparancsot a h gomb segítségével listázhatjuk. Indítsuk mocp -T transparent-background formában, és akkor menő átlátszó háttérrel futtathatjuk a lejátszót. Az mocp boldogul minden emlegetett formátummal, léptetni is tud bennük, illetve lejátssza a rádió streameket is. Sajnos az AAC (mp4) fájlokat és streameket (pl. mr2) Debian/Ubuntu esetén nem tudja lejátszani, mert a disztribúciókban lévő ffmpeg csomagot AAC támogatás (--enable-faad2) nélkül fordították. (Létezik moc-ffmpeg-plugin csomag is, de nekem valahogy azt telepítve se sikerült az mr2 AAC streamet hallgatnom.)

Fontos megemlíteni, hogy a mocp is szerver-kliens alkalmazás. A lejátszást elindítva a zenelejátszó szerver indul el, amelyhez csatlakozik a UI kliens. A q gombbal lépve ki a kliensből a szerver tovább fut, a zene szól. Újra indítva a klienst (fájl lista paraméter nélkül) újra csatlakozhatunk a szerverhez. A Q billentyűparanccsal kapcsolhatjuk ki a szervert is.

cplay: A mocphoz hasonló, de sajnos kisebb hiányosságokkal rendelkező (s ha nem tévedek, elég rég nem fejlesztett) program a cplay. Régebben sokáig ezt használtam. Mivel a cplay is a csinálja mindenki a maga dolgát unixos filozófiát követi, ezért jól konfigurálható, és bővíthető úgy, hogy megadjuk mely formátumot mely beépülő programmal szeretnénk lejátszani.

Ezt a homeunkban elhelyezett .cplayrc fájllal tudjuk megtenni (mintafájl a /usr/share/doc/cplay/examples/cplayrc helyen). Én például beletettem, hogy az *.mpc fájlokat is le tudja játszani. Az így módosított fájlom a következőképp néz ki:

PLAYERS = [
   FrameOffsetPlayer("ogg123 -q -v -k %d %s", "\.(ogg|flac)$"),
   FrameOffsetPlayer("mpg321 -q -v -k %d %s", "(^http://|\.mp[123]$)", 38.28),
   FrameOffsetPlayer("splay -f -k %d %s", "(^http://|\.mp[123]$)", 38.28),
   TimeOffsetPlayer("madplay -v --display-time=remaining -s %d %s", "\.mp[123]$"),
   NoOffsetPlayer("mpc123 -q -v %d %s", "\.mpc$"),
   NoOffsetPlayer("mikmod -q -p0 %s", "\.(mod|xm|fm|s3m|med|col|669|it|mtm)$"),
   NoOffsetPlayer("xmp -q %s", "\.(mod|xm|fm|s3m|med|col|669|it|mtm|stm)$"),
   NoOffsetPlayer("play %s", "\.(aiff|au|cdr|mp3|wav)$"),
   NoOffsetPlayer("speexdec %s", "\.spx$")
   ]

NoOffsetPlayer-ként állítottam be, mivel az mpc123 nem tud sem frame, sem time alapján léptetni. El kell ismerni, a cplay e szempontból nem tökéletes, vagy legalábbis nekem nem sikerült mindent megfelelően beállítani: az ogg123-mal lejátszott flac fájlokban nem tud előre-hátra lépni, és az MPlayert adva meg lejátszóként sem sikerült megoldanom a léptetést, pedig az idő alapján képes lenne erre. Ha valaki rájönne a megoldásra, mindenképpen írja meg!

Egyéb: Ha otthoni zenehallgatáshoz is média kiszolgálót szeretnénk beüzemelni, érdemes lehet alaposabban is körbenézni az mpd honlapján, amelyhez szintén vannak konzolos kliensek. Nekem ez sose kellett, így nem ástam bele magam.

3.   Konvertálás

ogg: A vorbis-tools csomagban található oggenc és oggdec programok segítségével tudunk wav fájlokat oda vissza alakítani.

flac: Flac (és ogg-ba csomagolt flac) fájlok konvertálására a flac csomagban található, flac nevű programocskával van módunk.

mpc: Ha Musepack encoderre van szükségünk az mppenc csomagot telepítsük. Dekódoláshoz használhatjuk az mpc123 wav kimenet (-w filename.wav) kapcsolóját, de ha már erre kerülne a sor, érdemes megnézni a kodek honlapjáról letöltető, és több segédprogramot tartalmazó csomagot is.

ape: Ezen az oldalon találunk leírást arról, hogyan tudjuk forrásból telepíteni az ape kodeket. Itt pedig több architektúrához is találunk kész .deb csomagokat.).

shntool: Ide-oda konvertálásra való parancssoros segédprogram az shntool is. A csomag a már telepített kodekeket tudja használni (hogy melyeket, azt az shtool -f paranccsal tudjuk listázni). Pl. ha ape fájlokhoz jutottunk, és ezeket szeretnénk flaccá konvertálni, (és a kodekek is telepítve vannak), akkor ezt a következő paranccsal tehetjük meg:

shntool conv -o flac *.ape

vagy:

shnconv -o flac *.ape

A két kodeket persze össze lehetne pipeolni (mac sample.ape - -d | flac -o sample.flac -), de az shntool csak kényelmesebb.

cuetools: Hasznos társa az shntoolnak a cue (tartalomjegyzék) fájlok kezelésére szolgáló cuetools csomag. Ennek segítségével egybe rippelt fájlokat tudunk szétdarabolni (és az shntoolst bevetve egy füst alatt konvertálni is):

cuebreakpoints sample.cue | shnsplit -o flac sample.ape

Mivel a tag információk (előadó, lemez és szám címe) ekkor még nem kerülnek át a feldarabolt fájlokba, érdemes lefuttatni a cuetag nevű segédprogramocskát:

cuetag sample.cue split-track*.flac
mocp lejátszó

rippelés: Audio CD-k trackjainek wav-ba rippeléséhez a cdparanoia programot használhatjuk (cdparanoia 1 first.wav). Ha egy füst alatt konvertálni is szeretnénk, ahhoz már én is a grip nevű GUI-s programot használnám (a sok pipeolás helyett). Gondolom leginkább azért, mert cca. 15 éve nem rippeltem. Marha jó program egyébként, tetszőleges konvertert beállíthatunk, paraméterezhetünk, és a számok beolvasása során azokon átküldve menti el a számot, az általunk kívánt formátumban (CDDB segítségével a számnév lesz a fájlnév). A grip ismét remek példa a Unix filozófiára: a program tulajdonképpen egy frontend az összes említett rippelő és konvertáló programhoz.

grabbelés: Hordozható image készítése audio CD-ről (készít egy data.bin fájlt és egy tartalomjegyzéket toc-file.toc néven):

cdrdao read-cd --read-raw toc-file.toc

kiírás: Az előbbi image kiírása:

cdrdao write toc-file.toc

másolás: Ez a parancs lemásolja a CD-t, majd bekér egy üreset, amire kiírja az imidzset:

cdrdao copy --buffers 64 --read-raw toc-file.toc

on-the-fly: Olvasó és író között röptében:

cdrdao copy --source-device /dev/cdrom --device /dev/cdrw --buffers 64

* + cue kiírása: Egyfájlos zene image kiírása CUE alapján:

cdrdao write foo.cue

Így csak wav fájlokat tudunk kiírni, de ez sem gond, hiszen bármikor átalakíthatjuk a flac vagy ape fájlokat wavvá az shnconv segítségével. Csak arra figyeljünk, hogy utána a cue fájlban is a wav szerepeljen a FILE... sorban.

ape + cue kiírása k3b-vel (extra): Nem konzolos téma, de audio, így gondoltam ide veszem a leírást, hogy hogyan lehet a k3b nevű alkalmazáshoz Monkey's Audio plugint telepíteni, hogy az ape+cue párokkal is boldoguljon a cd író alkalmazás (flac+cue alapból megy neki!).

Először is telepítenünk kell néhány csomagot:

apt-get install k3b libqt3-mt-dev libk3b-dev kde-devel libhal-dev nasm

Ezek után töltsük le a k3bmonkeyaudioplugin-t innen: http://sourceforge.net/projects/k3b/files/ -- csomagoljuk ki, a könyvtárban ./configure, make, sudo make install. És meg is vagyunk: immár k3b-vel is tudunk ape+cue párokat kiírni.

És ezzel nagyjából le is fedtük a legtöbb opciót, remélem, semmi fontos nem maradt ki. Nem hiszem, hogy lenne bármi olyan dolog Linux audio ügyben, amit ne tudnánk ezekkel a programokkal megoldani, ha épp nincs X telepítve a gépre.


Telepítendő csomagok: