3.6. Továbbfejlesztett audió

3.6.1. Térhatású/többcsatornás lejátszás

3.6.1.1. DVD-k

A legtöbb DVD és sok más fájl térhatású hangot tartalmaz. Az MPlayer támogatja a térhatású lejátszást, de alapértelmezésként nem engedélyezi, mivel a sztereó berendezések a gyakoribbak. A több, mint két csatornás audiót tartalmazó fájlok lejátszásához használd a -channels kapcsolót. Például egy 5.1-es audióval rendelkező DVD lejátszása:

mplayer dvd://1 -channels 6

Figyelj rá, hogy az "5.1" név ellenére valójában hat különálló csatorna van. Ha van térhatású hangfalszetted, nyugodtan beleírhatod a channels opciót az MPlayer konfigurációs fájljába, a ~/.mplayer/config-ba. Például a kvadrafónikus lejátszás alapértelmezetté tételéhez írd be ezt a sort:

channels=4

Az MPlayer ekkor az audiót négy csatornán fogja lejátszani, ha mind a négy csatorna elérhető.

3.6.1.2. Sztereó fájlok lejátszása négy hangszórón

Az MPlayer nem duplázza meg a csatornákat alapból, ahogy a legtöbb audió vezérlő sem. Ha ilyet akarsz, kézzel kell megadnod:

mplayer filename -af channels=2:2:0:1:0:0

Lásd a csatorna másolásról szóló rész a magyarázatért.

3.6.1.3. AC-3/DTS áteresztés

A DVD-k általában AC-3 (Dolby Digital) vagy DTS (Digital Theater System) formátumban kódolt térhatású hanggal rendelkeznek. Néhány modern audió berendezés képes ezen formátumok belső dekódolására. Az MPlayer beállítható úgy, hogy dekódolás nélkül adja át az audió adatot. Ez csak akkor fog működni, ha van egy S/PDIF (Sony/Philips Digital Interface) jack dugó a hangkártyádon.

Ha az audió berendezésed tudja dekódolni mind az AC-3-at, mind a DTS-t, nyugodtan engedélyezheted az áteresztést mindkét formátumnál. Különben csak arra a formátumra engedélyezd, amelyiket a berendezésed támogatja.

Áteresztés engedélyezése a parancssorban:

  • Csak AC-3-hoz használd a -ac hwac3 kapcsolót.

  • CSak DTS-hez használd a -ac hwdts kapcsolót

  • AC-3 és DTS esetén használd a -afm hwac3 kapcsolót.

Áteresztés engedélyezése az MPlayer konfigurációs fájljában:

  • Csak AC-3-hoz használd az ac=hwac3, sort.

  • Csak DTS-hez használd az ac=hwdts, sort.

  • AC-3 és DTS esetén használd az afm=hwac3 sort.

Figyelj rá, hogy az ac=hwac3, és ac=hwdts, sorok végén van egy vessző (","). Ez arra utasítja az MPlayert, hogy váltson vissza a normálisan használt codec-re, ha olyan fájlt játszasz le, amiben nincs AC-3-as vagy DTS audió. Az afm=hwac3 sorba nem kell vessző; az MPlayer mindenképpen vált ha egy audió család van megadva.

3.6.1.4. MPEG audió áteresztés

A digitális TV továbbítás (mint pl. a DVB és ATSC) és néhány DVD általában MPEG audió stream-ekkel rendelkezik (általában MP2). Pár MPEG hardver dekóder, mint például a jól felszerelt DVB kártyák és a DXR2 adapterek natívan dekódolják ezt a formátumot.) Az MPlayer beállítható úgy, hogy ne foglalkozzon az audió adatok dekódolásával.

To use this codec:

 mplayer -ac hwmpa 

3.6.1.5. Mátrix-kódolású audió

***TENNIVALÓ***

Ezt a részt még el kell készíteni, de addig nem lehet befejezni, amíg valaki nem ad nekünk hozzá példafájlokat teszteléshez. Ha van mátrix-kódolású audió fájlod, tudod, hogy hol lehet találni ilyet vagy van bármilyen információd, hálásak lennénk ha üzennél nekünk az MPlayer-DOCS levelezési listára. Írj egy "[matrix-encoded audio]"-t a tárgy sorba.

