1.4. Napisy i OSD
Poprzedni | Rozdział 1. Wprowadzenie | Następny

## 1.4. Napisy i OSD

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

- VOBsub

- OGM

- CC (closed caption)

- 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 klatek do wyświetlania napisów w odpowiednim momencie, ale nie zawiera w sobie informacji o wartości fps, dlatego powinieneś skorzystać z opcji `-subfps`. Jeżeli chciałbyś trwale rozwiązać ten problem, musisz ręcznie zmienić wartość framerate pliku z napisami. MPlayer może zrobić to za ciebie:

    mplayer -dumpmicrodvdsub -fps fps_napisów -subfps fps_filmu -sub zbiór_z_napisami atrapa.avi

O napisach DVD przeczytasz w rozdziale DVD.

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

### 1.4.2. Instalacja OSD i napisów

Będziesz potrzebował paczki zawierają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: http://realtime.ssu.ac.kr/~lethean/mplayer/index.php?pagename=MplayerKoreanFonts).

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

  Tabela 1.1. Kilka adresów URL

  URL | Komentarz
  --- | ---
  ftp://ftp.mplayerhq.hu/MPlayer/releases/fonts/ | czcionki ISO
  ftp://ftp.mplayerhq.hu/MPlayer/contrib/fonts/ | różne czcionki użytkowników
  http://realtime.ssu.ac.kr/~lethean/mplayer/index.php?pagename=MplayerKoreanFonts | 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ń.

### 1.4.3. Menu OSD

MPlayer ma całkowicie definiowalny Interfejs Menu OSD.

### Notatka

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ś

Poprzedni | Początek rozdziału | Następny
1.3. A co z GUI? | Spis treści | 1.5. RTC