# 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 postaram się przeprowadzić Cię przez kompilację i konfigurację MPlayera. Nie będzie to łatwe, ale niekoniecznie też musi być trudne. Jeżeli zauważysz zachowanie inne niż to, które objaśniam, proszę poszukaj w dokumentacji, a na pewno znajdziesz odpowiedzi. Jeżeli widzisz linki, śledź je i czytaj uważnie ich zawartość. Zajmie to trochę czasu, ale z pewnością JEST tego warte.

Potrzebujesz dość nowego sprzętu. Jeśli używasz Linuksa, zalecane są jądra z serii 2.4.x.

## Wymagania sprzętowe

- binutils - zalecana jest wersja 2.11.x. Program ten odpowiedzialny jest za generowanie instrukcji MMX/ 3DNow!/itp., dlatego też jest bardzo ważny.

- gcc - zalecanymi wersjami są: 2.95.3 (może 2.95.4) i 3.2+. Nigdy nie używaj 2.96 lub 3.0.x! Tworzą one wadliwy kod dla MPlayera. Jeżeli zdecydujesz się na zmianę gcc z 2.96, nie rób tego na korzyść 3.x tylko dlatego, że jest nowsze! Wczesne wydania 3.x miały jeszcze więcej błędów niż 2.96. Spróbuj obniżyć wersję do 2.95.x (obniż również wersję libstdc++, inne programy mogą jej potrzebować) lub nie zmieniaj wersji w ogóle (w tym wypadku bądź jednak przygotowany na błędy podczas uruchamiania). Jeżeli jednak dalej obstajesz przy 3.x, spróbuj użyć najnowszej wersji, wczesne wydania miały liczne błędy, więc bądź pewny, że używasz przynajmniej 3.1, była ona sprawdzana i działa. W rozdziałach gcc 2.96 i są bardziej szczegółowe informacje o błędach gcc 2.96 (które ciągle NIE są naprawione, zastosowano jedynie ich obejścia w MPlayerze!).

- XFree86 - sugerowaną wersją jest zawsze najnowsza (4.3). Przeważnie każdy tego chce, ponieważ zaczynając od XFree86 4.0.2, zawiera on rozszerzenie XVideo (czasami również nazywane Xv), które jest potrzebne do włączenia sprzętowej akceleracji YUV (szybkie wyświetlanie obrazów) na kartach, które je obsługują. Upewnij się, że są zainstalowane również pakiety rozwojowe, w przeciwnym wypadku nie zadziała. W przypadku niektórych kart nie potrzebujesz XFree86. Zobacz listę poniżej.

- make - sugerowaną wersją jest zawsze najnowsza (przynajmniej 3.79.x). W większości wypadków nie jest to jednak ważne.

- SDL - nie jest konieczne, ale może pomóc w niektórych wypadkach (złe karty dźwiękowe, graficzne, które mają dziwne opóźnienia ze sterownikiem Xv). Zawsze używaj najnowszego (zaczynając od 1.2.x).

- libjpeg - opcjonalny dekoder JPEG, używany przez opcję `-mf` i niektóre pliki QT MOV. Użyteczny zarówno dla MPlayera, jak i MEncodera, jeżeli zamierzasz pracować z plikami jpeg.

- libpng - domyślny i zalecany dekoder (M)PNG. Wymagany przez GUI. Użyteczny zarówno dla MPlayera jak i MEncodera.

- lame - zalecana, wymagana do zakodowania dźwięku MP3 przez MEncodera, sugerowaną wersją jest zawsze najnowsza (przynajmniej 3.90).

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

- libogg - opcjonalna, wymagana do odtwarzania plików zapisanych w formacie OGG.

- libvorbis - opcjonalna, wymagana do odtwarzania dźwięku OGG Vorbis.

- LIVE.COM Streaming Media - opcjonalna, wymagana do odtwarzania strumieni RTSP/RTP.

- directfb - opcjonalna, do pobrania z . Wymagana jest co najmniej wersja 0.9.13.

- cdparanoia - opcjonalna, do obsługi CDDA.

- libfreetype - opcjonalna, do obsługi czcionek TTF. Wymagana jest przynajmniej wersja 2.0.9.

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

- libsmb - opcjonalna, do obsługi Samby.

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