Ha nem érkezik fájl vagy további információ, ez a fejezet törölve lesz.

Jó link-ek:

3.6.1.6. Térhatás emulálása fülhallgatóval

Az MPlayer tartalmaz HRTF (Head Related Transfer Function) szűrőt, mely egy MIT projekten alapszik, melyben méréseket végeztek emberi műfejre szerelt mikrofonokkal.

Bár nem lehet tökéletesen imitálni egy térhatású rendszert, az MPlayer HRTF szűrője biztosít térben némileg mélyített hangot két csatornás fülhallgatón. A hagyományos lekeverés egyszerűen kombinálja az összes csatornát kettőbe; a csatornák kombinálásán túl a hrtf finom visszhangot generál, kissé növeli a sztereó elválasztást és megváltoztatja néhány frekvencia hangerejét. A HRTF hangzásának minősége függ a forrás audiótól és az emberi érzékléstől, de mindenképpen megér egy próbát.

DVD lejátszása DVD HRTF-fel:

mplayer dvd://1 -channels 6 -af hrtf

A hrtf csak 5 vagy 6 csatornával működik jól, valamint 48 kHz-es audió kell hozzá. A DVD audió már 48 kHz-es, de ha van egy fájlod ettől különböző mintavételezési rátával, akkor a hrtf-fel történő lejátszáshoz újra kell mintáznod:

mplayer fájlnév -channels 6 -af resample=48000,hrtf

3.6.1.7. Hibajavítás

Ha nem hallasz semmilyen hangot a térhatású csatornáidból, ellenőrizd a mixer beállításait egy mixer programmal, mint pl. az alsamixer; az audió kimenetek gyakran le vannak némítva és nulla hangerőre vannak állítva alapértelmezésben.

3.6.2. Csatorna többszörözés

3.6.2.1. Általános információk

Sajnos nincs szabvány a csatornák sorrendjére vonatkozóan. Az alábbi sorrend az AC-3-é, ami eléggé tipikus; próbáld meg ezt és meglátod, hogy a forrásod megfelel-e neki. A csatornák számozása 0-tól indul.

mono

  1. középső

sztereó

  1. bal

  2. jobb

kvadrafónikus

  1. bal első

  2. jobb első

  3. bal hátsó

  4. jobb hátsó

surround 4.0

  1. bal első

  2. jobb első

  3. közép hátsó

  4. közép első

surround 5.0

  1. bal első

  2. jobb első

  3. bal hátsó

  4. jobb hátsó

  5. közép első

surround 5.1

  1. bal első

  2. jobb első

  3. bal hátsó

  4. jobb hátsó

  5. közép első

  6. mélynyomó

A -channels kapcsolóval az audió dekódertől lekérdezhető a csatornák száma. Néhány audió codec a specifikált csatornák számát használja fel a downmixing szükségességének megállapítására. Figyelj rá, hogy ez nem mindig érinti a kimeneti csatornák számát. Például a -channels 4 használata egy sztereó MP3 fájl lejátszásánál továbbra is 2 csatornás kimenetet ad, mert az MP3 codec nem tud extra csatornákat készíteni.

A channels audió szűrő használható csatornák létrehozására vagy eltávolítására, a hangkártya felé kiküldött csatornák számának beállítására való. Lásd a következő fejezeteket a csatorna manipulációval kapcsolatos bővebb információkért.

3.6.2.2. Mono lejátszása két hangszóróval

A mono hangok sokkal jobbak, ha két hangszórón keresztül hallhatóak - különösen ha fülhallgatót használsz. Az audió fájlok, amik ténylegesen egy csatornásak, automatikusan két hangszórón keresztül kerülnek lejátszásra; sajnos, a legtöbb mono hangú fájl tulajdonképpen szereóként van elkódolva, amiben az egyik csatornát lenémították. A legkönnyebb és legbolondbiztosabb megoldás arra, hogy mindkét hangszórón ugyanaz a kimenet legyen, az extrastereo szűrő:

mplayer fájlnév -af extrastereo=0

Ez átlagolja mindkét csatornát, aminek eredményeként fele olyan hangosak lesznek, mint az eredeti. A következő fejezetekben találsz egyéb példákat is ennek megvalósítására a hangerő csökkentése nélkül, de azok komplexek és különböző kapcsolókat igényelnek attól függően, hogy melyik csatornát tartod meg. Ha tényleg szükséges a hangerő megtartása, könnyebb, ha a volume szűrővel kikísérletezed és megkeresed a helyes hangerőt. Például:

mplayer filename -af extrastereo=0,volume=5

3.6.2.3. Csatorna másolás/mozgatás

A channels szűrő bármelyik vagy az összes csatornát tudja mozgatni. A channels szűrő alopcióinak beállítása esetenként bonyolult és némi odafigyelést kíván.

  1. Döntsd el, hány kimeneti csatornára van szükséged. Ez az első alopció.

  2. Számold meg, hány csatornamozgatást fogsz véghezvinni. Ez a második alopció. Minden csatorna több különböző helyre mozgatható egy időben, de tartsd észben, hogy ha egy csatornát mozgatsz (még ha csak egy helyre is), a forrás csatorna üres lesz amíg másik csatornát nem mozgatsz a helyére. Csatorna másolásakor a forrás ugyan az marad, egyszerűen csak mozgasd a csatornát mind a cél mind a forrás helyre. Például:

    2-es csatorna --> 3-as csatorna
    2-es csatorna --> 2-es csatorna

  3. Írd le a csatorna másolásokat alopció párokként. Figyelj rá, hogy az első csatorna a 0, a második az 1, stb. Ezen alopciók sorrendje nem számít, amíg megfelelően vannak csoportosítva forrás:cél párokba.

Példa: egy csatorna két hangszóróra

Itt egy példa az egy csatorna több hangszóróra való kiküldésének egy másik módjára. Ebben a példában feltételezzük, hogy a bal csatornát kell lejátszani és a jobb csatornát eldobjuk. Követve a fenti leírást:

  1. Ahhoz, hogy egy-egy kimeneti csatorna legyen mindkét hangszóróhoz, az első alopciónak "2"-nek kell lennie.

  2. A bal csatornát kell mozgatni a jobb csatornára és saját magára is, hogy ne legyen üres. Ez összesen két mozgatás, ami miatt a második alopció is "2".

  3. A bal csatorna mozgatásához (0. csatorna) a jobb csatornára (1. csatorna) az alopció pár "0:1", "0:0" mozgatja a bal csatornát saját magára.

Mindezt összerakva kapjuk:

mplayer fájlnév -af channels=2:2:0:1:0:0

Ezen példa előnye az extrastereo-val szemben, hogy a hangerő mindegyik kimeneti csatornán a bemeneti csatornáéval megegyező lesz. A hátránya, hogy az alopciókat "2:2:1:0:1:1"-re kell változtatni, ha a kívánt audió a jobb csatornán van. Valamint nehezebb megjegyezni és begépelni.

Példa: bal csatorna két hangszóróra rövidítve

Van egy sokkal könnyebb mód a channels szűrő használatára, hogy a bal csatornát mindkét hangszórón megszólaltassuk:

mplayer fájlnév -af channels=1

A második csatorna figyelmen kívül marad és további alopciók nélkül az egyetlen megmaradó csatorna egyedül marad. A hangkártya vezérlők az egy csatornás audiót automatikusan lejátszák mindkét hangszórón. Ez csak akkor működik, ha a kívánt csatorna a bal.

Példa: az elülső csatornák duplázása hátra

Másik gyakori művelet az elülső csatornák duplázása és lejátszása hátul, a hátsó hangszórókon kvadrafónikus beállítással.

  1. Négy kimeneti csatorna kell. Az első alopció "4".

  2. A két elülső csatornát kell mozgatni a megfelelő hátsóra és saját magára. Ez négy mozgatás, a második alopció "4".

  3. A bal elsőt (0. csatorna) kell mozgatni a bal hátsóra (2. csatorna): "0:2". A bal elsőt saját magára is kell mozgatni: "0:0". A jobb elsőt (1. csatorna) a jobb hátsóra (3. csatorna): "1:3", és saját magára kell mozgatni: "1:1".

Az alopciók összeállításával kapjuk:

mplayer fájlnév -af channels=4:4:0:2:0:0:1:3:1:1

3.6.2.4. Csatorna keverés

