3.9. Pokročilé audio

3.9.1. Surround/Vícekanálové přehrávání

3.9.1.1. DVD

Většina DVD a mnoho jiných souborů obsahuje surround zvuk. MPlayer podporuje přehrávání přehrávání surround, ale ve výchozím nastavení jej nezapíná, jelikož stereo vybavení je mnohem častější. Pro přehrávání souboru, který má více než dvoukanálový zvuk použijte volbu -channels. Například pro přehrání DVD s 5.1 zvukem:

mplayer dvd://1 -channels 6

Poznamenejme, že ačkoli se jmenuje "5.1", ve skutečnosti má šest kanálů. Pokud máte surround zvukové vybavení, můžete si přidat volbu channels do svého konfiguračního souboru MPlayeru ~/.mplayer/config. Například pro použití čtyřkanálového přehrávání zvuku jako výchozí, přidejte následující řádek:

channels=4

MPlayer pak poskytuje zvuk ve čtyřech kanálech, pokud jsou všechny čtyři kanály k dispozici.

3.9.1.2. Přehrávání stereo souborů do čtyřech reproduktorů

MPlayer ve výchozím nastavení neduplikuje žádné kanály a nedělá to ani většina audio ovladačů. Pokud to chcete udělat ručně:

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

Vysvětlení naleznete v sekci kopírování kanálů.

3.9.1.3. AC–3/DTS Passthrough

DVD mají obvykle surround zvuk enkódovaný ve formátu AC–3 (Dolby Digital) nebo DTS (Digital Theater System). Některá moderní zařízení jsou schopna dekódovat tyto formáty interně. MPlayer lze nakonfigurovat tak, aby přenesl zvuková data bez dekódování. To bude fungovat pouze pokud máte S/PDIF (Sony/Philips Digital Interface) jack ve zvukové kartě.

Pokud vaše zařízení umí dekódovat jak AC–3, tak DTS, můžete bezpečně zapnout passthrough pro oba formáty. Jinak zapněte passthrough pouze pro formát, který vaše zařízení podporuje.

Zapnutí passthrough z příkazového řádku:

  • Jen pro AC–3 použijte -ac hwac3

  • Jen pro DTS použijte -ac hwdts

  • Pro oba (AC–3 i DTS) použijte -afm hwac3

Zapnutí passthrough v konfiguračním souboru MPlayeru:

  • Jen pro AC–3 použijte ac=hwac3,

  • Jen pro DTS použijte ac=hwdts,

  • Pro oba (AC–3 i DTS) použijte afm=hwac3

Povšimněte si čárky (",") na konci ac=hwac3, a ac=hwdts,. To umožní MPlayeru použít normální kodek, když přehrávaný soubor nemá AC–3 nebo DTS zvuk. Volba afm=hwac3 nevyžaduje čárku; MPlayer se zařídí podle potřeby automaticky, pokud je zvolena rodina audio kodeků.

3.9.1.4. Maticově enkódovaný zvuk

***TODO***

Tato sekce musí být teprve napsaná a nemůže být dokončena dokud nám někdo nepošle vzorkové soubory pro testování. Pokud máte nějaké maticově enkódované zvukové soubory, víte, kde je lze najít, nebo máte jakoukoli informaci, která by mohla pomoci, pošlete prosím zprávu do konference MPlayer-DOCS. Do předmětu vložte "[matrix-encoded audio]".

Pokud nepřijdou žádné soubory nebo informace, tato sekce bude odstraněna.

Dobré odkazy:

3.9.1.5. Surround emulace ve sluchátkách

MPlayer obsahuje HRTF (Head Related Transfer Function) filtr založený na projektu MIT, kde jsou měření vzata z mikrofonů na umělé lidské hlavě.

Ačkoli není možné přesně imitovat surround systém, MPlayerův HRTF filtr produkuje prostorově mnohem prokreslenější zvuk ve 2-kanálových sluchátkách. Obvyklé míchání jednoduše kombinuje všechny kanály do dvou; krom kombinace kanálů, hrtf generuje slabá echa, poněkud zvětšuje oddělení stereo kanálů a mění hlasitost některých kmitočtů. Jestli HRTF zní lépe může záviset na zdrojovém zvuku a osobním vkusu, ale určitě stojí za zkoušku.

Pro přehrání DVD s HRTF:

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

hrtf pracuje dobře pouze s 5 nebo 6 kanály. hrtf také vyžaduje zvuk 48 kHz. DVD audio již je 48 kHz, ale pokud máte soubor s odlišným vzorkovacím kmitočtem, který chcete přehrávat pomocí hrtf, musíte jej převzorkovat:

mplayer soubor -channels 6 -af resample=48000,hrtf

3.9.1.6. Potíže