- bio2jack - opcjonalna, do obsługi wyjścia dźwięku poprzez JACK, potrzebna jedynie w czasie kompilacji. Do pobrania z http://bio2jack.sf.net. Ponieważ nie posiada ona opcji instalacji musisz samodzielnie umieścić plik `libbio2jack.a` w swoim katalogu z bibliotekami (np. `/usr/local/lib/`) lub użyć opcji `--with-bio2jack=KATALOG` aby przekazać jego lokalizację do skryptu `./configure`.

## Kodeki

- libavcodec: Ten pakiet kodeków jest zdolny do dekodowania strumieni video zakodowanych H.263/MJPEG/RV10/DivX3/DivX4/DivX5/MP41/MP42/WMV1/WMV2/SVQ1/SVQ3 i strumieni audio WMA (Windows Media Audio) v1/v2 na wielu platformach. Jest również uważany za najszybszy. Przeczytaj rozdział FFmpeg, a dowiesz się więcej. Cechy:

  - umożliwia dekodowanie wyżej wymienionych strumieni video na maszynach innych niż x86

  - kodowanie większością wymienionych kodeków

  - ten kodek jest najszybszym dostępnym dla DivX/3/4/5 i innych rodzajów MPEG-4. Zalecany!

- Kodeki Win32: Jeśli zamierzasz używać MPlayera na architekturze x86, będziesz ich prawdopodobnie potrzebował. Ściągnij pakiet z naszej strony kodeków i umieść je w katalogu `/usr/local/lib/codecs` PRZED kompilacją MPlayera, w przeciwnym wypadku obsługa Win32 nie będzie wkompilowana!

  Projekt avifile ma podobny pakiet kodeków, ale różni się on od naszego, więc jeżeli chcesz używać wszystkich, obsługiwanych kodeków, skorzystaj z naszej paczki (nie przejmuj się, avifile działa z nią bez problemów).

  Cechy:

  - potrzebujesz tego do zakodowania, na przykład, filmów nagranych z użyciem różnych kompresorów sprzętowych, jak tunery, kamery cyfrowe (na przykład: DV, ATI VCR, MJPEG)

  - wymagane jeśli chcesz odtwarzać filmy WMV9/WMA9.

  - Nie są potrzebne do starych plików video ASF z MP41 lub MP42 (mimo, że dźwięk VoxWare jest często używany w tych plikach - realizowane jest to przez kodek Win32), lub WMV7. Nie są również potrzebne do WMA (Windows Media Audio), libavcodec ma potrzebne do niego dekodery ze świata wolnego oprogramowania.

- Kodeki QuickTime: na platformach x86 te kodeki mogą być użyte do dekodowania RPZA, innych sekwencji video QuickTime i strumieni audio QDesign. Instrukcję instalacji możesz znaleźć w rozdziale kodek video Sorenson.

- DivX4/DivX5: informacje o tym kodeku są dostępne w rozdziale DivX4/DivX5. Prawdopodobnie, nie chcesz tego kodeka jako, że libavcodec (zobacz powyżej) jest o wiele szybszy i ma lepszą jakość, zarówno dla dekodowania i kodowania. Cechy:

  - 1 lub 2 przebiegowe kodowanie przy pomocy MEncodera

  - może odtwarzać stare filmy DivX3 znacznie szybciej niż biblioteki Win32 DLL, ale wolniej niż libavcodec!

  - ma zamknięte źródło i dostępna jest tylko wersja na x86.

- XviD: Alternatywa do kodowania dla DivX4Linux z otwartym źródłem. Cechy:

  - 1 lub 2 przebiegowe kodowanie przy pomocy MEncodera

  - ma otwarte źródło, więc jest wieloplatformowa.

  - jest około 2 razy szybsza od DivX4 podczas zakodowywania, a osiąga mniej więcej tę samą jakość

- Kodeki XAnim są najlepsze (pełny ekran, sprzętowy zoom YUV) do dekodowania filmów 3ivx, Indeo 3/4/5 i kilku starych formatów. Są wieloplatformowe, więc są jednym sposobem, żeby odtworzyć Indeo na platformach innych niż x86 (no, może poza użyciem XAnim:). Ale na przykład filmy Cinepak są najlepiej odtwarzane przy pomocy MPlayerowego dekodera Cinepak!

- Do dekodowania dźwięku Ogg Vorbis, będziesz musiał poprawnie zainstalować libvorbis. Źródła i odpowiednie pakiety binarne możesz pobrać ze strony ogg vorbis.