A pan szűrő felhasználó által megadott arányban tudja keverni a csatornákat. Ezzel meg lehet csinálni mindent, amit a channels szűrővel, és még többet is. Sajnos az alopciók még komplikáltabbak.

  1. Döntsd el, hány csatornával akarsz dolgozni. Ezt a -channels és/vagy -af channels kapcsolókkal kell megadnod. A példák megmutatják, mikor melyiket kell használni.

  2. Döntsd el, hány csatornát adsz át a pan-nek (a további dekódolt csatornák figyelmen kívül maradnak). Ez az első alopció és szabályozza a kimeneti csatornák számát is.

  3. A fennmaradó alopciók megadják, hogy melyik csatornát milyen mértékben kell bekeverni mindegyik másik csatornába. Ez az igazán bonyolult dolog. Könnyítésként válaszd szét az alopciókat különböző részekre, egy rész minden egyes kimeneti csatornához. Minden egy részen belül található alopció egy bemeneti csatornának felel meg. A szám, amit megadsz, a bemeneti csatorna kimeneti csatornába történő bekeverésének százalékos aránya lesz.

    A pan 0 és 512 közötti értékeket fogad el, az eredeti hangerő 0% és 51200%-ának megfelelően. Légy óvatos, ha 1-nél nagyobb értékeket használsz. Nem csak nagy hangerőt adhat, de ha túlléped a hangkártyád mintavételezési rátáját, kellemetlen pukkanásokat és kattanásokat hallhatsz. Ha akarod, a pan-t követheti egy ,volume a vágás engedélyezéséhez, de jobb a pan értékeit olyan alacsonyan tartani, hogy ne kelljen vágni.

Példa: egy csatorna két hangszóróra

Itt van egy újabb példa a bal csatorna két hangszórón történő lejátszására. Kövesd a fent leírt lépéseket:

  1. A pannek két kimeneti csatornája lesz, így az első alopció "2".

  2. Mivel két bemeneti csatornánk van, két alopció rész lesz. Mivel két kimeneti csatornánk van, két alopció lesz részenként. A fájl bal csatornája teljes hangerővel mehet az új bal és jobb csatornára. Így az első alopció rész "1:1". A jobb csatornát figyelmen kívül kell hagyni, így a második "0:0". A sorvégi 0 értékek elhagyhatóak, de a könnyebb megértésért most megtartjuk őket.

Ezen opciók összeállítása adja:

mplayer fájlnév -af pan=2:1:1:0:0

Ha inkább a jobb csatorna kell a bal helyett, a pan alopciói "2:0:0:1:1" lesznek.

Példa: bal csatorna két hangszóróra rövidítve

Amint a channels-el, itt is lehet rövidíteni, ha a csak a bal csatornával dolgozol:

mplayer fájlnév -af pan=1:1

Mivel a pan-nek csak egy bemeneti csatornája van (a másik csatorna figyelmen kívül marad), csak egy része van az alopcióknak, ami megadja, hogy az egyetlen csatorna saját maga 100%-át kapja.

Példa: 6 csatornás PCM lekeverése

Az MPlayer 6 csatornás PCM dekódolója nem tud lekeverni. Itt egy módszer a PCM lekeverésre a pan használatával:

  1. A kimeneti csatornák száma 2, így az első alopció "2".

  2. Hat bemeneti csatornával hat alopció rész lesz. Szerencsére mivel csak az első két csatorna kimenetével foglalkozunk, csak két részt kell készítenünk; a maradék négy elhagyható. Vigyázz, nem mindig ugyan az a csatornák sorrendje a többcsatornás audió fájlokban! Ez a példa egy olyan fájl lekeverését szemlélteti, amiben ugyan olyan csatornák vannak, mint az AC-3 5.1 esetén:

    0 - bal első
    1 - jobb első
    2 - bal hátsó
    3 - jobb hátsó
    4 - középső első
    5 - mélynyomó

    Az alopciók első csoportja az eredeti hangerő százalékát adja, sorrendben, amit mindegyik kimeneti csatorna a bal első csatornától kap: "1:0". A jobb első csatornának a jobb kimenetre kell mennie: "0:1". Ugyan ez a hátsó csatornákra: "1:0" és "0:1". A középső csatorna mindkét kimeneti csatornára átmegy fél hangerővel: "0.5:0.5", a mélynyomó pedig mindkettőre teljes hangerővel: "1:1".

