7.2. Kodeki audio
Poprzedni | Rozdział 7. Obsługiwane kodeki | Następny

## 7.2. Kodeki audio

Najważniejsze ze wszystkich kodeków audio:

- MPEG layer 1/2/3 (MP1/2/3) audio (natywny kod, z optymalizacją dla MMX/SSE/3DNow!)

- Windows Media Audio 7 i 8 (AKA WMAv1 i WMAv2) (natywny kod, z `libavcodec`)

- Windows Media Audio 9 (WMAv3) (poprzez DLL DMO)

- AC3 Dolby audio (natywny kod, z optymalizacją MMX/SSE/3DNow!)

- przetwarzanie AC3 przez kartę dźwiękową

- AAC

- kodek Ogg Vorbis audio (natywna biblioteka)

- RealAudio: DNET (AC3 z niskim bitratem), Cook, Sipro i ATRAC3

- QuickTime: kodeki Qualcomm i QDesign

- VIVO audio (g723, Vivo Siren)

- Voxware audio (poprzez DirectShow DLL)

- formaty alaw i ulaw, różne gsm, adpcm i pcm i inne stare, proste kodeki audio

- kodeki mowy Adaptive Multi-Rate (AMR)

### 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.

Poprzedni | Początek rozdziału | Następny
7.1. Kodeki video | Spis treści | 7.3. Importowanie kodeków Win32-HOWTO