- MPlayer może korzystać z bibliotek RealPlayer 8 lub RealONE, żeby odtworzyć pliki z obrazem w formacie RealVideo 3.0 i 4.0 i dźwiękiem w Sipro/Cook. Zobacz rozdział format pliku RealMedia, znajdziesz tam instrukcje i kilka informacji.

## Karty graficzne

Są właściwie dwa rodzaje kart graficznych. Te nowsze mają obsługę sprzętowego skalowania i akceleracji YUV, te drugie nie.

### Karty YUV

Wyświetlają i skalują (zoom) obraz do jakiegokolwiek rozmiaru mieszczącego się w ich pamięci, z małym zużyciem mocy CPU (nawet przy zoomie), dlatego też tryb pełnego ekranu jest miły i bardzo szybki.

- Karty Matrox G200/G400/G450/G550: mimo, że dostępny jest sterownik Vidix, zalecane jest używanie modułu mga_vid zamiast niego, ponieważ działa znacznie lepiej. W rozdziale mga_vid znajdziesz informacje o sposobie jego instalacji i użycia. Ważne jest wykonanie tych kroków przed kompilacją MPlayera, w przeciwnym wypadku obsługa mga_vid nie zostanie wkompilowana. Sprawdź również rozdział Matrox TV-out. Jeżeli nie korzystasz z Linuksa, jedyną możliwością jest dla Ciebie sterownik VIDIX: przeczytaj rozdział VIDIX.

- Karty 3Dfx Voodoo3/Banshee: przeczytaj rozdział poświęcony tdfxfb, żeby dowiedzieć się, jak uzyskać znaczy wzrost prędkości. Ważne jest, abyś wykonał te kroki przed kompilacją MPlayera, w przeciwnym wypadku obsługa 3Dfx nie będzie wkompilowana. Przeczytaj również rozdział 3dfx TV-out. Jeżeli korzystasz z Xów, używaj przynajmniej wersji 4.2.0, ponieważ sterownik Xv dla 3dfx był uszkodzony w wersji 4.1.0 i wcześniejszych.

- Karty ATI: sterownik VIDIX obsługuje następujące karty: Radeon, Rage128, Mach64 (Rage XL/Mobility, Xpert98). Przeczytaj również rozdział karty ATI dokumentacji wyjścia TV, aby dowiedzieć się czy wyjście TV Twojej karty jest obsługiwane przez Linuksa/MPlayera.

- Karty S3: układy graficzne Savage i Virge/DX mają sprzętową akcelerację. Używaj jak najnowszej wersji XFree86, starsze sterowniki mają liczne błędy. Układy Savage mają problemy z obrazem YV12, więcej szczegółów znajdziesz w rozdziale S3 Xv. Starsze karty Trio nie obsługują w ogóle lub mają wolną akcelerację sprzętową.

- Karty nVidia: mogą lub nie mogą być dobrym wyborem do odtwarzania filmów. Jeżeli nie masz karty GeForce2 (lub nowszej), nie spodziewaj się bezproblemowego działania. Wbudowany w XFree86 sterownik nVidia nie obsługuje sprzętowej akceleracji YUV na żadnej z kart. Musisz pobrać zamknięte sterowniki nVidia z nVidia.com. Przeczytaj rozdział sterowniki nVidia Xv, a dowiesz się więcej. Sprawdź również rozdział nVidia TV-out, jeśli chcesz używać TV.

- 3DLabs GLINT R3 and Permedia3: dostępny jest sterownik VIDIX (pm3_vid). Dla uzyskanie bardziej szczegółowych informacji przeczytaj rozdział VIDIX.