Pokud neslyšíte ze surround kanálů žádný zvuk, ověřte si nastavení směšovače pomocí programu jako je alsamixer; audio výstupy jsou často vypnuty a nastaveny na nulovou hlasitost jako výchozí.

3.9.2. Manipulace s kanály

3.9.2.1. Obecné informace

Naneštěstí neexistuje standard pro řazení kanálů. Následující řazení jsou používaná v AC–3 a jsou poměrně typická; zkuste je a uvidíte, zda tomu váš zdroj odpovídá. Kanály jsou číslovány od 0.

mono

  1. střed

stereo

  1. levý

  2. pravý

kvadrofonní

  1. levý čelní

  2. pravý čelní

  3. levý zadní

  4. pravý zadní

surround 4.0

  1. levý čelní

  2. pravý čelní

  3. středový zadní

  4. středový čelní

surround 5.0

  1. levý čelní

  2. pravý čelní

  3. levý zadní

  4. pravý zadní

  5. středový čelní

surround 5.1

  1. levý čelní

  2. pravý čelní

  3. levý zadní

  4. pravý zadní

  5. středový čelní

  6. subwoofer

Volba -channels se používá pro požadavek na počet kanálů z dekodéru zvuku. Některé audio kodeky používají počet zadaných kanálů pro rozhodování, zda je nutné podmixovat zdroj. Poznamenejme, že to ne vždy ovlivní počet výstupních kanálů. Například použití -channels 4 pro přehrání stereo MP3 souboru povede ke 2-kanálovému výstupu, jelikož MP3 kodek neprodukuje extra kanály.

Pro vytvoření nebo odstranění kanálů slouží zvukový filtr channels, který je rovněž vhodný k ovládání počtu zvukových kanálů posílaných do zvukové karty. Viz následující sekce pro více informací o manipulacích s kanály.

3.9.2.2. Přehrávání mono na dvou reproduktorech

Mono zní mnohem lépe, když je přehráván dvěma reproduktory – zvlášť při použití sluchátek. Audio soubory, které ve skutečnosti mají jeden kanál, jsou automaticky přehrávány dvěma reproduktory; naneštěstí je většina mono souborů ve skutečnosti enkódována jako stereo s jedním kanálem utlumeným. Nejjednodušší a nejblbuvzdornější způsob, jak přinutit oba reproduktory poskytovat stejný zvuk je filtr extrastereo:

mplayer soubor -af extrastereo=0

To zprůměruje oba kanály, takže budou mít poloviční hlasitost originálu. Další sekce přinášejí příklady dalších možností, jak to udělat bez snížení hlasitosti, ale ty jsou mnohem komplexnější a vyžadují odlišné volby v závislosti na tom, který kanál ponecháte. Pokud potřebujete jen upravit hlasitost, může být lehčí experimentovat s filtrem volume a najít vhodnou hodnotu. Například:

mplayer soubor -af extrastereo=0,volume=5

3.9.2.3. Kopírování/přesun kanálů

Filtr channels umí přesunout jakýkoli nebo všechny kanály. Nastavení všech parametrů filtru channels může být komplikované a vyžaduje pozornost.

  1. Rozhodněte, kolik výstupních kanálů potřebujete. To je první parametr.

  2. Spočítejte, kolik přesunů kanálů budete dělat. To je druhý parametr. Každý kanál může být přesunut naráz do několika různých kanálů, ale pamatujte, že pokud je kanál přesunut (dokonce i jen do jednoho cíle), bude zdrojový kanál prázdný dokud do něj nepřesunete jiný kanál. Chcete-li kanál zkopírovat, aby zdroj zůstal stejný, jednoduše přesuňte kanál do obou, cíle i zdroje. Například:

    channel 2 --> channel 3
    channel 2 --> channel 2

  3. Zapište kopie kanálů jako dvojici parametrů. Pamatujte, že první kanál je 0, druhý 1 atd. Na pořadí parametrů nezáleží, pokud jsou správně sdruženy do párů zdroj:cíl.

Příklad: jeden kanál ve dvou reproduktorech

Zde máte příklad jiného způsobu, jak hrát jeden kanál v obou reproduktorech. Pro náš účel předpokládejme, že by měl být přehráván levý kanál a zahozen pravý. Následujeme výše uvedený postup:

  1. Abychom měli výstupní kanál pro každý z obou reproduktorů, musí být první parametr "2".

  2. Levý kanál musí být přesunut do pravého a také sám do sebe, aby nezůstal prázdný. To jsou celkem dva přesuny, takže druhý parametr bude také "2".

  3. Pro přesun levého kanálu (channel 0) do pravého kanálu (channel 1) bude dvojice parametrů "0:1" a "0:0" přesune levý kanál na sebe.

Vše dohromady pak dá:

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

