Audió kimeneti eszközökAudió/Videó szinkronizáció
A Linux hangkártya vezérlői kompatibilítási problémákkal küzdenek. Ez azért van,
mert az MPlayer a megfelelően
kódolt hang vezérlők egy beépített tulajdonságát használja, ami engedélyezi nekik
az audió/videó szinkron javítását. Sajnálatos módon néhány vezérlő szerzői
nem gondoskodnak ezen tulajdonság kódolásáról, mivel nem szükséges az MP3-ak
és a hangeffektek lejátszásához.
Más média lejátszók, mint pl. az aviplay
vagy a xine valószínűleg
kapásból működnek ezekkel a vezérlőkkel, mert egy "egyszerű" módszert
használnak belső időzítéssel. A mérések azt mutatják, hogy az ő
módszereik nem olyan hatékonyak, mint az MPlayeré.
Az MPlayert egy megfelelően megírt audió vezérlővel
használva soha nem fog A/V deszinkronizáció bekövetkezni az audióban, csak
nagyon rosszul elkészített fájlok esetén (lásd a man oldalt a megkerüléshez).
Ha neked rossz audió vezérlőd van, próbáld ki a
kapcsolót, megszünteti a problémáidat. Lásd a man oldalt a bővebb információkért.
ProblémamegoldásNéhány megjegyzés:
Ha 0.5-ös ALSA-d van, akkor majdnem mindig a -öt kell
használnod, mivel az ALSA 0.5-nek hibás az OSS emulációs kódja,
és össze fogja omlasztani az MPlayert
egy ehhez hasonló üzenettel:
DEMUXER: Too many (945 in 8390980 bytes) video packets in the buffer!
Ha a hang kattog CD-ROM-ról történő lejátszás közben, kapcsold be az IRQ
unmasking-ot, amint az a CD-ROM részben le van írva.
Audio szűrők
Az audió szűrők segítségével a hang adatok tulajdonságai megváltoztathatóak, még
mielőtt a hang ki lenne küldve a hangkártyára. A szűrők be és kikapcsolása
alapértelmezésben automatikus, de ez felülbírálható. A szűrők akkor aktiválódnak, ha
az audió adat tulajdonságai különböznek attól, amit a hangkártya igényel és ha nem
szükségesek, deaktiválhatóak. A kapcsolót
használhatod a szűrők automatikus bekapcsolásának felülbírálásához vagy az
automatikusan nem elindított szűrők aktiválásához. A szűrők olyan sorrendben lesznek
lefuttatva, ahogy a vesszővel elválasztott sorban szerepelnek.
Például:
mplayer -af resample,pan movie.avi
átereszti a hangot a resampling szűrőn majd a pan szűrőn. Figyelj rá, hogy
a lista ne tartalmazzon szóközt, különben nem fog működni.
A szűrők viselkedése gyakran megváltoztatható kapcsolókkal. Ezek a kapcsolók az
alábbi részben bővebben le lesznek írva. Egy szűrő az alapértelmezett beállításokkal
fog futni, ha nincs megadva hozzá kapcsoló. Itt egy példa, hogy hogyan használhatod
a szűrőket a szűrő specifikus kapcsolókkal együtt:
mplayer -af resample=11025,pan=1:0.5:0.5 -channels 1 -srate 11025 media.avi
Ez a parancs beállítja a resample szűrő kimeneti frekvenciáját 11025Hz-re és
lebutítja az audiót 1 csatornára a pan szűrővel.
A szűrő réteg teljes futtatását a kapcsoló
szabályozza. Ennek a kapcsolónak két alopciója van:
A egy bitmező, ami beállítja, hogy a szűrőket
hogyan kell beilleszteni és milyen sebesség/precizítás optimalizációt
használjanak:
A szűrők automatikus beillesztése és optimalizálása a CPU sebességéhez.
A szűrők automatikus beillesztése és optimalizálása a legnagyobb sebességhez.
Figyelmeztetés: Néhány tulajdonság az audió szűrőkben
elromolhat csendben, rontva így a hang minőséget.
A szűrők automatikus beillesztése és optimalizálása minőséghez.
A szűrők nem illesztődnek be automatikusan és nincs optimalizálás.
Figyelmeztetés: Lehet, hogy az MPlayer
összeomlik ezzel a beállítással.
A szűrők automatikus beillesztése a fenti 0-nak megfelelően,
de amennyiben lehetséges, lebegőpontos feldolgozást használ.
A szűrők automatikus beillesztése a fenti 1-nek megfelelően,
de amennyiben lehetséges, lebegőpontos feldolgozást használ.
A szűrők automatikus beillesztése a fenti 2-nek megfelelően,
de amennyiben lehetséges, lebegőpontos feldolgozást használ.
A szűrők nem illesztődnek be automatikusan a fenti 3-nak megfelelően,
és amennyiben lehetséges, lebegőpontos feldolgozást használ.
A a -af kapcsoló álneve.
A szűrő réteget a következő általános kapcsolók is érintik:
Növeli a beszédesség szintjét és ezáltal sok szűrő extra státusz üzenetet ír ki.
Ez a kapcsoló beállítja a hangkártyán használni kívánt kimeneti csatornák
számát. A médiából dekódolt csatornák számát is érinti ez. Ha a médiában
kevesebb csatorna van, mint amennyit megadsz, a csatorna szűrő (lásd lejebb)
automatikusan beillesztődik. Az forgalom irányítás a csatorna szűrő alapértelmezett
forgalom irányítása alapján zajlik.
Ez a kapcsoló beállítja a hangkártyán használni kívánt mintavételezési rátát
(természetesen a kártyák korlátozzák ezt). Ha a hangkártyád mintavételi
frekvenciája különbözik az aktuális médiáétól, a resample szűrő (lásd lejebb)
beillesztődik az audió szűrő rétegbe, hogy kompenzálja a különbséget.
Ez a kapcsoló a minta formátumát állítja be az audió szűrő réteg és a hangkártya
között. Ha a hangkártyád által elvárt minta formátum különbözik az aktuális médiáétól,
egy formátum szűrő (lásd lejebb) beillesztődik, hogy kiigazítsa a különbséget.
Up/Downsampling
Az MPlayer teljes mértékben támogatja a hang up/down-sampling-et
a szűrő segítségével. Akkor használható, ha fix
frekvenciával dolgozó hangkártyád van vagy leragadtál egy régi kártyánál, ami csak
maximum 44.1 kHz-et tud. Ez a szűrő automatikusan engedélyezve lesz szükség esetén,
de explicit módon is engedélyezheted a parancssorban. Három kapcsolója van:
egy egész szám, amit a kimeneti mintavételi frekvenciát adja meg Hz-ben. Az
elfogadható tartomány 8kHz-től 192kHz-ig terjed. Ha a bemenet és a kimenet
mintavételi frekvenciája ugyan annyi vagy ez a paraméter el van hagyva, a
szűrő automatikusan kikapcsol. A magas mintavételi frekvencia normális esetben
javítja az audió minőséget, különösen ha más szűrőkkel együtt használod.
egy opcionális bináris paraméter, ami engedélyezi, hogy a kimeneti frekvencia
eltérjen az -tel megadott frekvenciától. Ez a kapcsoló
akkor használható, ha a lejátszás elindulása nagyon lassú. Alapértelmezésben
engedélyezett.
egy opcionális egész szám 0 és 2 között,
ami kiválasztja, hogy melyik resampling módszert használja a program. Itt a
0 a lineáris interpolációt jelenti, az 1
a poly-phase filter-bank és egész feldolgozás segítségével történő resampling-ot
és a 2 a poly-phase filter-bank és lebegőpontos feldolgozást.
A lineáris interpoláció rettentően gyors, de rossz a hang minősége, különösen
ha up-sampling-hez használják. A legjobb minőséget a 2-es adja,
de ez a módszer okozza a legnagyobb CPU terhelést is.
Például:
mplayer -af resample=44100:0:0
resample szűrő kimeneti mintavételezési frekvenciáját 44100Hz-re állítja, exakt kimeneti
frekvenciát használ és lineáris interpolációt.
Csatornák számának megváltoztatása
A szűrő csatornák hozzáadásához vagy elvételéhez használható,
valamint csatornák útvonalának irányításához és másolásához. Automatikusan engedélyezve
lesz, ha az audió szűrő réteg kimenete különbözik a bemeneti rétegtől vagy ha más
szűrő igényli. A szűrő eltávolítja magát, ha nincs rá szükség. A kapcsolók száma
dinamikus:
egy egész szám 1 és 6 között, amit a
kimeneti csatornák számának beállításához használhatsz. Ezen kapcsoló megadása
kötelező, ha elhagyod, futási hibát kapsz.
egy egész szám 1 és 6 között, ami az
útvonalak számának meghatározásához kell. Ez a paraméter opcionális. Ha nem
adod meg, az alapértelmezett útvonal irányítás lesz használva.
0 és 5 közötti számpárok, amik leírják
a csatornák az egyes csatornák útvonalát.
Ha csak az van megadva, az alapértelmezett útvonal irányítás
lesz használva, ami a következő képpen működik: Ha a kimeneti csatornák száma nagyobb,
mint a bemeneti csatornáké, az üres csatornák be lesznek illesztve (kivéve a monoról
sztereóra keverést, akkor a mono csatorna ismétlődik minden kimeneti csatornán).
Ha a kimeneti csatornák száma kisebb, mint a bemeneti csatornáké, akkor a többlet
csatornák le lesznek vágva.
1. példa:
mplayer -af channels=4:4:0:1:1:0:2:2:3:3 media.avi
ez a csatornák számát 4-re állítja és 4 útvonalat is beállít, ami felcseréli a
0-ás és az 1-es csatornád, de békén hagyja a 2-es és 3-as csatornákat. Figyelj rá,
hogy ha csak két csatornát tartalmazó médiát játszol le, a 2-es és 3-as csatorna
elnémul, de a 0-ás és az 1-es marad felcserélve.
2. példa:
mplayer -af channels=6:4:0:0:0:1:0:2:0:3 media.avi
beállítja a csatornák számát 6-ra és 4 útvonalat ad meg, ami a 0. csatornát
átmásolja a 0. és 3. csatornára. A 4-es és 5-ös csatorna el lesz némítva.
Minta formátum konvertáló
A szűrő különböző minta formátumok között konvertál.
Automatikusan engedélyezve lesz ha a hangkártya vagy egy másik szűrő igényli.
lehet 1, 2 vagy 4, az
egy mintában lévő bájtok számát adja meg. Ezen kapcsoló megadása kötelező, ha
elhagyod, futási hibát kapsz.
egy karakterlánc, ami leírja a minta formátumát. A karakterlánc az alábbiak
összefűzésével keletkezik: , vagy
, vagy ,
vagy , vagy
(little- vagy big-endian). Ezen kapcsoló megadása kötelező,
ha elhagyod, futási hibát kapsz.
Példa:
mplayer -af format=4:float media.avi
beállítja a kimeneti formátumot mintánkénti 4 bájtos lebegőpontos adatra.
Késleltetés
A szűrő késlelteti a hangot a hangszóróknál, így különböző
csatornákon érkező hang egyidőben ér a hallgató pozíciójába.
Ez akkor jó, ha több, mint 2 hangszóród van. Ez a szűrő az alábbi paraméterekkel
rendelkezik:
lebegőpontos számok, amik a késleltetési időket reprezentálják ms-ben, külön az
egyes csatornákhoz. A minimum késleltetés 0ms, a maximum 1000ms.
A különböző csatornákhoz szükséges késleltetés kiszámításához kövesd ez a leírást:
Mérd meg a hangszórók távolságát méterben, a hallgatási helyedhez viszonyítva, így
megkapod az s1-s5 távolságokat (egy 5.1-es rendszernél).
A mélynyomót nincs értelme kompenzálni (egyébként sem fogod hallani a különbséget).
Vond ki a s1-s5 távolságokat a maximum távolságból, pl.
s[i] = max(s) - s[i]; i = 1...5
Számítsd ki a szükséges késleltetéseket ms-ben:
d[i] = 1000*s[i]/342; i = 1...5
Például:
mplayer -af delay=10.5:10.5:0:0:7:0 media.avi
a bal és jobb első hangszórót 10.5ms-sel, a két hátsó és a mély csatornát 0ms-sel, a
középső csatornát pedig 7ms-sel késlelteti.
Szoftveres hangerő szabályozásA szoftveres hangerő szabályozást a audió szűrő
valósítja meg. Óvatosan használd ezt a szűrőt, mivel lecsökkentheti a jel erősségét
a hang zaj szintjére. A legtöbb esetben az a legjobb, ha a PCM hangerőt maximumra
állítod, ezt a szűrőt kihagyod és a hangszórók kimeneti hangerejét a keverőd mester
hangerő állítójával állítod. Abban az esetben, ha a hangkártyádnak digitális PCM
keverője van, nem analóg, és torzulást hallasz, használd inkább a MESTER keverőt.
Ha külső erősítő van kötve a számítógéphez (legtöbbször ez az eset áll fenn), a
zajszint minimalizálható a mester hangerő és az erősítőn lévő hangerő gomb
segítségével egészen amíg a sziszegő háttérzaj meg nem szűnik. Ennek a szűrőnek
két kapcsolója van:
egy lebegőpontos szám -200 és +60
között, ami a hangerőt jelenti dB-ben. Az alapértelmezett szint 0dB.
ez egy bináris vezérlő, ami a soft clipping-et kapcsolja ki vagy be. A soft-clipping
a hangot még jobbá teheti, ha nagy hangerőt használsz. Engedélyezd ezt a kapcsolót,
ha a hangszóróid dinamikus intervalluma nagyon kicsi. Vigyázz, ez a tulajdonság
torzulást okozhat, csak végső megoldásként használd.
Példa:
mplayer -af volume=10.1:0 media.avi
erősíti a hangot 10.1dB-re és hard-clip-et használ ha a hangerő túl nagy.
Ennek a szűrőnek van egy második tulajdonsága is: Megméri az összesített maximum
hangszintet és kiírja ezt a szintet, amikor az MPlayer
kilép. Ez a hangerő becslés használható a hangerő szint beállítására az
MEncoderben úgy, hogy a maximum dinamikus intervallumot
használd.
Equalizer
Az szűrő egy 10 oktáv széles grafikus equalizert
jelképez, a 10 IIR széles pass szűrők felhasználásával. Ez azt jelenti, hogy
mindig működik, a lejátszott audió típusától függetlenül. A 10 sáv frekvencia
középértékei:
Sáv számFrekvencia középérték031.25 Hz162.50 Hz2125.0 Hz3250.0 Hz4500.0 Hz51.000 kHz62.000 kHz74.000 kHz88.000 kHz916.00 kHz
Ha a lejátszott hang mintvételi rátája kisebb, mint a frekvencia sávhoz
tartozó frekvencia középérték, akkor a sáv le lesz tiltva. Ezen szűrő ismert
hibája, hogy legfelső sáv karakterisztikája nem teljesen szimmetrikus, ha a
mintavételi ráta közel van a sáv frekvencia középértékéhez. Ez a probléma
megkerülhető a hang resample szűrővel történő up-sampling-elésével, még
mielőtt ez a szűrő megkapná a hangot.
Ennek a szűrőnek 10 paramétere van:
lebegőpontos számok -12 és +12 között,
melyek az egyes frekvencia sávokhoz tartozó erősítés mértékét adják meg dB-ben.
Például:
mplayer -af equalizer=11:11:10:5:0:-12:0:5:12:12 media.avi
erősíteni fogja a hangot a felső és az alső frekvencia tartományokban, míg
majdnem teljesen kikapcsolja azt 1 kHz környékén.
Pan szűrő
A szűrőt csatornák önkényes összekeverésére használhatod.
Alapjaiban a hangerő vezérlő és a channel szűrő keveréke.
Két fő felhasználási módja van ennek a szűrőnek:
Sok csatorna lekeverése kevésre, sztereo lemixelése mono-ra például.
A középső hangszóró "szélességének" átállítása egy térhatású hang rendszernél.
Ezt a szűrőt nehéz használni, és némi buherálás kell hozzá, hogy meglegyen
a kívánt eredmény. Ezen szűrő kapcsolóinak száma a kimeneti csatornák
számától függ:
egy egész szám 1 és 6 között, a bemeneti
csatornák száma adható meg vele. Ezen kapcsoló megadása kötelező, ha elhagyod,
futási hibát kapsz.
lebegőpontos számok 0 és 1 között.
meghatározza, hogy a j. bemeneti csatorna hányad része
lesz bemixelve az i. kimeneti csatornába.
1. példa:
mplayer -af pan=1:0.5:0.5 -channels 1 media.avi
Lemixel sztereóból mono-ba.
2. példa:
mplayer -af pan=3:1:0:1:0.5:0.5 -channels 3 media.avi
3 csatornás kimenetet ad, a 0. és 1. csatornát érintetlenül hagyja, és belemixeli
a 2. kimeneti csatornába (amit például a mélynyomóra küld ki).
Sub-woofer
A szűrő egy mélynyomó csatornát ad az audió folyamhoz.
A mélynyomó csatorna létrehozásához szükséges adatokat a 0. és az 1. csatorna
hangjának átlagolásával nyeri. Az eredményként kapott hangot még low-pass
módon megszűri egy 4. utas Butterworth szűrő segítségével, az alapértelmezett
60 Hz-es vágási frekvenciával majd egy külön csatornát ad a hang folyamhoz.
Figyelem: Kapcsold ki ezt a szűrőt, ha Dolby Digital 5.1-es hanggal rendelkező
DVD-t játszol le, különben ez a szűrő összezavarja a mélynyomó hangját.
Két kapcsolója van a szűrőnek:
egy opcionális lebegőpontos szám, ami a szűrő vágási frekvenciájának Hz-ben
történő megadásához használható. A helyes érték 20 Hz és 300 Hz között van.
A legjobb eredményhez próbáld meg a vágási frekvenciát a lehető legkisebbre
állítani. Ezáltal nőni fog a sztereo és a térhatás minősége. Az alapértelmezett
vágási frekvencia 60 Hz.
egy opcionális egész szám 0 és 5 között,
ami meghatározza annak a csatornának a számát, ahova a mélynyomó audió beillesztésre
kerül. Az alapértelmezett csatorna szám 5. Figyelj rá, hogy a
csatornák száma automatikusan meg lesz növelve ch
értékre, ha szükséges.
Példa:
mplayer -af sub=100:4 -channels 5 media.avi
létrehoz egy mélynyomó csatornát 100 Hz-es vágási frekvenciával a 4. kimeneti csatornán.
Surround-sound dekódoló
A mátrix kódolású térhatású hang dekódolható a
szűrővel. A Dolby Surround például mátrix kódolású formátum. Sok 2 csatornás
audiót tartalmazó fájl tulajdonképpen mátrixolt térhatású hangot tartalmaz.
Ezen tulajdonság kihasználásához olyan hangkártyára van szükség, ami legalább
4 csatornát támogat. Ennek a szűrőnek egy paramétere van csak:
egy opcionális lebegőpontos szám 0 és 1000
között, amivel a hátsó hangszórók késleltetési ideje állítható be ms-ben.
Ez a késleltetést az alábbi módon tanácsos beállítani: ha a d1 a hallgatási pozíció
és az elülső hangszórók közötti távolság és d2 a hallgatási pozíció és a hátsó
hangszórók közötti távolság, akkor a d késleltetést 15 ms-re célszerű állítani,
ha d1 <= d2 és 15 + 5*(d1-d2) értékre, ha d1 > d2. d alapértelmezett
értéke 20 ms.
Példa:
mplayer -af surround=15 -channels 4 media.avi
bekapcsolja a térhatású hang dekódolását a hátsó hangszórók hangjához képest 15
ms-os késleltetéssel.
Audio Exporter
Az audió szűrők exportálják a bejövő jeleket más processzeknek a memória map-olás segítségével
(mmap()). A memória map-olt területein egy fejléc található:
int nch /*csatornák száma*/
int size /*buffer méret*/
unsigned long long counter /*a szinkronizáció fenntartásához kell,
új adat exportálásakor frissítve lesz*/
A többi csak payload (nem átlapolt), 16 bitnyi adat.
A fájl, amibe exportáltatni szeretnél a szűrővel. Az alapértelmezett a
~/.mplayer/mplayer-af_export fájlba map-olás.
Csatornánkénti minták száma. Az alapértelmezett 512 minta.
példa:
mplayer -af export=/tmp/mplayer-af_export:1024 media.avi
exportál 1024 mintát csatornánként a /tmp/mplayer-af_export fájlba.
Extrastereo
Ez az audió szűrő (lineárisan) növeli a különbséget a bal és a jobb csatornák
között (mint az XMMS extrastereo plugin-je), ami egy
kis "élő" hatást ad a lejátszáshoz.
Ennek a szűrőnek egy paramétere van:
a differencia együttható, egy opcionális lebegőpontos szám, ami alapértelmezésként
2.5. Ha 0.0-ra állítod, mono hangot kapsz
(az összes csatorna átlaga). Ha 1.0-ra állítod, a hang
változatlan marad, ha -1.0-re, akkor a bal és a jobb
csatorna felcserélődik.
Használat:
mplayer -af extrastereo media.avi
mplayer -af extrastereo=3.45 media.aviHangerő normalizáló
Ez az audió szűrő maximalizálja a hangerőt a hang torzítása nélkül.
Használat:
mplayer -af volnorm media.avi