- Inne karty: żadna z powyższych?

  - Sprawdź, czy sterownik XFree86 (i Twoja karta) obsługują sprzętową akcelerację. Przeczytaj rozdział Xv, a znajdziesz więcej informacji.

  - Jeżeli nie, oznacza to, że możliwości Twojej karty nie są obsługiwane przez Twój system operacyjny :( Jeżeli sprzętowe skalowanie działa pod Windowsem, nie oznacza to, że będzie działało pod Linuksem lub gdzie indziej, zależy to od sterowników. Większość producentów, ani nie tworzy sterowników dla Linuksa, ani nie publikuje specyfikacji swoich układów graficznych - więc masz pecha, jeśli używasz ich kart. Przeczytaj .

### Karty nieobsługujące YUV

Odtwarzanie pełnoekranowe może być uzyskane przez programowe skalowanie (użyj opcji `-zoom` lub `-vf`, ale ostrzegam Cię: to jest wolne) lub przełączenie na niższą rozdzielczość, na przykład 352x288. Jeżeli nie masz akceleracji YUV, ta druga metoda jest zalecana. Przełączanie między trybami video umożliwia opcja `-vm` i działa ona z następującymi sterownikami:

- używasz XFree86: sprawdź szczegóły w rozdziale sterownik DGA i sterownik X11. DGA jest zalecany! Spróbuj również DGA przez SDL, czasami jest to lepsze rozwiązanie.

- nie używasz XFree86: spróbuj użyć któregoś z niżej wymienionych sterowników w podanej kolejności: vesa, fbdev, svgalib, aalib.

### Karty Cirrus-Logic

- GD 7548: zintegrowana z płytą główną i przetestowana na serii notebooków Compaq Armada 41xx.

  - XFree86 3: działa w trybach 8/16bpp. Jednak dla 800x600@16bpp sterownik jest bardzo wolny i nie działa prawidłowo. Zalecane: 640x480@16bpp

  - XFree86 4: Xserver przestaje odpowiadać krótko po starcie, chyba że akceleracja jest wyłączona, jednak wszystko działa wolniej niż na XFree86 3. Brak obsługi XVideo.

  - FBdev: framebuffer może być włączony poprzez sterownik clgenfb znajdujący się w jądrze, jednak u mnie działał tylko w 8bpp, a więc jest bezużyteczny. Źródło clgenfb musi być rozszerzone o ID 7548 przed kompilacją.

  - VESA: karta spełnia tylko standard VBE 1.2, więc nie możesz użyć wyjścia VESA. Nie możesz zastosować obejścia przez UniVBE.

  - SVGAlib: wykrywa starszy układ Cirrusa. Działa, chociaż jest wolny z `-bpp 8`.

## Karty dźwiękowe

- Soundblaster Live!: z tą kartą możesz używać 4 lub 6 (5.1) kanałowego dekodowania AC3, zamiast 2. Przeczytaj rozdział Programowe dekodowanie AC3. Dla sprzętowej obróbki AC3 musisz użyć ALSA 0.9 z emulacją OSS!

- C-Media z wyjściem S/PDIF: Możliwa jest sprzętowa obróbka AC3 z tymi kartami, przeczytaj rozdział Sprzętowe dekodowanie AC3.

- Możliwości innych kart nie są obsługiwane przez MPlayera. Zalecamy, abyś przeczytał sekcję karty dźwiękowe!

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

- 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 linii 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 `configure.log`, zawierają 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 `configure.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 (nie jest w pełni w GTK, ale jego panele są). Skórki przechowywane są w formacie PNG, tak więc GTK, libpng (i ich pakiety rozwojowe, zazwyczaj nazwane gtk-dev i libpng-dev) muszą być zainstalowane. Możesz go zbudować podając opcję `--enable-gui` skryptowi `./configure`. Aby skorzystać z trybu GUI, musisz wykonać komendę `gmplayer`.

Obecnie nie możesz skorzystać z opcji `-gui` w wierszu poleceń z przyczyn technicznych.

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/Skin`) lub do `$HOME/.mplayer/Skin`. 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 `*/Skin/nowaskórka`.

# Napisy i OSD

MPlayer może wyświetlać napisy podczas odtwarzania filmu. Obecnie następujące formaty są obsługiwane:

- VOBsub

- OGM

- CC (zamknięty format napisów)

- MicroDVD

- SubRip

- SubViewer

- Sami

- VPlayer

- RT

- SSA

- PJS (Phoenix Japanimation Society)

- MPsub

- AQTitle

- JACOsub

MPlayer może zrzucić wyżej wymienione formaty napisów (poza pierwszymi trzema) do następujących formatów, jeśli podasz odpowiednią opcję:

- MPsub: `-dumpmpsub`

- SubRip: `-dumpsrtsub`

- MicroDVD: `-dumpmicrodvdsub`

- JACOsub: `-dumpjacosub`

- Sami: `-dumpsami`

MEncoder może zrzucić napisy DVD do formatu VOBsub.

Opcje dla wiersza poleceń różnią się nieco dla poszczególnych formatów:

## Format VOBsub

