7.2. Kodeki audio

Najważniejsze ze wszystkich kodeków audio:

7.2.1. Programowe dekodowanie AC3

To jest domyślny dekoder używany przez pliki z dźwiękiem AC3.

Dekoder AC3 może wytworzyć wyjście audio zmiksowane dla 2, 4 lub 6 głośników. Kiedy skonfigurowany jest dla 6 głośników, dekoder dostarcza do sterownika karty dźwiękowej osobne wyjście dla każdego kanału AC3, pozwalając doświadczyć pełnego "dźwięku przestrzennego" bez potrzeby użycia zewnętrznego dekodera AC3 wymaganego przez kodek hwac3.

Użyj opcji -channels aby wybrać liczbę wyjściowych kanałów. Użyj -channels 2 do uzyskania dźwięku stereo. Dla czterokanałowego dźwięku (wyjścia Lewe Przednie, Prawe Przednie, Lewe Surround i Prawe Surround), użyj -channels 4. W tym przypadku, wszystkie centralne kanały zostaną zmiksowane do odpowiadających im przednich kanałów. Natomiast -channels 6 wyprodukuje wszystkie kanały AC3 tak jak zostały zakodowane - w kolejności Lewy, Prawy, Lewy Surround, Prawy Surround, Centralny i LFE.

Domyślną liczbą kanałów wyjściowych jest 2.

Aby użyć więcej niż dwóch wyjściowych kanałów, będziesz potrzebował OSS i karty dźwiękowej obsługującej odpowiednią ilość wyjściowych kanałów poprzez SNDCTL_DSP_CHANNELS ioctl. Przykładem odpowiedniego sterownika jest emu10k1 (używany przez karty Soundblaster Live!) z sierpnia 2001 roku, albo nowszy (przypuszczalnie działa także ALSA CVS).

7.2.2. Sprzętowe dekodowanie AC3

Potrzebna jest karta obsługująca AC3, z cyfrowym wyjściem (S/PDIF). Sterownik musi prawidłowo obsługiwać format AFMT_AC3 (robi to C-Media). Podłącz swój dekoder AC3 do wyjścia S/PDIF i użyj opcji -ac hwac3. Rozwiązanie to jest ciągle w fazie testów, ale wiadomo, że działa z kartami C-Media i Soundblaster Live! + sterowniki ALSA (ale nie z OSS) i kartami dekodującymi DXR3/Hollywood+ MPEG.

7.2.3. Obsługa libmad

libmad jest wieloplatformową, stałoprzecinkową (wewnętrznie 24-bitowe PCM) biblioteką dekodującą dźwięk MPEG. Nie odtwarza zbyt dobrze uszkodzonych plików i czasami ma problemy z przewijaniem, ale na platformach bez jednostki zmiennoprzecinkowej (FPU), czyli na przykład ARM, może mieć lepszą wydajność niż mp3lib.

Jeśli masz prawidłowo zainstalowaną bibliotekę libmad, ./configure zauważy to i automatycznie zostanie zbudowana obsługa dekodowania dźwięku MPEG przy użyciu libmad.

7.2.4. Sprzętowy kodek MPEG audio

Ten kodek (wybierany poprzez -ac hwmpa) przepuszcza pakiety MPEG audio do sprzętowego dekodera takiego, jak ten, który można znaleźć w pełni wyposażonych kartach DVB i adapterach DXR2. Nie używaj ich w połączeniu z żadnymi innymi wyjściowymi urządzeniami audio (np. OSS i ALSA), bo nie będzie to działało (będziesz słyszeć tylko szum).

7.2.5. Kodek AAC

AAC (Advanced Audio Coding) jest kodekiem audio spotykanym czasami w plikach MOV i MP4. Otwarty dekoder nazywany FAAD dostępny jest na stronie http://www.audiocoding.com. MPlayer zawiera migawkę CVS z libfaad 2.1beta, więc nie musisz ściągać go oddzielnie.

Jeżeli używasz gcc 3.2, który ma kłopoty z kompilacją wbudowanej wersji FAAD lub chcesz z jakichś powodów użyć zewnętrznej biblioteki, ściągnij ją z tej strony i dodaj opcję --enable-external-faad do ./configure. Nie potrzebujesz całego faad2 do dekodowanie plików AAC. Wystarczy użyć samej biblioteki libfaad. Zbudujesz ją w następujący sposób

cd faad2/
sh bootstrap
./configure
cd libfaad
make
make install

Wersje binarne nie są dostępne na stronie audiocoding.com, ale możesz ściągnąć (apt-getem) Debianowe paczki ze strony domowej Christiana Marillata, RPM-y dla Mandrake/Mandriva ze strony P.L.F, a RPM-y dla Fedory z Livna.

7.2.6. Kodeki AMR

Kodeki mowy Adaptive Multi-Rate są używane w telefonii komórkowej trzeciej generacji (3G). Opis implementacji udostępniany jest przez The 3rd Generation Partnership Project (za darmo dla osób prywatnych).

Żeby uaktywnić obsługę kodeków, pobierz źródła kodeków AMR-NB i AMR-WB, umieść je w katalogu do którego rozpakowałeś źródła MPlayera i wpisz następujące komendy:

unzip 26104-610.zip
unzip 26104-610_ANSI_C_source_code.zip
mv c-code libavcodec/amr_float
unzip 26204-600.zip
unzip 26204-600_ANSI-C_source_code.zip
mv c-code libavcodec/amrwb_float

Gdy już to zrobisz, kontynuuj budowanie MPlayera tak, jak zwykle.