# Instalacja

Przewodnik szybkiej instalacji znajdziesz w pliku `README`. Proszę, najpierw go przeczytaj, a później wróć do tego dokumentu po mrożące krew w żyłach szczegóły.

W tym rozdziale zostaniesz przeprowadzony przez proces kompilacji i konfiguracji MPlayera. Nie będzie to łatwe, ale niekoniecznie też musi być trudne. Jeżeli zauważysz zachowanie inne niż tutaj opisane, proszę poszukaj w dokumentacji, a na pewno znajdziesz odpowiedzi.

## Wymagane oprogramowanie

- binutils - zalecana jest wersja 2.11.x.

- gcc - zalecanymi wersjami są 2.95 i 3.4+. Wiadomo, że 2.96 i 3.0.x generują wadliwy kod, 3.1 i 3.2 również miały problemy, 3.3 niewielkie. Na PowerPC używaj 4.x+.

- XFree86 - sugerowaną wersją jest 4.3 lub nowsza. Upewnij się, że są zainstalowane również pakiety rozwojowe, w przeciwnym wypadku nie zadziała. X'y nie są absolutnie niezbędne, niektóre sterowniki wyjścia video działają bez nich.

- make - sugerowaną wersją jest 3.79.x lub nowsza. Żeby zbudować dokumentację XML potrzebujesz przynajmniej 3.80.

- FreeType - opcjonalna, wymagana by mieć czcionkę do OSD i napisów. Wymagana jest przynajmniej wersja 2.0.9.

- libjpeg - opcjonalny koder/dekoder JPEG, wymagany przez wyjście video JPEG i do dekodowania filmów MJPEG

- libpng - domyślny i zalecany koder/dekoder (M)PNG, wymagany przez GUI i wyjście video PNG

- lame - zalecana jest wersja 3.90 lub późniejsza, wymagana do zakodowania dźwięku MP3 przez MEncodera.

- zlib - zalecana, wymagana dla skompresowanych nagłówków MOV i obsługi PNG.

- LIVE555 Streaming Media - opcjonalna, wymagana do odtwarzania niektórych strumieni RTSP/RTP.

- directfb - opcjonalna, używaj 0.9.13 lub nowszej.

- cdparanoia - opcjonalna, do obsługi CDDA.

- libxmms - opcjonalna, do obsługi wtyczek wejściowych XMMS. Wymagana jest przynajmniej wersja 1.2.7.

- libsmb - opcjonalna, do obsługi sieci przez smb.

- ALSA - opcjonalna, do obsługi wyjścia dźwięku przez ALSA. Wymagana jest przynajmniej wersja 0.9.0rc4.

## Możliwości

- Zdecyduj czy potrzebujesz GUI. Jeśli tak, przeczytaj rozdział GUI przed kompilacją.

- Jeżeli chcesz zainstalować MEncodera (naszego wspaniałego enkodera do wszelkich celów), przeczytaj sekcję MEncoder.

- Jeżeli masz tuner TV kompatybilny z V4L i chcesz oglądać/przechwytywać i kodować filmy przy pomocy MPlayera, przeczytaj rozdział wejście TV.

- Jeżeli masz tuner radiowy kompatybilny z V4L i chcesz słuchać i zapisywać dźwięk przy pomocy MPlayera, przeczytaj rozdział radio.

- Dostępne jest miłe, gotowe do użycia Menu OSD. Przeczytaj rozdział menu OSD.

Potem skompiluj MPlayera:

    ./configure
    make
    make install

W tym momencie MPlayer jest już gotowy do użycia. Katalog `$PREFIX/share/mplayer` zawiera plik `codecs.conf`, który informuje program o wszystkich, dostępnych kodekach i ich możliwościach. Plik ten potrzebny Ci będzie tylko wtedy, jeżeli będziesz chciał zmodyfikować jego ustawienia, jako że plik wykonywalny zawiera go już w sobie. Sprawdź czy masz `codecs.conf` ze starych wersji MPlayera w swoim katalogu domowym (`~/.mplayer/codecs.conf`) i usuń go.

Zauważ, że jeżeli masz `codecs.conf` w `~/.mplayer/`, wbudowany i systemowy `codecs.conf` będą całkowicie zignorowane. Nie rób tak, chyba że chcesz pobawić się z ustawieniami wewnętrznymi MPlayera, ponieważ może to spowodować wiele problemów. Jeżeli chcesz zmienić kolejność szukania kodeków, skorzystaj z opcji `-vc`, `-ac`, `-vfm` lub `-afm` w wierszu poleceń, lub w Twoim pliku konfiguracyjnym (sprawdź stronę man).

Użytkownicy Debiana mogą sobie zbudować paczkę .deb, jest to bardzo proste. Wykonaj

    fakeroot debian/rules binary