Výhoda tohoto postupu před extrastereo je v tom, že je hlasitost každého výstupního kanálu stejná jako hlasitost zdrojového kanálu. Nevýhodou je to, že parametry musí být změněny na "2:2:1:0:1:1", pokud je požadovaný zvuk v pravém kanálu. Také je těžší si je pamatovat a napsat.

Příklad: levý kanál v obou reproduktorech – zkratka

Ve skutečnosti je mnohem jednodušší způsob použití filtru channels pro přehrávání levého kanálu v obou reproduktorech:

mplayer soubor -af channels=1

Druhý kanál je zahozen a bez dalších parametrů je ponechán jediný zbývající kanál. Ovladače zvukových karet hrají jednokanálový zvuk automaticky v obou reproduktorech. To pracuje pouze pokud je požadovaný levý kanál.

Příklad: kopírování čelních kanálů do zadních

Dalším běžným úkonem je duplikace čelních kanálů a jejich přehrávání v zadních reproduktorech kvadrofonní sestavy.

  1. Zde by mely být čtyři výstupní kanály. První parametr je "4".

  2. Oba přední kanály musí být přesunuty do odpovídajících zadních kanálů a také na sebe. To jsou čtyři přesuny, takže druhý parametr bude "4".

  3. Levý čelní (channel 0) přesuneme do levého zadního (channel 2): "0:2". Levý čelní musíme rovněž přesunout do sama sebe: "0:0". Pravý přední (channel 1) je přesunut do pravého zadního (channel 3): "1:3" a také do sebe: "1:1".

Po zkombinování všech nastavení dostaneme:

mplayer soubor -af channels=4:4:0:2:0:0:1:3:1:1

3.9.2.4. Mixování kanálů

Filtr pan umí mixovat kanály podle požadavků uživatele. Umožňuje vše co filtr channels a ještě víc. Naneštěstí jsou jeho parametry ještě komplikovanější.

  1. Rozhodněte, s kolika kanály budeme pracovat. To můžete nastavit pomocí volby -channels a/nebo -af channels. Později se v příkladech dozvíte, kdy použít kterou.

  2. Rozhodněte, kolik kanálů propustíme do pan (ostatní dekódované kanály jsou zahozeny). To je první parametr a také ovládá, kolik kanálů bude mít výstup.

  3. Zbývající parametry nastavují, kolik z daného kanálu bude namixováno do každého dalšího kanálu. Toto je ta komplikovaná část. Pro usnadnění si rozdělte parametry do několika skupin, jednu pro každý výstupní kanál. Každý parametr uvnitř skupiny odpovídá vstupnímu kanálu. Číslo, které nastavíte bude procento vstupního kanálu, které bude namixováno do výstupního kanálu.

    pan akceptuje hodnoty od 0 do 512, což odpovídá 0% až 51200% původní hlasitosti. Buďte opatrní, pokud používáte hodnoty větší než 1. Nejen, že vám to dá velmi vysokou hlasitost, ale pokud překročíte dynamický rozsah své zvukové karty, můžete uslyšet rány a praskání. Pokud chcete, můžete za pan přidat ,volume pro zapnutí omezení, ale i tak je nejlepší udržet hodnoty pan dostatečně nízko, aby omezování nebylo potřeba.

Příklad: jeden kanál do dvou reproduktorů

Zde máte další příklad pro přehrávání levého kanálu ve dvou reproduktorech. Následujme výše uvedené kroky:

  1. Na výstupu pan by měly být dva kanály, takže první parametr je "2".

  2. Jelikož máme dva vstupní kanály, budeme mít dvě sady parametrů. Jelikož máme rovněž dva výstupní kanály, budeme mít dva parametry v každé sadě. Levý kanál ze souboru by měl jít s plnou hlasitostí do nového levého i pravého kanálu. Takže první sada parametrů je "1:1". Pravý kanál by měl být zahozen, takže druhá sada bude "0:0". Hodnoty 0 na konci je možné vynechat, ale pro snadnější pochopení je zde necháváme.

Dáme-li vše dohromady, dostaneme:

mplayer soubor -af pan=2:1:1:0:0

Pokud chceme místo levého kanálu pravý, budou parametry pan tyto: "2:0:0:1:1".

Příklad: levý kanál ve dvou reproduktorech zkráceně

Stejně jako s channels můžeme použít zkrácený zápis, který funguje pouze pro levý kanál:

mplayer soubor -af pan=1:1

Jelikož má pan pouze jeden vstupní kanál (druhý je zahozen), máme pouze jednu sadu s jedním parametrem, takže tento jediný kanál dává 100% sám ze sebe.

Příklad: podmixování 6-kanálového PCM