Napisy VOBsub składają się z dużego (kilkumegabajtowego) pliku `.SUB` i opcjonalnych plików `.IDX` i/lub `.IFO`. Jeżeli masz takie pliki, jak `przykład.sub`, `przykład.ifo` (opcjonalne), `przykład.idx` - musisz przekazać MPlayerowi opcje `-vobsub przykład [-vobsubid id]` (pełna ścieżka jest opcjonalna). Parametr `-vobsubid` jest, jak `-sid` dla DVD - przy jego pomocy możesz wybierać pomiędzy ścieżkami napisów (różne języki). Jeżeli opcja `-vobsubid` jest pominięta, MPlayer spróbuje użyć języka podanego przez parametr `-slang` i powróci do langidx zawartego w pliku`.IDX`, żeby ustawić język napisów. Jeżeli to zakończy się niepowodzeniem, napisy nie będą wyświetlane.

## Inne formaty napisów

Inne formaty składają się z pojedynczego pliku tekstowego zawierającego przedział czasowy, rozmieszczenie i sam tekst. Sposób użycia: Jeżeli masz taki plik, jak `przykład.txt`, musisz przekazać opcję `-sub przykład.txt` (pełna ścieżka jest opcjonalna).

## Dopasowywanie czasu wyświetlania i położenia napisów:

`-subdelay sek`

  Opóźnia wyświetlanie napisów o `sek` sekund. Może być liczbą ujemną. Wartość jest dodawana do licznika czasu filmu.

`-subfps ILOŚĆ`

  Określa ilość klatek na sekundę pliku z napisami (liczba rzeczywista).

`-subpos 0-100`

  Określa położenie napisów.

Jeżeli podczas używania napisów w formacie MicroDVD zauważysz rosnące opóźnienie między nimi a filmem, to prawdopodobnie ilość klatek na sekundę filmu różni się od wartości, do której zostały przystosowane napisy. Zauważ, że format ten korzysta z bezwzględnych numerów ramek do wyświetlania napisów w odpowiednim momencie, ale nie zawiera informacji o wartości fps w sobie, dlatego powinieneś skorzystać z opcji `-subfps`. Jeżeli chciałbyś rozwiązać ten problem ostatecznie, musisz ręcznie zmienić wartość framerate pliku z napisami. MPlayer może zrobić to za ciebie:

    mplayer atrapa.avi -fps fps_napisów -subfps fps_filmu [-subdelay sek] [-sub zbiór_z_napisami] -dumpmicrodvdsub

O napisach DVD przeczytasz w rozdziale DVD.

## MPsub - Własny format napisów MPlayera

MPlayer przedstawia nowy format napisów nazwany MPsub. Zaprojektowany on został przez Gabucino. Przede wszystkim jego główną cechą jest bycie dynamicznie opartym o czas (chociaż może być również oparty o ramki). Przykład (z DOCS/tech/mpsub.sub - na potrzeby tego dokumentu częściowo przetłumaczony):

    FORMAT=TIME
    # pierwsza liczba : czekaj tyle sekund po zniknięciu poprzednich napisów
    # druga liczba : wyświetlaj napisy przez tyle sekund

    15 3
    Dawno, dawno temu...

    0 3
    w odległej galaktyce...

    0 3
    planeta Naboo była atakowana.

Widzisz więc, że głównym celem było umożliwienie łatwej edycji/synchronizacji/łączenia/obcinania napisów. Więc jeśli - powiedzmy - pobierzesz napisy SSA, które są źle rozmieszczone w czasie/opóźnione w stosunku do Twojej wersji filmu, wykonujesz wtedy

    mplayer film.avi -sub źródło.ssa -dumpmpsub

Zostanie utworzony plik `dump.mpsub` w obecnie używanym katalogu, który będzie zawierał źródłowe napisy, ale w formacie MPsub. Będziesz mógł wtedy dowolnie dodawać/odejmować sekundy do/z napisów.

Napisy wyświetlane są w technice 'OSD', On Screen Display (Wyświetlanie Na Ekranie). OSD używany jest do wyświetlania obecnego czasu odtwarzania, paska głośności, paska przeszukiwania filmu, itp.

## Instalacja OSD i napisów

Będziesz potrzebował paczki zwierającej czcionkę dla MPlayera, żeby móc skorzystać z OSD/NAPISÓW. Jest wiele sposobów, aby ją uzyskać:

- Skorzystaj z generatora czcionki w znajdującego się w katalogu `TOOLS/subfont-c`. Jest to kompletne narzędzie, które pomoże Ci przekonwertować czcionkę TTF/Type1/itp. do paczki z czcionką dla MPlayera (więcej szczegółów znajdziesz w `TOOLS/subfont-c/README`).

