Większość płyt DVD, a także wiele innych plików, zawiera dźwięk przestrzenny.
MPlayer obsługuje dźwięk przestrzenny, ale opcja ta
nie jest domyślnie włączona, ponieważ sprzęt przeznaczony dla zwykłego stereo
jest znacznie bedziej popularny. Aby odtworzyć plik zawierający więcej niż dwa
kanały audio, użyj opcji -channels
.
Na przykład, aby odtworzyć DVD z audio 5.1:
mplayer dvd://1 -channels 6
Zauważmy, że mimo nazwy "5.1", używanych jest 6 kanałów.
Jeżeli posiadasz sprzęt pozwalający na odtwarzanie dźwięku przestrzennego możesz
bezpiecznie wpisać channels
do swojego pliku konfiguracyjnego
MPlayera (~/.mplayer/config
).
Przykładowo, aby domyślnie włączyć efekt kwadrofonii, należy dodać wiersz:
channels=4
Od tego momentu, MPlayer będzie odtwarzał cztery kanały audio, zawsze gdy będą one dostępne.
MPlayer standardowo nie duplikuje kanałów, ani nie robi tego większość sterowników audio. Jeżeli chcesz zrobić to ręcznie:
mplayer filename
-af channels=2:2:0:1:0:0
Zobacz sekcję o kopiowaniu kanałów, jest tam wyjaśnienie tego polecenia.
Dźwięk przestrzenny na płytach DVD zazwyczaj kodowany jest w formacie AC3 (Dolby Digital) lub DTS (Digital Theater System). Część współczesnego sprzętu audio jest w stanie dekodować te formaty. MPlayer może zostać skonfigurowany, aby przekazywał dane audio bez ich dekodowania. Rozwiązanie takie będzie działało tylko, jeżeli posiadasz w swojej karcie muzycznej złącze S/PDIF (Sony/Philips Digital Interface).
Jeżeli twój sprzęt audio potrafi dekodować zarówno AC3 jak i DTS, możesz bezpiecznie włączyć przekazywanie dla obu formatów. W przeciwnym razie, tylko dla tego formatu, który jest obsługiwany przez Twój sprzęt.
Aby włączyć przekazywanie z wiersza poleceń:
dla AC3 użyj -ac hwac3
dla DTS użyj -ac hwdts
dla AC3 i DTS użyj -afm hwac3
Aby włączyć przekazywanie w pliku konfiguracyjnym MPlayera:
dla AC3 użyj ac=hwac3,
dla DTS użyj ac=hwdts,
dla AC3 i DTS użyj afm=hwac3
Zauważ, że na końcu opcji ac=hwac3,
oraz
ac=hwdts,
są przecinki. Powodują one, że
MPlayer będzie używał standardowych kodeków, które
są normalnie używane podczas odtwarzania plików, które nie posiadają dźwięku
AC3 ani DTS.
Opcja afm=hwac3
nie wymaga przecinka,
samo podanie rodziny kodeków powoduje że MPlayer
wypróbuje inne gdy będzie musiał.
Cyfrowe transmisje TV (takie jak DVB czy ATSC), także niektóre płyty DVDs zazwyczaj zawierają strumienie audio w formacie MPEG (zazwyczaj MP2). Część sprzętowych dekoderów MPEG, takich jak pełnofunkcjonalne karty DVB, oraz adaptery DXR2, potrafi natywnie dekodować ten format. MPlayer może zostać tak skonfigurowany, aby przekazywać dane audio bez ich dekodowania.
Aby użyć tego sposobu dekodowania:
mplayer -ac hwmpa
***TODO***
Ta sekcja musi dopiero zostać napisana i nie może zostać ukończona zanim ktoś nie dostarczy przykładowych plików do testów. Jeżeli posiadasz jakieś pliki audio zakodowane macierzowo (matrix-encoded), wiesz kto je posiada lub wiesz cokolwiek co mogłoby być pomocne, wyślij proszę informację na listę mailingową MPlayer-DOCS W temacie podaj "[matrix-encoded audio]".
Jeżeli nie nadejdą żadne wiadomości, ta sekcja zostanie usunięta.
Przydatne linki:
MPlayer posiada filtr HRTF (Head Related Transfer Function) bazujący na projekcie MIT, w ramach którego wykonane zostały pomiary z mikrofonów zamontowanych na głowie ludzkiego manekina.
Chociaż nie jest możliwe dokładne zasymulowanie systemu dźwięku przestrzennego,
filtr HRTF zawarty w MPlayerze powoduje bardziej
przestrzenne zanurzenie w dźwięku przy użyciu 2-kanałowych słuchawek.
Standardowy procedura po prostu łączy wszystkie kanały w dwa. hrtf
,
obok łączenia kanałów, generuje także subtelne echa, nieznacznie zwiększa
separację kanałów stereo, a także zmienia głośność niektórych częstotliwości.
To, czy dźwięk HRTF brzmi lepiej, może zależeć od źródła dźwięku oraz gustu
słuchacza, ale z pewnością jest on warty wypróbowania.
Odtwarzanie DVD z HRTF:
mplayer dvd://1 -channels 6 -af hrtf
hrtf
działa poprawnie tylko przy 5 i 6 kanałach. Opcja ta wymaga
także audio próbkowanego z częstotliwością 48kHz. Audio na płytach DVD jest już
próbkowane 48kHz, lecz jeżeli chcesz odtworzyć plik z innym próbkowaniem i opcją
hrtf
, musisz dokonać jego przepróbkowania tego pliku:
mplayer filename
-channels 6 -af resample=48000,hrtf
Niestety nie ma żadnego standardu opisującego w jaki sposób kanały są uporządkowane. Poniższe porządki przedstawiają te używane przez AC3, które są dość typowe. Spróbuj ich i sprawdź czy odpowiednie źródła dźwięku się zgadzają. Kanały są numerowane od 0.
mono
środkowy
stereo
lewy
prawy
kwadrofonia
lewy przedni
prawy przedni
lewy tylny
prawy tylny
surround 4.0
lewy przedni
prawy przedni
środkowy tylny
środkowy przedni
surround 5.0
lewy przedni
prawy przedni
lewy tylny
prawy tylny
środkowy przedni
surround 5.1
lewy przedni
prawy przedni
lewy tylny
prawy tylny
środkowy przedni
subwoofer (głośnik niskotonowy)
Opcja -channels
jest używana w celu określenia liczby kanałów
dekodowanego audio. Niektóre kodeki audio wykorzystują tę liczbę aby zdecydować
czy konieczne jest zmniejszenie liczby kanałów poprzez miksowanie.
Zauważ, że ustawienie tej opcji nie jest równoważne z ustawieniem liczby
wyjściowych kanałów. Przykładowo, używając opcji -channels 4
aby odtworzyć plik stereo MP3, otrzymamy 2 kanały wyjściowe, bowiem kodek MP3
nie potrafi spreparować dodatkowych kanałów.
Filtr audio channels
może być użyty aby stworzyć lub usunąć kanały,
co może być przydatne przy określaniu liczy kanałów przesyłanych do karty muzycznej.
Aby dowiedzieć się więcej, zobacz kolejne sekcje.
Dźwięk mono brzmi znacznie lepiej, gdy jest odtwarzany przy użyciu dwóch
głośników - szczególnie gdy używamy słuchawek. Pliki audio, które posiadają
tylko jeden kanał audio są automatycznie odtwarzane przy użyciu obu głośników;
niestety większość plików mono jest zakodowana jako dźwięk stereo, gdzie jeden
kanał jest wyciszony. Najłatwiejszą i najbardziej niezawodną metodą pozwalającą
na odtworzenie dźwięku przy użyciu obu głośników jest użycie filtru
extrastereo
:
mplayer filename
-af extrastereo=0
Metoda ta uśrednia oba kanały, co skutkuje zmniejszeniu głośności każdego z kanałów
o połowę względem oryginału. W następnej sekcji zawarto przykłady innych metod rozwiązania
tego problemu bez zmniejszania głośności; niestety są one bardziej skomplikowanego
i wymagają różnych opcji w zależności od kanału, który zawiera dane.
Jeżeli na prawdę potrzebujesz utrzymać głośność, możliwe że łatwiej będzie odpowiednio
dopasować głośność przy użyciu filtru volume
. Na przykład:
mplayer filename
-af extrastereo=0,volume=5
Filtr channels
potrafi przesunąć dowolny jeden lub wszystkie kanały.
Ustawienie wszystkich podopcji filtru channels
może być
skomplikowane i wymaga nieco uwagi.
Zdecyduj ile wyjściowych kanałów audio potrzebujesz. Oto pierwsza podopcja.
Policz ile przesunięć kanałów zamierzasz wykonać. To jest druga podopcja. Każdy kanał może być przesunięty do kilku różnych kanałów w tym samym czasie, ale pamiętaj, że gdy przesuniesz kanał (również gdy tylko do jednego kanału docelowego), źródło zostanie opróżnione, chyba że inny kanał zostanie tam przesunięty. Aby skopiować kanał, pozostawiając źródło nietknięte, po prostu przesuń kanał zarówno do miejsca kopiowania, jak i do źródła. Na przykład:
kanał 2 --> kanał 3 kanał 2 --> kanał 2
Wypisz kopie kanałów jako pary subopcji. Pamiętaj, że pierwszy kanał ma numer
0, drugi 1 itd. Kolejność subopcji nie jest istotna tak długo, ale muszą one
być pogrupowane w pary typu
źródło:cel
.
Oto przykład innej metody odtwarzania jednego kanału w dwóch głośnikach. Załóżmy, że lewy kanał ma być odtwarzany, a prawy ma zostać pominięty. Zgodnie z krokami opisanymi powyżej:
Aby dostarczyć dźwięk do każdego z dwóch głośników, pierwsza opcja musi mieć wartość "2".
Lewy kanał musi zostać przesunięty do prawego kanału oraz lewego, aby nie został on pusty. Sumaryczna liczba przesunięć to dwa, zatem druga opcja to również "2".
Aby przesunąć lewy kanał (kanał 0) do kanału prawego (kanał 1), para subopcji musi byc "0:1", "0:0" przesunie lewy kanał do siebie.
Po połączeniu wszystkiego razem otrzymamy:
mplayer filename
-af channels=2:2:0:1:0:0
Przewaga tego przykładu nad opcją extrastereo
jest taka, że
głośność każdego z kanałów wyjściowych pozostanie taka sama jak kanału źródłowego.
Wadą jest, że podopcje muszą zostać zmienione na "2:2:1:0:1:1", gdy dźwięk zawiera
kanał prawy. Ponadto trudniej to zapamiętać i wpisać.
Istnieje znacznie łatwiejsza metoda na użycie filtru channels
w
celu odtworzenia lewego kanału w dwóch głośnikach:
mplayer filename
-af channels=1
Drugi kanał jest pomijany, a pierwszy jest pozostawiany, bez dodatkowych podopcji. Sterowniki kart muzycznych automatycznie odtwarzają jednokanałowy dźwięk wykorzystując oba głośniki. Oczywiście zadziała to tylko, gdy pożądanym kanałem jest kanał lewy.
Kolejną typową operacją jest kopiowanie kanałów przednich i odtwarzanie ich z tylnych głośników zestawu kwadrofonicznego.
Potrzebujemy czterech kanałów wyjściowych, więc pierwsza podopcja to "4".
Każdy z przednich kanałów musi zostać przesunięty do odpowiedniego kanału tylnego oraz do siebie. W sumie użyte będą cztery przesunięcia, więc druga opcja to "4".
Lewy przedni kanał (kanał 0) musi zostać przesunięty do lewego tylnego (kanał 2): "0:2". Lewy przedni musi być także przesunięty do siebie: "0:0". Prawy przedni (kanał 1) musi zostać przesunięty do prawego tylnego (kanał 3): "1:3" oraz do siebie: "1:1".
Po połączeniu wszystkich podopcji otrzymujemy:
mplayer filename
-af channels=4:4:0:2:0:0:1:3:1:1
Filtr pan
potrafi zmiksować kanały w określonych przez
użytkownika proporcjach. Pozwala to na wykonanie wszystkiego tego co potrafi
filtr channels
i wiele więcej. Niestety podopcje są tutaj
znacznie bardziej skomplikowane.
Zdecyduj z iloma kanałami chcesz pracować. Aby to określić możesz potrzebować
użyć -channels
i/lub -af channels
.
Późniejsze przykłady pokażą kiedy użyć którego.
Zdecyduj ile kanałów ma zostać wprowadzonych do pan
(dalsze
dekodowane kanały zostaną porzucone). To jest pierwsza podopcja. Kontroluje
ona także liczbę kanałów używanych jako wyjście.
Pozostałe podopcje określają jak dużą część danego kanału zmiksować do kanału docelowego. To jest najbardziej skomplikowana część. Aby sprostać temu zadaniu, podzielmy podopcje na kilka grup, po jednej dla każdego kanału wyjściowego. Każda podopcja w zbiorze odpowiada pojedynczemu kanałowi wejściowemu. Liczba, którą podasz odpowiada części kanału wejściowego, która zostanie zmiksowana w kanale wyjściowym.
pan
akceptuje wartości od 0 do 512, co odpowiada wartościom
od 0% do 51200% oryginalnej głośności. Bądź ostrożny używając wartości
większych od 1. Może to spowodować nie tylko bardzo duże zwiększenie
głośności, ale także, jeżeli przekroczysz zakres swojej karty muzycznej,
możesz usłyszeć okropne trzaski. Jeżeli chcesz, możesz stosować po filtrze
pan
dopisać ,volume
, co włączy obcinanie
głośności, jednak najlepiej używać na tyle małych wartości parametrów
pan
, aby przycinanie nie było potrzebne.
Oto jeszcze jeden przykład, jak odtworzyć lewy kanał w dwóch głośnikach. Postępując zgodnie z krokami opisanymi powyżej:
pan
powinien używać dwóch kanałów wyjściowych, więc pierwsza
podopcja to "2".
Ponieważ mamy dwa kanały wejściowe, będziemy mieli dwie grupy podopcji. Ponieważ używane są również dwa kanały wyjściowe, w każdej grupie będą po dwie podopcje. Lewy kanał z pliku powinien zostać skopiowany z pełną głośnością do nowych kanału: lewego i prawego. W związku z tym, pierwsza grupa podopcji to "1:1". Prawy kanał powinien zostać pominięty, zatem druga grupa to "0:0". Wszelkie zera na końcu listy podopcji mogą zostać pominięte, ale dla przejrzystości przykładu, pozostawimy je.
Po złączeniu wszystkich podopcji otrzymamy:
mplayer filename
-af pan=2:1:1:0:0
Jeżeli pożądanym kanałem jest prawy, a nie lewy, podopcje zmienią się na "2:0:0:1:1".
Podobnie jak przy użyciu channels
, istnieje skrót działający
tylko z lewym kanałem:
mplayer filename
-af pan=1:1
Jeżeli pan
posiada tylko jeden kanał wejściowy (pozostałe kanały
są pomijane), potrzebna jest tylko jedna grupa podopcji z jedną podopcją, która
oznacza, że jedyny kanał będzie zawierał 100% siebie.
Dekoder 6-kanałowego PCM zawarty w MPlayerze nie potrafi
zmniejszać liczby kanałów przez miksowanie. Oto metoda dokonania tego przy użyciu
opcji pan
:
Liczba kanałów wyjściowych to 2, więc pierwsza podopcja to "2".
Jako, że mamy 6 kanałów wejściowych, musimy użyć sześciu grup opcji. Na szczęście, ponieważ interesują nas tylko dwa pierwsze kanały, możemy użyć tylko dwóch grup opcji; pozostałe cztery grupy mogą zostać pominięte. Pamiętaj, że nie wszystkie wielokanałowe pliki audio mają tę samą kolejność kanałów. Poniższy przykład pokazuje zmniejszanie liczby kanałów w pliku, w którym kolejność kanałów jest taka, jak w AC3 5.1:
0 - lewy przedni 1 - prawy przedni 2 - lewy tylny 3 - prawy tylny 4 - środkowy przedni 5 - subwoofer (głośnik niskotonowy)
Pierwsza grupa podopcji zawiera kolejne wartości oryginalnej głośności lewego przedniego kanału, które powinny być dostarczone do odpowiednich kanałów wyjściowych: "1:0". Prawy przedni kanał powinien zostać przeniesiony do prawego wyjściowego: "0:1". Analogicznie dla kanałów tylnych: "1:0" i "0:1". Kanał środkowy powinien zostać przeniesiony do obu kanałów wyjściowych z połową głośności: "0.5:0.5", zaś kanał głośnika niskotonowego powinien być słyszalny w obu kanałach wyjściowych z pełną głośnością: "1:1".
Połącz wszystko razem, a otrzymasz:
mplayer 6-channel.wav
-af pan=2:1:0:0:1:1:0:0:1:0.5:0.5:1:1
Przedstawione powyżej głośności są tylko przybliżonym przykładem. Nie czuj się nimi skrępowany i zmieniaj je zgodnie ze swoim uznaniem.
Jeżeli posiadasz parę dużych przednich głośników, możesz nie mieć ochoty
tracić pieniędzy na dodatkowy głośnik niskotonowy, tylko po to, aby mieć
kompletny system 5.1. Jeżeli użyjesz opcji -channels 5
,
przekażesz do lib52 informację, że ma dekodować audio 5.1 dla systemu 5.0.
Tym sposobem kanał głośnika niskotonowego zostanie po prostu pominięty.
Jeżeli chcesz rozdzielić kanał subwoofera samodzielnie, musisz dokonać ręcznego
zmiksowania przy użyciu pan
:
Jako, że pan
musi analizować wszystkie 6 kanałów,
podaj opcję -channels 6
, aby liba52 zdekodował je wszystkie.
Ponieważ pan
będzie używał pięciu kanałów wyjściowych,
pierwsza podopcja to "5".
Sześć kanałów wejściowych i pięć wyjściowych oznacza 6 grup po 5 podopcji.
Lewy przedni kanał replikuje samego siebie: "1:0:0:0:0"
Identycznie dla prawego przedniego kanału: "0:1:0:0:0"
Tak samo dla lewego tylnego: "0:0:1:0:0"
Oraz tak samo dla prawego tylnego: "0:0:0:1:0"
Środkowy też: "0:0:0:0:1"
Teraz musimy zdecydować, co zrobić z subwooferem. Na przykład możemy podzielić go po połowie na lewy przedni i prawy przedni: "0.5:0.5:0:0:0"
Po połączeniu wszystkich opcji otrzymasz:
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
Niekóre ścieżki audio są zbyt ciche aby można ich komfortowo słuchać bez
wzmocnienia. Staje się to problemem, gdy Twój sprzęt audio nie potrafi wzmacniać
sygnału. Opcja -softvol
instruuje MPlayera,
aby ten używał wewnętrznego miksera. Możesz wtedy używać klawiszy strojenia
głośności (domyślnie 9 i 0), aby uzyskać
większe poziomy głośności. Pamiętaj, że nie omija to miksera Twojej karty
muzycznej; MPlayer zwiększa tylko głośność sygnału
przed przesłaniem go do Twojej karty.
Poniższy przykład może być dobrym początkiem:
mplayer cichy-plik
-softvol -softvol-max 300
Opcja -softvol-max
określa maksymalny dozwolony poziom głośności,
jako procent głośności oryginalnej. Przykładowo, -softvol-max 200
pozwoli na maksymalne zwiększenie głośności do 200% głośności oryginalnej.
Można bezpiecznie używać dużych parametrów -softvol-max
;
większa głośność nie zostanie użyta, jeżeli nie zwiększysz jej przy pomocy
klawiszy regulacji głośności. Jedyną wadą stosowania większych wartości jest to,
że, ponieważ MPlayer ustala głośność jako procent
głośności maksymalnej, nie będziesz w stanie precyzyjnie kontrolować głośności
przy pomocy klawiszy regulacji głośności. Użyj mniejszych wartości parametrów
-softvol-max
i/lub dodaj opcję -volstep 1
aby uzyskać większą precyzję.
Opcja -softvol
działa poprzez kontrolę filtru
volume
. Jeżeli chcesz odtwarzać plik z określoną głośnością,
możesz podać opcję dla volume
ręcznie:
mplayer cichy-plik
-af volume=10
Pozwoli to na odtworzenie pliku z 10-decybelowym wzmocnieniem. Bądź ostrożny
używając filtru volume
- ustawiając zbyt dużą głośność możesz
łatwo uszkodzić swój słuch. Zaczynaj od małych wartości i stopniowo zwiększaj je
aż do uzyskania pożądanej głośności. Ponadto, jeżeli podasz zbyt dużą wartość,
filtr volume
może musieć przyciąć głośność, aby nie przesłać
do karty muzycznej danych spoza akceptowalnego przez nią zakresu; będzie to
powodować zniekształcenia dźwięku.