w głównym katalogu MPlayera. Przeczytaj rozdział paczki Debiana, aby uzyskać więcej informacji.

Zawsze przejrzyj wyniki `./configure` i plik `config.log`, zawierają one informacje o tym, co będzie zbudowane, a co nie. Możesz również obejrzeć pliki `config.h` i `config.mak`. Jeżeli masz zainstalowane jakieś biblioteki, ale nie są one wykrywane przez `./configure`, sprawdź czy masz również odpowiednie pliki nagłówkowe (przeważnie pakiety -dev) i ich wersje się zgadzają. Plik `config.log` zazwyczaj powie Ci, czego brakuje.

Chociaż nie jest to konieczne, czcionki powinny być zainstalowane, żebyś mógł korzystać z OSD i napisów. Zalecana jest instalacja czcionki TTF i ustawienie MPlayera tak, żeby z niej korzystał. Przeczytaj rozdział Napisy i OSD dla uzyskania bardziej szczegółowych informacji.

## A co z GUI?

GUI wymaga biblioteki GTK 1.2.x lub GTK 2.0 (nie jest w pełni w GTK, ale jego panele są). Skórki przechowywane są w formacie PNG, tak więc musi być zainstalowane GTK, `libpng` (i ich pakiety rozwojowe, zazwyczaj nazwane `gtk-dev` i `libpng-dev`). Możesz go zbudować podając opcję `--enable-gui` skryptowi `./configure`. Aby skorzystać z trybu GUI, musisz wywołać polecenie `gmplayer`.

Jako że MPlayer nie zawiera żadnej skórki, musisz je ściągnąć, jeżeli chcesz używać GUI. Sprawdź stronę z zasobami do pobrania. Skórki powinny być rozpakowane do katalogu dostępnego dla wszystkich (`$PREFIX/share/mplayer/skins`) lub do `$HOME/.mplayer/skins`. MPlayer sprawdza je w poszukiwaniu folderu nazwanego `default`, ale możesz użyć opcji `-skin `nowaskórka`` lub wpisać do pliku konfiguracyjnego `skin=nowaskórka`, aby program korzystał ze skórki w katalogu `*/skins/nowaskórka`.

## Czcionki i OSD

Musisz powiedzieć MPlayerowi której czcionki ma używać, by móc cieszyć się OSD i napisami. Działa dowolna czcionka TrueType lub specjalne czcionki bitmapowe. Jednakże zalecane są czcionki TrueType, ponieważ wyglądają o wiele lepiej, mogą być prawidłowo przeskalowane do wielkości filmu i lepiej sobie radzą z różnymi sposobami kodowania.

### Czcionki TrueType

Są dwa sposoby na skłonienie czcionek TrueType do działania. Pierwszy to podanie w wierszu poleceń pliku z czcionką TrueType przy pomocy opcji `-font`. Ta opcja jest też dobrym kandydatem do włożenie w plik konfiguracyjny (szczegóły na stronie man). Drugi to stworzenie dowiązania symbolicznego (symlink) o nazwie `subfont.ttf` wskazującego na wybraną czcionkę. Albo

    ln -s /ścieżka/do/przykładowej_czcionki.ttf ~/.mplayer/subfont.ttf

dla każdego użytkownika osobno, albo ogólnosystemowe:

    ln -s /ścieżka/do/przykładowej_czcionki.ttf $PREFIX/share/mplayer/subfont.ttf

Jeśli MPlayer był skompilowany z obsługą `fontconfig`, te metody nie zadziałają, zamiast tego `-font` oczekuje nazwy czcionki według `fontconfig` i domyślnie bierze czcionkę sans-serif. Przykład:

    mplayer -font 'Bitstream Vera Sans' anime.mkv

Żeby zobaczyć jakie czcionki zna `fontconfig`, użyj `fc-list`.

### Czcionki bitmapowe

Jeśli z jakiegoś powodu chcesz lub musisz użyć czcionek bitmapowych, ściągnij zestaw z naszej strony domowej. Możesz wybierać spośród rozmaitych czcionek ISO oraz zestawów czcionek stworzonych przez użytkowników w rozmaitych kodowaniach.

Rozpakuj ściągnięty plik do katalogu `~/.mplayer` lub `$PREFIX/share/mplayer`. Potem przemianuj lub stwórz dowiązanie symboliczne jednego z rozpakowanych katalogów na nazwę `font`, na przykład:

    ln -s ~/.mplayer/arial-24 ~/.mplayer/font

    ln -s $PREFIX/share/mplayer/arial-24 $PREFIX/share/mplayer/font

Czcionki powinny mieć odpowiedni plik `font.desc`, który przypisuje pozycje czcionek unicode na właściwą stronę kodową napisów. Innym rozwiązaniem jest mieć napisy zakodowane w UTF-8 i używać opcji `-utf8` albo nazwać plik z napisami tak samo jak film, ale z rozszerzeniem `.utf` i mieć go w tym samym katalogu co film.