- Skorzystaj z wtyczki generator czcionki dla GIMPa, którą znajdziesz w katalogu `TOOLS/subfont-GIMP` (notka: musisz mieć również wtyczkę HSI RAW, sprawdź ten adres: ).

- używanie czcionki TrueType (TTF) przy pomocy biblioteki freetype. Konieczna do tego jest wersja 2.0.9 lub wyższa! Tutaj możesz skorzystać z dwóch metod:

  - użyj opcji `-font /ścieżka/do/przykładowej_czcionki.ttf` , aby określić plik z czcionką TrueType przy każdym uruchomieniu

  - stwórz symboliczne dowiązanie:

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

  Jeżeli MPlayer został skompilowany z obsługą fontconfig, powyższe metody nie będą działały, ponieważ opcja `-font` będzie oczekiwała nazwy czcionki, a domyślną jest sans-serif. Aby otrzymać listę czcionek znanych fontconfig, użyj komendy `fc-list`. Przykład: `-font 'Bitstream Vera Sans'`

- Pobierz gotowe do użycia pakiety z czcionkami ze strony MPlayera. Informacja: dostępne obecnie czcionki ograniczone są do obsługi kodowania ISO 8859-1/2, ale są też inne, przygotowane przez użytkowników, (z obsługą koreańskiego, rosyjskiego, ISO 8859-8 itp) w katalogu contrib/font serwera FTP.

  Czcionki powinny mieć odpowiedni plik `font.desc`, który mapuje pozycję czcionek unicode do aktualnie używanej przez napisy strony kodowej Innym wyjściem jest posiadanie napisów zakodowanych w UTF-8 i użycie opcji `-utf8` albo po prostu zmienienie ich nazwy na `<nazwa_filmu>.utf` i wgranie ich do tego samego katalogu co plik z filmem. Konwersja z różnych stron kodowych do UTF-8 może być realizowana poprzez programy `konwert` lub `iconv`.

  ### Kilka adresów URL

  URL | Komentarz
  --- | ---
  | czcionki ISO
  | różne czcionki użytkowników
  | czcionki koreańskie i wtyczka RAW

Jeżeli wybierzesz czcionki inne niż TTF, rozpakuj (UNZIP) plik, który ściągnąłeś do katalogu `~/.mplayer` lub `$PREFIX/share/mplayer`. Następnie zmień nazwę lub stwórz symboliczne dowiązanie tego katalogu do `font`, na przykład:

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

Teraz na pewno zobaczysz licznik w lewym górnym rogu filmu (możesz go wyłączyć używając klawisza o).

(napisy są zawsze włączone, aby dowiedzieć się, je wyłączyć, przeczytaj stronę man)

OSD ma 4 stany (przełączane przez klawisz o):

1. pasek głośności + pasek przeszukiwania (domyślnie)

2. pasek głośności + pasek przeszukiwania + licznik czasu + pozycja przeszukiwania w pliku (w procentach)

3. pasek głośności + pasek przeszukiwania + licznik czasu + całkowity czas trwania

4. tylko napisy

Możesz zmienić domyślne zachowanie, ustawiając zmienną `osdlevel` w pliku konfiguracyjnym (config) lub korzystając z opcji `-osdlevel` w wierszu poleceń.

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

# 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 z RTC(Real Time Clock) do tego zadania, ponieważ jest on dokładny co do 1ms. Jest automagicznie uruchomiany, jeżeli jest to możliwe, ale wymaga uprawnień roota, ustawionego bitu uid roota na pliku wykonywalnym MPlayera lub 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 następującej komendy, aby to zrobić:

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

  Jeżeli nie używasz tak nowego jądra, możesz zmienić jedną linię w `drivers/char/rtc.c` i przekompilować je. Znajdź fragment, który wygląda tak:

             * We don't really want Joe User enabling more
             * than 64Hz of interrupts on a multi-user machine.
             */
            if ((rtc_freq > 64) && (!capable(CAP_SYS_RESOURCE)))

  i zmień 64 na 1024. Powinieneś jednak naprawdę wiedzieć co robisz. Możesz zobaczyć wydajność nowego synchronizatora w linii statusu. Zarządzanie energią w niektórych BIOSach 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ć. Zawsze możesz wyłączyć RTC opcją `-nortc`. 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 z trzeciej metody w wyżej wymienionych wypadkach.

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

NIGDY nie instaluj pliku wykonywalnego MPlayera z bitem uid roota na maszynie z wieloma użytkownikami! Istnieje możliwość przejęcia praw superużytkownika.