MPlayerův dekodér 6-kanálového PCM neumí podmixování. Máme však možnost k tomu použít pan:

  1. Počet výstupních kanálů je 2, takže první parametr je "2".

  2. Při šesti vstupních kanálech budeme mít šest sad parametrů. Jelikož nás však zajímá pouze výstup z prvních dvou kanálů, vystačíme s pouhými dvěma sadami; zbývající čtyři sady můžeme vynechat. Pozor na to, že ne všechny vícekanálové zvukové soubory mají stejné řazení kanálů! Tento příklad demonstruje podmixování souboru se stejným řazením kanálů jako má AC–3 5.1:

    0 - levý přední
    1 - pravý přední
    2 - levý zadní
    3 - pravý zadní
    4 - středový přední
    5 - subwoofer

    První sada parametrů je výčtem procentních hodnot hlasitostí v daném pořadí, kterou by měl dostat každý výstupní kanál z levého předního kanálu: "1:0". Pravý přední kanál by měl jít do pravého výstupu: "0:1". Stejně tak zadní kanály: "1:0" a "0:1". Středový kanál jde do obou výstupních kanálů s poloviční hlasitostí: "0.5:0.5" a subwoofer jde do obou s plnou hlasitostí: "1:1".

Dáme-li vše dohromady, dostaneme:

mplayer 6-kanálové.wav -af pan=2:1:0:0:1:1:0:0:1:0.5:0.5:1:1

Uvedené procentní hodnoty jsou pouhým příkladem. Upravte si je podle vlastního uvážení.

Příklad: Přehrávání 5.1 zvuku na velkých reprobednách bez subwooferu

Pokud máte robustní čelní reprobedny, nemusíte utrácet za nákup subwooferu pro kompletní 5.1 zvukový systém. Použijete-li volbu -channels 5 pro požadavek, aby liba52 dekódovala 5.1 zvuk do 5.0, bude zkrátka kanál pro subwoofer zahozen. Pokud jeho obsah chcete roznést do ostatních kanálů, musíte jej podmixovat ručně pomocí pan:

  1. Jelikož se pan potřebuje dostat ke všem šesti kanálům, nastavte -channels 6, takže je liba52 dekóduje všechny.

  2. Filtr pan produkuje pouze pět kanálů, takže první parametr je 5.

  3. Šest vstupních a pět výstupních kanálů znamená šest sad po pěti parametrech.

    • Levý přední kanál půjde jen sám do sebe: "1:0:0:0:0"

    • Stejně tak pravý přední kanál: "0:1:0:0:0"

    • Taktéž levý zadní kanál: "0:0:1:0:0"

    • Rovněž pravý zadní kanál: "0:0:0:1:0"

    • Středový kanál jakbysmet: "0:0:0:0:1"

    • A nyní se musíme rozhodnout, co uděláme se subwooferem, například půlku do předního levého a půlku do předního pravého: "0.5:0.5:0:0:0"

Zkombinujeme-li to dohromady, dostaneme:

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.9.3. Softwarové nastavení hlasitosti

Některé zvukové stopy jsou příliš tiché na to, aby mohly být pohodlně poslouchány bez zesílení. To je problém, pokud váš zvukový systém neumožňuje potřebné zesílení. Volba -softvol poručí MPlayeru použití vestavěného směšovače. Pak můžete použít klávesy pro nastavení hlasitosti (výchozí 9 a 0) pro dosažení mnohem vyšších úrovní hlasitosti. Takto neobejdete směšovač vaší zvukové karty; MPlayer pouze zesílí signál před jeho odesláním do zvukové karty. Následující příklad je dobrým startem:

mplayer tichý-soubor -softvol -softvol-max 300

Volba -softvol-max nastavuje maximální povolenou výstupní hlasitost v procentech původní hlasitosti. Například, -softvol-max 200 umožní nastavit hlasitost až na dvojnásobek původní úrovně. Je bezpečné nastavit vysoké hodnoty volbou -softvol-max; vyšší hlasitost se nepoužije, dokud nepoužijete tlačítka nastavení hlasitosti. Jedinou nevýhodou velkých hodnot je to, že jelikož MPlayer nastavuje hlasitost o podíl z maximální hlasitosti, nebudete mít tak jemný krok nastavení pomocí tlačítek. Pokud potřebujete přesnější nastavování, použijte nižší hodnotu pro -softvol-max a/nebo nastavte -volstep 1.

Volba -softvol pracuje tak, že ovládá zvukový filtr volume. Chcete-li přehrávat soubor od začátku při určité hlasitosti, můžete nastavit volume ručně:

mplayer tichý-soubor -af volume=10

Takto přehrajete soubor se ziskem 10 decibelů. Při použití filtru volume buďte velmi opatrní. Pokud použijete příliš vysokou hodnotu, můžete si poškodit sluch. Začněte s nízkou hodnotou a postupně zvyšujte, až docílíte požadované hlasitosti. Při nastavení příliš vysokých hodnot také hrozí, že volume bude nucen ořezat signál, aby předešel odeslání dat mimo dovolený rozsah do zvukové karty; to povede ke zkreslení signálu.