### Menu OSD

MPlayer ma całkowicie definiowalny Interfejs Menu OSD.

Menu Ustawienia nie jest jeszcze ZAIMPLEMENTOWANE!

### Instalacja

1. skompiluj MPlayera z opcją `--enable-menu` dla skryptu `./configure`

2. upewnij się, że masz zainstalowaną czcionkę OSD

3. skopiuj plik `etc/menu.conf` do Twojego katalogu `.mplayer`

4. skopiuj plik `etc/input.conf` do Twojego katalogu `.mplayer` lub do ogólnosystemowego katalogu z konfiguracją MPlayera (domyślnie: `/usr/local/etc/mplayer`)

5. sprawdź i ewentualnie przerób plik `input.conf`, aby określić funkcje klawiszy (wszystko jest tam opisane).

6. uruchom MPlayera przykładową komendą:

       mplayer -menu plik.avi

7. wciśnij dowolny klawisz, który wcześniej zdefiniowałeś

## Codec installation

### Xvid

Xvid jest wolnym, kompatybilnym z MPEG-4 ASP, kodekiem video z możliwościami kodowania dwuprzebiegowego i pełną obsługą MPEG-4 ASP. Zauważ, że Xvid nie jest konieczny do odtwarzania video zakodowanego przy pomocy Xvid. Domyślnie używana jest biblioteka `libavcodec`, bo jest szybsza.

### Instalacja `Xvid`

Jak większość otwartego oporgramowania dostępny jest w dwóch wersjach: oficjalnych wydań i wersji CVS. Wersja CVS jest zazwyczaj wystarczająco stablina by jej używać, jako że zazwyczaj ma poprawki do błędów występujących w wydaniach. Tak należy nakłonić `Xvid` CVS do pracy z MEncoderem (będziesz potrzebował przenajmniej autoconf 2.50, automake i libtool):

1.     cvs -z3 -d:pserver:anonymous@cvs.xvid.org:/xvid login

2.     cvs -z3 -d:pserver:anonymous@cvs.xvid.org:/xvid co xvidcore

3.     cd xvidcore/build/generic

4.     ./bootstrap.sh

5.     ./configure

   Możesz potrzebować dodać jakieś opcje (przejrzyj wyjście polecenia `./configure --help`)

6.     make && make install

7. Przekompiluj MPlayera.

### `x264`

`x264` is a library for creating H.264 video. MPlayer sources are updated whenever an `x264` API change occurs, so it is always suggested to use MPlayer from Subversion.

If you have a GIT client installed, the latest x264 sources can be gotten with this command:

    git clone git://git.videolan.org/x264.git

Then build and install in the standard way:

    ./configure && make && make install

Now rerun `./configure` for MPlayer to pick up `x264` support.

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

## RTC

Istnieją trzy metody synchronizacji w MPlayerze.

- Żeby skorzystać ze starej metody, nie musisz robić nic. Używa ona `usleep()`, aby poprawnie zsynchronizować A/V z dokładnością +/- 10ms. Czasami jednak synchronizacja musi być jeszcze dokładniejsza.

- Kod nowego zegara korzysta do tego celu z RTC (RealTime Clock), ponieważ jest on dokładny co do 1ms. Włącza się go opcją `-rtc`, ale wymaga odpowiednio skonfigurowanego jądra. Jeżeli korzystasz z jądra w wersji 2.4.19pre8 lub późniejszej, wystarczy, że ustawisz maksymalną częstotliwość RTC dla zwykłego użytkownika przez system plików `/proc`. Użyj jednego z następujących poleceń, aby pozwolić na korzystanie z RTC zwykłym użytkownikom:

      echo 1024 > /proc/sys/dev/rtc/max-user-freq

      sysctl dev/rtc/max-user-freq=1024

  Możesz uczynić tę zmianę trwałą dodając ten drugi wiersz do `/etc/sysctl.conf`.

  Możesz zobaczyć wydajność nowego synchronizatora w wierszu stanu. Zarządzanie energią w BIOSach niektórych notebooków z procesorami w technologii speedstep nie współgra z RTC. Dźwięk i obraz mogą być niezsynchronizowane. Podłączenie zewnętrznego źródła energii przed włączeniem notebooka wydaje się pomagać. W niektórych zestawieniach sprzętowych (sprawdzone przy używaniu DVD bez obsługi DMA na płycie ALi1541) korzystanie z RTC wywołuje skokowe odtwarzanie. Zaleca się skorzystanie w tych przypadkach z trzeciej metody.

- Trzeci kod zegara włączany jest opcją `-softsleep`. Ma dokładność RTC, ale z niego nie korzysta. Wymaga jednak większej mocy obliczeniowej procesora.