Mindezt összerakva:

mplayer 6-channel.wav -af pan=2:1:0:0:1:1:0:0:1:0.5:0.5:1:1

A fenti példa százalékok csak durva példák. Nyugodtan játszadozz velük!

Példa: 5.1-es audió lejátszása nagy hangszórókon, mélynyomó nélkül

Ha egy pár nagy hangszóród van elől, nem kell pénzt áldoznod mélynyomóra a teljes 5.1-es hangzáshoz. Ha a -channels 5 használatával kéred, hogy a liba52 az 5.1-es audiót 5.0-ban dekódolja, a mélynyomó csatornája egyszerűen elmarad. Ha a mélynyomó csatornáját saját magad szeretnéd szétosztani, kézzel kell lekeverned a pan-nal:

  1. Mivel a pan-nak mind a hat csatornával kell foglalkoznia, add meg a -channels 6 kapcsolót, hogy a liba52 dekódolja őket.

  2. A pan csak öt csatornára küld kimenetet, az első alopció 5.

  3. Hat bemeneti csatorna van és öt kimeneti csatorna, ez hat részt jelent öt alopcióval.

    • A bal első csatornát csak saját magára kell ismételni: "1:0:0:0:0"

    • Ugyan ez a jobb első csatornára: "0:1:0:0:0"

    • Ugyan ez a bal hátsó csatornára: "0:0:1:0:0"

    • És a jobb hátsó csatornára: "0:0:0:1:0"

    • Közép első szintén: "0:0:0:0:1"

    • És most kell eldöntenünk, hogy mit csináljunk a mélynyomóval, pl. felezve a jobb elsőre és a bal elsőre: "0.5:0.5:0:0:0"

Ezen opciók összevonásával születik meg az eredmény:

mplayer dvd://1 -channels 6 -af pan=5:1:0:0:0:0:0:1:0:0:0:0:0:1:0:0:0:0:0:1:0:0:0:0:0:1:0.5:0.5:0:0:0

3.6.3. Szoftveres hangerő állítás

Néhány audió sáv túl halk, hogy kényelmesen hallható legyen kiegészítés nélkül. Ez akkor jelent problémát, ha az audió berendezésed nem tud erősíteni a jelen. A -softvol opció utasítja az MPlayert egy belső keverő használatára. Használhatod a hangerő állító gombokat (alapértelmezettként 9 és 0) a nagyobb hangerő eléréséhez. Figyelj rá, hogy ez nem hagyja figyelmen kívül a hangkártyád keverőjét; az MPlayer csak erősít az eredeti jelen mielőtt kiküldené a hangkártyára. A következő példa jó kezdésként:

mplayer halk-fájl -softvol -softvol-max 300

A -softvol-max opció megadja a maximálisan megengedhető kimeneti hangerőt az eredeti hangerő százalékában. Például a -softvol-max 200 az eredeti szint dupláját engedélyezi. Nyugodtan megadhatsz egy nagy értéket a -softvol-max kapcsolóval; a nagyobb hangerő addig nem lesz használva, amíg te nem használod a hangerő állító gombokat. Az egyetlen hátránya a nagy értéknek az, hogy mivel az MPlayer a maximum százalékával állítja be a hangerőt, nem lesz olyan precíz vezérlésed a hangerő állító gombok használatakor. Használj kisebb értéket a -softvol-max-szal és/vagy add meg a -volstep 1-et, ha nagyobb pontosságot akarsz.

A -softvol opció a volume audió szűrő vezérlésével működik. Ha egy fájlt egy bizonyos hangerővel akarsz lejátszani az elejétől kezdve, megadhatod a volume-val kézzel:

mplayer halk-fájl -af volume=10

Ez 10 decibel-es növeléssel játsszal le a fájlt. Légy óvatos, ha a volume szűrőt használod - könnyen károsíthatod a füleidet, ha túl nagy értéket használsz. Kezd alacsonyan és fokozatosan menj felfelé, amíg meg nem érzed, hogy meddig kell állítani. Valamint ha nagyon nagy értékeket adsz meg, a volume-nek lehet, hogy le kell csípnie a jelet, hogy megakadályozza a hangkártyád elfogadható tartományán kívül eső adatok küldését; ez zavart audiót eredményez.