# Sposób użycia

## Wiersz poleceń

MPlayer używa skomplikowanego drzewa odtwarzania. Składa się ono z opcji globalnych podanych na początku, na przykład:

    mplayer -vfm 5

i opcji podanych po nazwach plików, które stosują się jedynie do podanego pliku/URLa/czegokolwiek, na przykład:

    mplayer -vfm 5 film1.avi film2.avi -vfm 4

Możesz pogrupować nazwy plików/URLe za pomocą `{` oraz `}`. Przydaje się to przy opcji `-loop`:

    mplayer { 1.avi -loop 2 2.avi } -loop 3

Powyższe polecenie odtworzy pliki w kolejności: 1, 1, 2, 1, 1, 2, 1, 1, 2.

Odtwarzanie pliku:

    mplayer [opcje] [ścieżka/]nazwa_pliku

Kolejny sposób na odtworzenie pliku:

    mplayer [opcje] file:///zakodowana-ścieżka-uri

Odtwarzanie większej ilości plików:

    mplayer [opcje domyślne] [ścieżka/]plik1 [opcje dla pliku1] plik2 [opcje dla pliku2] ...

Odtwarzanie VCD:

    mplayer [opcje] vcd://numer_ścieżki [-cdrom-device /dev/cdrom]

Odtwarzanie DVD:

    mplayer [opcje] dvd://numer_tytułu [-dvd-device /dev/dvd]

Odtwarzanie z WWW:

    mplayer [opcje] http://strona.com/plik.asf

(można użyć również playlist)

Odtwarzanie z RTSP:

    mplayer [opcje] rtsp://serwer.przyklad.com/nazwa_strumienia

Przykłady:

    mplayer -vo x11 /mnt/Films/Contact/contact2.mpg
    mplayer vcd://2 -cdrom-device /dev/hdc
    mplayer -afm 3 /mnt/DVDtrailers/alien4.vob
    mplayer dvd://1 -dvd-device /dev/hdc
    mplayer -abs 65536 -delay -0.4 -nobps ~/movies/test.avi

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

## Sterowanie

MPlayer posiada w pełni konfigurowalną, opartą na komendach warstwę sterowania, która pozwala na sterowanie MPlayerem za pomocą klawiatury, myszki, joysticka lub zdalnego sterowania (za pomocą LIRC). Zajrzyj na stronę man w celu przejrzenia pełnej listy skrótów klawiszowych.

### Konfiguracja sterowania

MPlayer pozwala Ci przypisać dowolny klawisz/przycisk do dowolnego polecenia za pomocą prostego pliku konfiguracyjnego. Składnia tego pliku to nazwa klawisza, po której znajduje się komenda. Domyślny plik konfiguracyjny znajduje się w `$HOME/.mplayer/input.conf`, ale można podać także inny za pomocą opcji `-input plik` (ścieżki względne są względem `$HOME/.mplayer`).

Możesz uzyskać pełną listę obsługiwanych klawiszy uruchamiając `mplayer -input keylist` i pełną listę dostępnych komend za pomocą `mplayer -input cmdlist`.

Przykładowy plik konfiguracji sterowania

    ##
    ## Plik konfiguracji sterowania MPlayera
    ##

    RIGHT seek +10
    LEFT seek -10
    - audio_delay 0.100
    + audio_delay -0.100
    q quit
    > pt_step 1
    < pt_step -1
    ENTER pt_step 1 1

### Sterowanie poprzez LIRC

Linux Infrared Remote Control - użyj łatwego do własnoręcznego zbudowania odbiornika podczerwieni i (prawie) dowolnego pilota zdalnego sterowania i steruj nim swoim Linuksem! Więcej informacji na stronie domowej LIRC.

Jeśli zainstalowałeś pakiet LIRC, `configure` automatycznie go wykryje. Jeśli wszystko pójdzie dobrze, MPlayer wypisze przy starcie "Setting up LIRC support...". Jeśli wystąpi błąd, powiadomi Cię o tym. Jeśli nic nie powie Ci na temat LIRC, to znaczy, że jego obsługa nie została wkompilowana. Proste :-)

Nazwa aplikacji dla MPlayer to - niespodzianka - `mplayer`. Możesz używać dowolnych komend MPlayera, a nawet podać więcej niż jedną komendę na raz oddzielając je za pomocą `\n`. Nie zapomnij o włączeniu flagi repeat w `.lircrc` jeśli ma to sens (skoki, głośność itp). To jest fragment przykładowego `.lircrc`:

    begin
         button = VOLUME_PLUS
         prog = mplayer
         config = volume 1
         repeat = 1
    end

    begin
        button = VOLUME_MINUS
        prog = mplayer
        config = volume -1
        repeat = 1
    end

    begin
        button = CD_PLAY
        prog = mplayer
        config = pause
    end

    begin
        button = CD_STOP
        prog = mplayer
        config = seek 0 1\npause
    end

Jeśli nie lubisz standardowej lokalizacji pliku lirc-config (`~/.lircrc`), użyj opcji `-lircconf nazwa_pliku` by podać inny plik.

### Tryb sługi

Tryb sługi pozwala Ci na utworzenie prostej nakładki na MPlayera. Po uruchomieniu z opcją `-slave` MPlayer będzie czytał ze standardowego wejścia komendy oddzielone znakami nowego wiersza (\n). Komendy zostały udokumentowane w pliku slave.txt

## Strumieniowanie z sieci i potoków

MPlayer potrafi odtwarzać pliki z sieci, używając protokołów HTTP, FTP, MMS lub RTSP/RTP.

Odtwarzanie następuje przez proste podanie URLa w wierszu poleceń. MPlayer zwraca również uwagę na zmienną środowiskową `http_proxy` i używa proxy jeśli jest to możliwe. Korzystanie z proxy może być również wymuszone za pomocą:

    mplayer http_proxy://proxy.micorsops.com:3128/http://micorsops.com:80/strumien.asf

MPlayer potrafi również czytać ze standardowego wejścia (nie z nazwanych potoków). Może to być wykorzystane np. do odtwarzania poprzez FTP:

    i
    wget ftp://micorsops.com/cokolwiek.avi -O - | mplayer -

Zalecane jest również włączenie `-cache` przy odtwarzaniu z sieci:

    wget ftp://micorsops.com/cokolwiek.avi -O - | mplayer -cache 8192 -

### Zapisywanie strumieniowanej zawartości

Jak już uda Ci się zmusić MPlayera do odtwarzania Twojego ulubionego strumienia internetowego, możesz użyć opcji `-dumpstream` aby zapisać strumień do pliku. Na przykład:

    mplayer http://217.71.208.37:8006 -dumpstream -dumpfile strumien.asf

zapisze zawartość strumieniowaną z http://217.71.208.37:8006 do pliku stream.asf. Działa to ze wszystkimi protokołami obsługiwanymi przez MPlayera, jak MMS, RSTP itd.

## Strumienie zdalne

Strumienie zdalne pozwalają na dostęp do większości strumieni obsługiwanych przez MPlayera ze zdalnego hosta. Głównym celem tej funkcji jest umożliwienie bezpośredniego korzystania z napędu CD lub DVD innego komputera w sieci (pod warunkiem posiadania odpowiedniej przepustowości). Niestety niektóre typy strumieni (aktualnie TV oraz MF) nie są dostępne zdalnie, gdyż są zaimplementowane na poziomie demultipleksera. Jest to przykre w przypadku MF, gdyż TV i tak by wymagało szalonej przepustowości.

### Kompilacja serwera

Po kompilacji MPlayera wejdź do katalogu `TOOLS/netstream` i wpisz make by zbudować program serwera. Możesz wtedy skopiować program nestream do odpowiedniego miejsca w Twoim systemie (przeważnie `/usr/local/bin` pod Linuksem).

### Używanie strumieni zdalnych

Najpierw musisz uruchomić serwer na komputerze, do którego masz zamiar mieć dostęp zdalny. Aktualnie serwer jest bardzo podstawowy i nie ma żadnych argumentów wiersza poleceń, więc po prostu wpisz `netstream`. Teraz możesz np. odtworzyć drugą ścieżkę VCD na serwerze za pomocą:

    mplayer -cache 5000 mpst://nazwa_serwera/vcd://2

Masz również dostęp do plików na tym serwerze:

    mplayer -cache 5000 mpst://nazwa_serwera//usr/local/movies/lol.avi

Zauważ, że ścieżki, które nie zaczynają się na "/" będą względne do katalogu, w którym uruchomiono serwer. Opcja `-cache` nie jest wymagana, lecz bardzo zalecana.

Miej na uwadze to, że aktualnie serwer nie ma żadnych zabezpieczeń. Nie narzekaj więc na liczne nadużycia, które są przez to możliwe. Zamiast tego wyślij jakąś (dobrą) łatkę, by stał się lepszy lub napisz swój własny serwer.

## Napędy CD/DVD

Nowoczesne napędy CD-ROM osiągają bardzo duże prędkości. Niektóre z nich są dodatkowo zdolne do pracy przy zredukowanych prędkościach. Oto kilka powodów, dla których powinniśmy zastanowić się czy nie należy zredukować prędkości naszego napędu:

- Istnieją doniesienia o błędach odczytu przy dużych prędkościach, szczególnie podczas używania uszkodzonych bądź wadliwie wytłoczonych/nagranych płyt CD. Redukcja prędkości odczytu może uchronić nas przed utratą danych w takich przypadkach.

- Wiele napędów CD jest dokuczliwie głośnych. Redukcja prędkości może zmniejszyć natężenie hałasu.

### Linux

Możesz zredukować prędkość napędu CD z interfejsem IDE korzystając z `hdparm`, `setcd` lub `cdctl`. Działają one w następujący sposób:

    hdparm -E [prędkość] [urządzenie cdrom]

    setcd -x [prędkość] [urządzenie cdrom]

    cdctl -bS [speed]

Jeśli używasz emulacji SCSI, możesz musieć zastosować ustawienia do prawdziwego urządzenia IDE a nie emulowanego SCSI.

Jeżeli masz uprawnienia roota, to pomóc może także następująca komenda:

    echo file_readahead:2000000 > /proc/ide/[urządzenie cdrom]/settings

Ustawiamy w ten sposób wielkość bufora odczytu na 2MB, co pomaga przy odczycie porysowanych płyt. Jeżeli ustawimy zbyt dużą wielkość tego bufora, napęd będzie stale rozkręcał się i zwalniał, co spowoduje bardzo znaczny spadek wydajności. Zaleca się również dostrojenie napędu CD-ROM przy użyciu `hdparm`:

    hdparm -d1 -a8 -u1 [urządzenie cdrom]

Włączamy w ten sposób dostęp DMA do dysku, czytanie z wyprzedzeniem i odmaskowanie IRQ (IRQ unmasking) (więcej przeczytasz na stronach man do `hdparm`)

Proszę sprawdzić "`/proc/ide/[urządzenie cdrom]/settings`" by dostroić swój napędu CD-ROM.

Dla napędów SCSI nie istnieje jednolity sposób ustawiawiania tych parametrów (jeżeli znasz jakiś to napisz nam o nim). Istnieje narzędzie które działa z napędami SCSI Plextor.

### FreeBSD

Prędkość:

    cdcontrol [-f urządzenie] speed [prędkość]

DMA:

    sysctl hw.ata.atapi_dma=1

## Odtwarzanie DVD

Aby poznać pełną listę dostępnych opcji, proszę przeczytać odpowiednie strony man. Składnia do odtwarzania standardowego DVD jest następująca:

    mplayer dvd://<ścieżka> [-dvd-device <urządzenie>]

Przykład:

    mplayer dvd://1 -dvd-device /dev/hdc

Jeśli skompilowałeś MPlayera z obsługą dvdnav, składnia jest taka sama, tylko musisz użyć dvdnav:// zamiast dvd://.

Domyślnym urządzeniem (device) DVD jest `/dev/dvd`. Jeżeli Twoje ustawienia są inne, stwórz odpowiedni symlink lub ustaw odpowiednie urządzenie (device) w linii polecenia korzystając z opcji `-dvd-device`.

MPlayer używa libdvdread oraz libdvdcss do odtwarzania i dekodowania DVD. Te dwie biblioteki są zawarte w głównym drzewie źródłowym MPlayera, nie trzeba instalować ich osobno. Możesz też użyć systemowych wersji tych bibliotek, ale nie jest to zalecane, ponieważ może spowodować błędy, niekompatybilności bibliotek oraz zmniejszenie prędkości.

Jeśli występują problemy z dekodowaniem DVD, spróbuj wyłączyć supermount lub inne tego typu usługi. Niektóre napędy RPC-2 mogą również wymagać ustawienia kodu regionu DVD.

Struktura dysku DVD

Dyski DVD mają po 2048 bajtów na sektor z ECC/CRC. Zwykle posiadają system plików UDF na pojedynczej ścieżce zawierającej różnorakie pliki (małe pliki .IFO i .BUK oraz duże (1GB) pliki .VOB). Są one rzeczywistymi plikami i mogą być kopiowane/odtwarzane z podmontowanego systemu plików niezakodowanego DVD.

Pliki .IFO zawierają informacje nawigacyjne filmu (mapa rozdziałów/tytułów/kątów kamery, tablica języków, itp) i są konieczne do odczytu i interpretacji zawartości pliku .VOB (filmu). Pliki .BUK są kopiami zapasowymi plików .IFO. Używają sektorów wszędzie, więc aby zaimplementować nawigację na DVD lub rozszyfrować zawartość, należy używać adresowania sektorów dysku w trybie raw.

Z tego powodu obsługa DVD wymaga dostępu do urządzenia w trybie raw bazującym na sektorach. Niestety wymagane jest (pod Linuksem) posiadanie uprawnień roota aby móc korzystać z sektorowego adresowania pliku. Dlatego też nie w ogóle używamy sterownika systemu plików pochodzącego z jądra, ale reimplementujemy to w przestrzeni użytkownika. Zajmuje się tym biblioteka libdvdread 0.9.x. Sterownik systemu plików UDF zawarty w jądrze nie jest wymagany ponieważ wspomniane biblioteki zawierają własny, wbudowany sterownik systemu plików UDF. DVD nie musi być podmontowany, bowiem używany jest jedynie dostęp w trybie raw.

Czasami `/dev/dvd` nie może być czytany przez użytkowników, zatem autorzy libdvdread zaimplementowali warstwę emulacji, która tłumaczy adresowanie sektorowe na nazwy plików i offsety, aby emulować dostęp w trybie raw na podmontowanym systemie plików albo nawet na twardym dysku.

libdvdread równie dobrze akceptuje miejsce podmontowania (mountpoint) jak i nazwę urządzenia przy dostępie w trybie raw i sprawdza `/proc/mounts` w celu odnalezienia odpowiedniej nazwy urządzenia (device). Zostało to napisane z myślą o systemie Solaris, gdzie nazwy urządzeń są przydzielane automatycznie.

Deszyfrowanie DVD

Do deszyfrowania DVD jest używana biblioteka libdvdcss. Metoda jej działania może być określona poprzez zmienna środowiskową `DVDCSS_METHOD`, co jest dokładniej opisane na stronie man.

Napędy DVD RPC-1 zabezpieczają ustawienia regionu jedynie poprzez oprogramowanie. Napędy RPC-2 mają sprzętowe zabezpieczenie, które pozwala na co najwyżej 5 zmian. Jeżeli posiadamy napęd DVD RPC-2 wymagana/zalecana jest aktualizacja firmware'u do RPC-1. Nowe wersje firmware'ów można znaleźć w internecie. Poszukiwania radzimy rozpocząć od forum firmware'ów. Jeżeli nie ma tam nowej wersji firmware'u dla naszego urządzenia, użyj regionset tool (narzędzia do zmiany regionów) aby ustawić kod regionu na swoim napędzie DVD (pod Linuksem). Ostrzeżenie: Możesz ustawić region tylko 5 razy.

## Odtwarzanie VCD

Pełna lista dostępnych opcji znajduje się na stronie man. Składnia dla standardowego Video CD (VCD) jest następująca:

    mplayer vcd://<ścieżka> [-cdrom-device <urządzenie>]

Przykład:

    mplayer vcd://2 -cdrom-device /dev/hdc

Domyślnym urządzeniem VCD jest `/dev/cdrom`. Jeśli Twoje ustawienia są inne, utwórz dowiązanie symboliczne lub podaj prawidłowe urządzenie w linii poleceń za pomocą opcji `-cdrom-device`

Przynajmniej napędy CD-ROM SCSI firmy Plextor i niektóre modele Toshiby mają beznadziejną wydajność przy odczycie VCD. Jest to spowodowane niekompletną implementacją ioctl'a CDROMREADRAW dla tych urządzeń. Jeśli masz jakieś pojęcie o programowaniu SCSI, pomóż nam zaimplementować ogólną obsługę SCSI dla VCD.

W międzyczasie możesz wyciągać dane z VCD za pomocą readvcd i odtwarzać plik wynikowy za pomocą MPlayera

Struktura VCD

Video CD (VCD) składa się z sektorów CD-ROM XA, tzn. ścieżek CD-ROM mode 2 form 1 i form 2:

- Pierwsza ścieżka jest w formacie mode 2 form 2, który oznacza użycie korekcji błędów L2. Ścieżka ta zawiera system plików ISO-9660 o gęstości 2048 bajtów/sektor. Ten system plików z kolei zawiera metainformacje VCD, a także nieruchome klatki, często używane w menu. Segmenty MPEG dla menu mogą także być składowane w tejże pierwszej ścieżce, ale MPEGi muszą być podzielone na kawałki po 150 sektorów. System plików ISO-9660 może zawierać inne pliki bądź programy, niekonieczne dla eksploatacji VCD.

- Druga i pozostałe ścieżki są zwykle ścieżkami video MPEG typu raw o gęstości 2324 bajtów/sektor, zawierającymi jeden pakiet danych MGEG PS na sektor. Ścieżki te są w formacje mode 2 form 1, więc przechowują one więcej danych na sektor, w zamian za słabszą korekcję błędów. Możliwe są też ścieżki CD-DA na VCD poza pierwszą ścieżką. Niektóre systemy operacyjne używają pewnych trików aby ścieżki nie zawierające systemu plików ISO-9660 były widoczne w systemie plików. W pozostałych systemach, jak na przykład w systemie GNU/Linux, nie ma takiej możliwości (jeszcze). W takim przypadku dane MPEG nie mogą być montowane. Jako że większość filmów znajduje się na tego typu ścieżce, powinieneś spróbować na początek opcji `vcd://2`.

- Istnieją również płyty VCD bez pierwszej ścieżki (pojedyncza ścieżka i brak systemu plików w ogóle). Je również da się odtwarzać, ale nie da się ich montować.

- Definicja standardu Video CD, nazywana "Białą Księgą" Phillipsa, generalnie nie jest dostępna online, musi być zakupiona u Phillipsa. Bardziej szczegółowe informacje na temat Video CD można znaleźć na stronie dokumentacji vcdimagera.

O plikach .DAT

Plik o rozmiarze ok. 600 MB widoczny na pierwszej ścieżce zamontowanego VCD nie jest prawdziwym plikiem ! Jest on tzw. bramką ISO, utworzoną by Windows mógł obsługiwać takie ścieżki (Windows w ogóle nie zezwala aplikacjom na dostęp do urządzeń w trybie raw). Pod Linuksem nie możesz kopiować ani odtwarzać tych plików (zawierają "śmieci"). Pod Windows jest to możliwe, gdyż jego sterownik iso9660 symuluje odczyt ścieżek w trybie raw za pomocą tego pliku. By móc odtwarzać pliki .DAT, musisz mieć sterownik do jądra, który dostarczany jest z linuksową wersją PowerDVD. Posiada on zmodyfikowany sterownik systemu plików iso9660 (`vcdfs/isofs-2.4.X.o`), który jest w stanie symulować odczyt ścieżek w trybie raw za pomocą pliku .DAT. Jeśli podmontujesz płytę używając ich sterownika, możesz kopiować, a nawet odtwarzać pliki .DAT za pomocą MPlayera. Ale nie będzie to działało za pomocą standardowego sterownika iso9660 dostarczonego z jądrem Linuksa! Zamiast tego użyj opcji `vcd://`. Alternatywą dla kopiowania VCD jest nowy sterownik: cdfs (nie jest częścią oficjalnego jądra), który wyświetla sesje CD jako pliki obrazów, oraz cdrdao, program do zgrywania płyt CD bit po bicie.

## Decyzyjne Listy Edycji (Edit Decision Lists - EDL)

Decyzyjna lista edycji (EDL) pozwala na automatyczne omijanie, bądź wyciszanie fragmentów filmów podczas ich odtwarzania, na podstawie pliku konfiguracji EDL dla danego filmu.

Funkcja ta jest użyteczna dla osób, które zechcą obejrzeć film w "przyjaznym dla rodziny" trybie. Możesz usunąć z filmu przemoc, przekleństwa, Jar-Jar Binksa, zgodnie z własnymi preferencjami. Ponadto istnieją także inne zastosowania, jak automatyczne pomijanie reklam w oglądanych filmach.

Format pliku EDL jest raczej "goły". Używana jest struktura z pojedynczym poleceniem w wierszu, w którym określone jest co należy zrobić (skip/mute), oraz kiedy (używając opóźnienia w sekundach).

### Używanie pliku EDL

Użyj podczas uruchamiania MPlayera flagi `-edl <nazwa pliku>` z nazwą pliku EDL, który ma być zastosowany do filmu.

### Tworzenie pliku EDL

Aktualny format pliku EDL jest następujący:

    [sekunda początkowa] [sekunda końcowa] [akcja]

gdzie liczby odpowiadające sekundom nie muszą być całkowite, zaś akcja może przyjmować wartość `0` dla pominięcia bądź `1` dla wyciszenia. Na przykład:

    5.3   7.1    0
    15    16.7   1
    420   422    0

Oznacza to pominięcie filmu między 5,3 sekundą, a 7,1 sekundą filmu, następnie wyciszenie od 15-tej sekundy do 16,7 sekundy i wreszcie pominięcie filmu pomiędzy 420 a 422 sekundą Akcje te są wykonywane, gdy licznik czasu filmu osiągnie zadeklarowaną wartość.

Aby stworzyć plik EDL, będący punktem wyjścia do dalszej edycji, użyj flagi `-edlout <nazwa pliku>`. Następnie, podczas odtwarzania filmu, naciśnij i, aby oznaczyć początek i koniec bloku do pominięcia. Odpowiedni wpis zostanie automatycznie utworzony w pliku. Wtedy możesz wrócić do edycji i "dostrajania" wygenerowanego pliku EDL, w którym możesz także zmienić domyślne pomijanie bloku na wyciszanie.

## Zaawansowane audio

### Dźwięk przestrzenny/wielokanałowy

#### DVDs

Większość płyt DVD, a także wiele innych plików, zawiera dźwięk przestrzenny. MPlayer obsługuje dźwięk przestrzenny, ale opcja ta nie jest domyślnie włączona, ponieważ sprzęt przeznaczony dla zwykłego stereo jest znacznie bedziej popularny. Aby odtworzyć plik zawierający więcej niż dwa kanały audio, użyj opcji `-channels`. Na przykład, aby odtworzyć DVD z audio 5.1:

    mplayer dvd://1 -channels 6

Zauważmy, że mimo nazwy "5.1", używanych jest 6 kanałów. Jeżeli posiadasz sprzęt pozwalający na odtwarzanie dźwięku przestrzennego możesz bezpiecznie wpisać `channels` do swojego pliku konfiguracyjnego MPlayera (`~/.mplayer/config`). Przykładowo, aby domyślnie włączyć efekt kwadrofonii, należy dodać wiersz:

    channels=4

Od tego momentu, MPlayer będzie odtwarzał cztery kanały audio, zawsze gdy będą one dostępne.

#### Odtwarzanie plików stereo przy użyciu czterech głośników

MPlayer standardowo nie duplikuje kanałów, ani nie robi tego większość sterowników audio. Jeżeli chcesz zrobić to ręcznie:

    mplayer filename -af channels=2:2:0:1:0:0

Zobacz sekcję o kopiowaniu kanałów, jest tam wyjaśnienie tego polecenia.

#### Przekazywanie AC3/DTS

Dźwięk przestrzenny na płytach DVD zazwyczaj kodowany jest w formacie AC3 (Dolby Digital) lub DTS (Digital Theater System). Część współczesnego sprzętu audio jest w stanie dekodować te formaty. MPlayer może zostać skonfigurowany, aby przekazywał dane audio bez ich dekodowania. Rozwiązanie takie będzie działało tylko, jeżeli posiadasz w swojej karcie muzycznej złącze S/PDIF (Sony/Philips Digital Interface).

Jeżeli twój sprzęt audio potrafi dekodować zarówno AC3 jak i DTS, możesz bezpiecznie włączyć przekazywanie dla obu formatów. W przeciwnym razie, tylko dla tego formatu, który jest obsługiwany przez Twój sprzęt.

Aby włączyć przekazywanie z wiersza poleceń:

- dla AC3 użyj `-ac hwac3`

- dla DTS użyj `-ac hwdts`

- dla AC3 i DTS użyj `-afm hwac3`

Aby włączyć przekazywanie w pliku konfiguracyjnym MPlayera:

- dla AC3 użyj `ac=hwac3,`

- dla DTS użyj `ac=hwdts,`

- dla AC3 i DTS użyj `afm=hwac3`

Zauważ, że na końcu opcji `ac=hwac3,` oraz `ac=hwdts,` są przecinki. Powodują one, że MPlayer będzie używał standardowych kodeków, które są normalnie używane podczas odtwarzania plików, które nie posiadają dźwięku AC3 ani DTS. Opcja `afm=hwac3` nie wymaga przecinka, samo podanie rodziny kodeków powoduje że MPlayer wypróbuje inne gdy będzie musiał.

#### Przekazywanie dźwięku MPEG

Cyfrowe transmisje TV (takie jak DVB czy ATSC), także niektóre płyty DVDs zazwyczaj zawierają strumienie audio w formacie MPEG (zazwyczaj MP2). Część sprzętowych dekoderów MPEG, takich jak pełnofunkcjonalne karty DVB, oraz adaptery DXR2, potrafi natywnie dekodować ten format. MPlayer może zostać tak skonfigurowany, aby przekazywać dane audio bez ich dekodowania.

Aby użyć tego sposobu dekodowania:

     mplayer -ac hwmpa

#### Dźwięk zakodowany macierzowo

***TODO***

Ta sekcja musi dopiero zostać napisana i nie może zostać ukończona zanim ktoś nie dostarczy przykładowych plików do testów. Jeżeli posiadasz jakieś pliki audio zakodowane macierzowo (matrix-encoded), wiesz kto je posiada lub wiesz cokolwiek co mogłoby być pomocne, wyślij proszę informację na listę mailingową MPlayer-DOCS W temacie podaj "[matrix-encoded audio]".

Jeżeli nie nadejdą żadne wiadomości, ta sekcja zostanie usunięta.

Przydatne linki:

- http://electronics.howstuffworks.com/surround-sound5.htm

- http://www.extremetech.com/article2/0,1697,1016875,00.asp

#### Emulacja przestrzeni w słuchawkach

MPlayer posiada filtr HRTF (Head Related Transfer Function) bazujący na projekcie MIT, w ramach którego wykonane zostały pomiary z mikrofonów zamontowanych na głowie ludzkiego manekina.

Chociaż nie jest możliwe dokładne zasymulowanie systemu dźwięku przestrzennego, filtr HRTF zawarty w MPlayerze powoduje bardziej przestrzenne zanurzenie w dźwięku przy użyciu 2-kanałowych słuchawek. Standardowy procedura po prostu łączy wszystkie kanały w dwa. `hrtf`, obok łączenia kanałów, generuje także subtelne echa, nieznacznie zwiększa separację kanałów stereo, a także zmienia głośność niektórych częstotliwości. To, czy dźwięk HRTF brzmi lepiej, może zależeć od źródła dźwięku oraz gustu słuchacza, ale z pewnością jest on warty wypróbowania.

Odtwarzanie DVD z HRTF:

    mplayer dvd://1 -channels 6 -af hrtf

`hrtf` działa poprawnie tylko przy 5 i 6 kanałach. Opcja ta wymaga także audio próbkowanego z częstotliwością 48kHz. Audio na płytach DVD jest już próbkowane 48kHz, lecz jeżeli chcesz odtworzyć plik z innym próbkowaniem i opcją `hrtf`, musisz dokonać jego przepróbkowania tego pliku:

    mplayer filename -channels 6 -af resample=48000,hrtf

#### Rozwiązywanie problemów

Jeżeli nie słyszysz żadnych dźwięków, sprawdź ustawienia miksera przy pomocy stosownego programu, takiego jak alsamixer; niejednokrotnie wyjścia audio są domyślnie wyciszone lub ich głośność jest ustawiona na zero.

### Manipulowanie kanałami

#### Ogólne informacje

Niestety nie ma żadnego standardu opisującego w jaki sposób kanały są uporządkowane. Poniższe porządki przedstawiają te używane przez AC3, które są dość typowe. Spróbuj ich i sprawdź czy odpowiednie źródła dźwięku się zgadzają. Kanały są numerowane od 0.

mono

1. środkowy

stereo

1. lewy

2. prawy

kwadrofonia

1. lewy przedni

2. prawy przedni

3. lewy tylny

4. prawy tylny

surround 4.0

1. lewy przedni

2. prawy przedni

3. środkowy tylny

4. środkowy przedni

surround 5.0

1. lewy przedni

2. prawy przedni

3. lewy tylny

4. prawy tylny

5. środkowy przedni

surround 5.1

1. lewy przedni

2. prawy przedni

3. lewy tylny

4. prawy tylny

5. środkowy przedni

6. subwoofer (głośnik niskotonowy)

Opcja `-channels` jest używana w celu określenia liczby kanałów dekodowanego audio. Niektóre kodeki audio wykorzystują tę liczbę aby zdecydować czy konieczne jest zmniejszenie liczby kanałów poprzez miksowanie. Zauważ, że ustawienie tej opcji nie jest równoważne z ustawieniem liczby wyjściowych kanałów. Przykładowo, używając opcji `-channels 4` aby odtworzyć plik stereo MP3, otrzymamy 2 kanały wyjściowe, bowiem kodek MP3 nie potrafi spreparować dodatkowych kanałów.

Filtr audio `channels` może być użyty aby stworzyć lub usunąć kanały, co może być przydatne przy określaniu liczy kanałów przesyłanych do karty muzycznej. Aby dowiedzieć się więcej, zobacz kolejne sekcje.

#### Odtwarzanie dźwięku mono przy użyciu dwóch głośników

Dźwięk mono brzmi znacznie lepiej, gdy jest odtwarzany przy użyciu dwóch głośników - szczególnie gdy używamy słuchawek. Pliki audio, które posiadają tylko jeden kanał audio są automatycznie odtwarzane przy użyciu obu głośników; niestety większość plików mono jest zakodowana jako dźwięk stereo, gdzie jeden kanał jest wyciszony. Najłatwiejszą i najbardziej niezawodną metodą pozwalającą na odtworzenie dźwięku przy użyciu obu głośników jest użycie filtru `extrastereo`:

    mplayer filename -af extrastereo=0

Metoda ta uśrednia oba kanały, co skutkuje zmniejszeniu głośności każdego z kanałów o połowę względem oryginału. W następnej sekcji zawarto przykłady innych metod rozwiązania tego problemu bez zmniejszania głośności; niestety są one bardziej skomplikowanego i wymagają różnych opcji w zależności od kanału, który zawiera dane. Jeżeli na prawdę potrzebujesz utrzymać głośność, możliwe że łatwiej będzie odpowiednio dopasować głośność przy użyciu filtru `volume`. Na przykład:

    mplayer filename -af extrastereo=0,volume=5

#### Kopiowanie i przesuwanie kanałów

Filtr `channels` potrafi przesunąć dowolny jeden lub wszystkie kanały. Ustawienie wszystkich podopcji filtru `channels` może być skomplikowane i wymaga nieco uwagi.

1. Zdecyduj ile wyjściowych kanałów audio potrzebujesz. Oto pierwsza podopcja.

2. Policz ile przesunięć kanałów zamierzasz wykonać. To jest druga podopcja. Każdy kanał może być przesunięty do kilku różnych kanałów w tym samym czasie, ale pamiętaj, że gdy przesuniesz kanał (również gdy tylko do jednego kanału docelowego), źródło zostanie opróżnione, chyba że inny kanał zostanie tam przesunięty. Aby skopiować kanał, pozostawiając źródło nietknięte, po prostu przesuń kanał zarówno do miejsca kopiowania, jak i do źródła. Na przykład:

       kanał 2 --> kanał 3
       kanał 2 --> kanał 2

3. Wypisz kopie kanałów jako pary subopcji. Pamiętaj, że pierwszy kanał ma numer 0, drugi 1 itd. Kolejność subopcji nie jest istotna tak długo, ale muszą one być pogrupowane w pary typu źródło:cel.

#### Przykład: jeden kanał w dwóch głośnikach

Oto przykład innej metody odtwarzania jednego kanału w dwóch głośnikach. Załóżmy, że lewy kanał ma być odtwarzany, a prawy ma zostać pominięty. Zgodnie z krokami opisanymi powyżej:

1. Aby dostarczyć dźwięk do każdego z dwóch głośników, pierwsza opcja musi mieć wartość "2".

2. Lewy kanał musi zostać przesunięty do prawego kanału oraz lewego, aby nie został on pusty. Sumaryczna liczba przesunięć to dwa, zatem druga opcja to również "2".

3. Aby przesunąć lewy kanał (kanał 0) do kanału prawego (kanał 1), para subopcji musi byc "0:1", "0:0" przesunie lewy kanał do siebie.

Po połączeniu wszystkiego razem otrzymamy:

    mplayer filename -af channels=2:2:0:1:0:0

Przewaga tego przykładu nad opcją `extrastereo` jest taka, że głośność każdego z kanałów wyjściowych pozostanie taka sama jak kanału źródłowego. Wadą jest, że podopcje muszą zostać zmienione na "2:2:1:0:1:1", gdy dźwięk zawiera kanał prawy. Ponadto trudniej to zapamiętać i wpisać.

#### Przykład: lewy kanał w obu głośnikach (skrót)

Istnieje znacznie łatwiejsza metoda na użycie filtru `channels` w celu odtworzenia lewego kanału w dwóch głośnikach:

    mplayer filename -af channels=1

Drugi kanał jest pomijany, a pierwszy jest pozostawiany, bez dodatkowych podopcji. Sterowniki kart muzycznych automatycznie odtwarzają jednokanałowy dźwięk wykorzystując oba głośniki. Oczywiście zadziała to tylko, gdy pożądanym kanałem jest kanał lewy.

#### Przykład: kopiowanie kanałów przednich do kanałów tylnych

Kolejną typową operacją jest kopiowanie kanałów przednich i odtwarzanie ich z tylnych głośników zestawu kwadrofonicznego.

1. Potrzebujemy czterech kanałów wyjściowych, więc pierwsza podopcja to "4".

2. Każdy z przednich kanałów musi zostać przesunięty do odpowiedniego kanału tylnego oraz do siebie. W sumie użyte będą cztery przesunięcia, więc druga opcja to "4".

3. Lewy przedni kanał (kanał 0) musi zostać przesunięty do lewego tylnego (kanał 2): "0:2". Lewy przedni musi być także przesunięty do siebie: "0:0". Prawy przedni (kanał 1) musi zostać przesunięty do prawego tylnego (kanał 3): "1:3" oraz do siebie: "1:1".

Po połączeniu wszystkich podopcji otrzymujemy:

    mplayer filename -af channels=4:4:0:2:0:0:1:3:1:1

#### Miksowanie kanałów

Filtr `pan` potrafi zmiksować kanały w określonych przez użytkownika proporcjach. Pozwala to na wykonanie wszystkiego tego co potrafi filtr `channels` i wiele więcej. Niestety podopcje są tutaj znacznie bardziej skomplikowane.

1. Zdecyduj z iloma kanałami chcesz pracować. Aby to określić możesz potrzebować użyć `-channels` i/lub `-af channels`. Późniejsze przykłady pokażą kiedy użyć którego.

2. Zdecyduj ile kanałów ma zostać wprowadzonych do `pan` (dalsze dekodowane kanały zostaną porzucone). To jest pierwsza podopcja. Kontroluje ona także liczbę kanałów używanych jako wyjście.

3. Pozostałe podopcje określają jak dużą część danego kanału zmiksować do kanału docelowego. To jest najbardziej skomplikowana część. Aby sprostać temu zadaniu, podzielmy podopcje na kilka grup, po jednej dla każdego kanału wyjściowego. Każda podopcja w zbiorze odpowiada pojedynczemu kanałowi wejściowemu. Liczba, którą podasz odpowiada części kanału wejściowego, która zostanie zmiksowana w kanale wyjściowym.

   `pan` akceptuje wartości od 0 do 512, co odpowiada wartościom od 0% do 51200% oryginalnej głośności. Bądź ostrożny używając wartości większych od 1. Może to spowodować nie tylko bardzo duże zwiększenie głośności, ale także, jeżeli przekroczysz zakres swojej karty muzycznej, możesz usłyszeć okropne trzaski. Jeżeli chcesz, możesz stosować po filtrze `pan` dopisać `,volume`, co włączy obcinanie głośności, jednak najlepiej używać na tyle małych wartości parametrów `pan`, aby przycinanie nie było potrzebne.

#### Przykład: jeden kanał w dwóch głośnikach

Oto jeszcze jeden przykład, jak odtworzyć lewy kanał w dwóch głośnikach. Postępując zgodnie z krokami opisanymi powyżej:

1. `pan` powinien używać dwóch kanałów wyjściowych, więc pierwsza podopcja to "2".

2. Ponieważ mamy dwa kanały wejściowe, będziemy mieli dwie grupy podopcji. Ponieważ używane są również dwa kanały wyjściowe, w każdej grupie będą po dwie podopcje. Lewy kanał z pliku powinien zostać skopiowany z pełną głośnością do nowych kanału: lewego i prawego. W związku z tym, pierwsza grupa podopcji to "1:1". Prawy kanał powinien zostać pominięty, zatem druga grupa to "0:0". Wszelkie zera na końcu listy podopcji mogą zostać pominięte, ale dla przejrzystości przykładu, pozostawimy je.

Po złączeniu wszystkich podopcji otrzymamy:

    mplayer filename -af pan=2:1:1:0:0

Jeżeli pożądanym kanałem jest prawy, a nie lewy, podopcje zmienią się na "2:0:0:1:1".

#### Przykład: lewy kanał w dwóch głośnikach (skrót)

Podobnie jak przy użyciu `channels`, istnieje skrót działający tylko z lewym kanałem:

    mplayer filename -af pan=1:1

Jeżeli `pan` posiada tylko jeden kanał wejściowy (pozostałe kanały są pomijane), potrzebna jest tylko jedna grupa podopcji z jedną podopcją, która oznacza, że jedyny kanał będzie zawierał 100% siebie.

#### Przykład: zmniejszanie liczy kanałów w 6-kanałowym PCM

Dekoder 6-kanałowego PCM zawarty w MPlayerze nie potrafi zmniejszać liczby kanałów przez miksowanie. Oto metoda dokonania tego przy użyciu opcji `pan`:

1. Liczba kanałów wyjściowych to 2, więc pierwsza podopcja to "2".

2. Jako, że mamy 6 kanałów wejściowych, musimy użyć sześciu grup opcji. Na szczęście, ponieważ interesują nas tylko dwa pierwsze kanały, możemy użyć tylko dwóch grup opcji; pozostałe cztery grupy mogą zostać pominięte. Pamiętaj, że nie wszystkie wielokanałowe pliki audio mają tę samą kolejność kanałów. Poniższy przykład pokazuje zmniejszanie liczby kanałów w pliku, w którym kolejność kanałów jest taka, jak w AC3 5.1:

       0 - lewy przedni
       1 - prawy przedni
       2 - lewy tylny
       3 - prawy tylny
       4 - środkowy przedni
       5 - subwoofer (głośnik niskotonowy)

   Pierwsza grupa podopcji zawiera kolejne wartości oryginalnej głośności lewego przedniego kanału, które powinny być dostarczone do odpowiednich kanałów wyjściowych: "1:0". Prawy przedni kanał powinien zostać przeniesiony do prawego wyjściowego: "0:1". Analogicznie dla kanałów tylnych: "1:0" i "0:1". Kanał środkowy powinien zostać przeniesiony do obu kanałów wyjściowych z połową głośności: "0.5:0.5", zaś kanał głośnika niskotonowego powinien być słyszalny w obu kanałach wyjściowych z pełną głośnością: "1:1".

Połącz wszystko razem, a otrzymasz:

    mplayer 6-channel.wav -af pan=2:1:0:0:1:1:0:0:1:0.5:0.5:1:1

Przedstawione powyżej głośności są tylko przybliżonym przykładem. Nie czuj się nimi skrępowany i zmieniaj je zgodnie ze swoim uznaniem.

#### Przykład: Odtwarzanie audio 5.1 przy pomocy dużych głośników, bez subwoofera

Jeżeli posiadasz parę dużych przednich głośników, możesz nie mieć ochoty tracić pieniędzy na dodatkowy głośnik niskotonowy, tylko po to, aby mieć kompletny system 5.1. Jeżeli użyjesz opcji `-channels 5`, przekażesz do lib52 informację, że ma dekodować audio 5.1 dla systemu 5.0. Tym sposobem kanał głośnika niskotonowego zostanie po prostu pominięty. Jeżeli chcesz rozdzielić kanał subwoofera samodzielnie, musisz dokonać ręcznego zmiksowania przy użyciu `pan`:

1. Jako, że `pan` musi analizować wszystkie 6 kanałów, podaj opcję `-channels 6`, aby liba52 zdekodował je wszystkie.

2. Ponieważ `pan` będzie używał pięciu kanałów wyjściowych, pierwsza podopcja to "5".

3. Sześć kanałów wejściowych i pięć wyjściowych oznacza 6 grup po 5 podopcji.

   - Lewy przedni kanał replikuje samego siebie: "1:0:0:0:0"

   - Identycznie dla prawego przedniego kanału: "0:1:0:0:0"

   - Tak samo dla lewego tylnego: "0:0:1:0:0"

   - Oraz tak samo dla prawego tylnego: "0:0:0:1:0"

   - Środkowy też: "0:0:0:0:1"

   - Teraz musimy zdecydować, co zrobić z subwooferem. Na przykład możemy podzielić go po połowie na lewy przedni i prawy przedni: "0.5:0.5:0:0:0"

Po połączeniu wszystkich opcji otrzymasz:

    mplayer dvd://1 -channels 6 -af pan=5:1:0:0:0:0:0:1:0:0:0:0:0:1:0:0:0:0:0:1:0:0:0:0:0:1:0.5:0.5:0:0:0

### Programowa regulacja głośności

Niekóre ścieżki audio są zbyt ciche aby można ich komfortowo słuchać bez wzmocnienia. Staje się to problemem, gdy Twój sprzęt audio nie potrafi wzmacniać sygnału. Opcja `-softvol` instruuje MPlayera, aby ten używał wewnętrznego miksera. Możesz wtedy używać klawiszy strojenia głośności (domyślnie 9 i 0), aby uzyskać większe poziomy głośności. Pamiętaj, że nie omija to miksera Twojej karty muzycznej; MPlayer zwiększa tylko głośność sygnału przed przesłaniem go do Twojej karty. Poniższy przykład może być dobrym początkiem:

    mplayer cichy-plik -softvol -softvol-max 300

Opcja `-softvol-max` określa maksymalny dozwolony poziom głośności, jako procent głośności oryginalnej. Przykładowo, `-softvol-max 200` pozwoli na maksymalne zwiększenie głośności do 200% głośności oryginalnej. Można bezpiecznie używać dużych parametrów `-softvol-max`; większa głośność nie zostanie użyta, jeżeli nie zwiększysz jej przy pomocy klawiszy regulacji głośności. Jedyną wadą stosowania większych wartości jest to, że, ponieważ MPlayer ustala głośność jako procent głośności maksymalnej, nie będziesz w stanie precyzyjnie kontrolować głośności przy pomocy klawiszy regulacji głośności. Użyj mniejszych wartości parametrów `-softvol-max` i/lub dodaj opcję `-volstep 1` aby uzyskać większą precyzję.

Opcja `-softvol` działa poprzez kontrolę filtru `volume`. Jeżeli chcesz odtwarzać plik z określoną głośnością, możesz podać opcję dla `volume` ręcznie:

    mplayer cichy-plik -af volume=10

Pozwoli to na odtworzenie pliku z 10-decybelowym wzmocnieniem. Bądź ostrożny używając filtru `volume` - ustawiając zbyt dużą głośność możesz łatwo uszkodzić swój słuch. Zaczynaj od małych wartości i stopniowo zwiększaj je aż do uzyskania pożądanej głośności. Ponadto, jeżeli podasz zbyt dużą wartość, filtr `volume` może musieć przyciąć głośność, aby nie przesłać do karty muzycznej danych spoza akceptowalnego przez nią zakresu; będzie to powodować zniekształcenia dźwięku.

## Wejście TV

Sekcja ta opisuje jak oglądać/nagrywać obraz za pomocą tunera TV kompatybilnego z V4L. Zajrzyj do strony man by zobaczyć opis opcji TV i klawiszy sterujących.

### Kompilacja

- Najpierw musisz przekompilować. `./configure` wykryje automatycznie nagłówki jądra związane z V4L i obecność urządzeń `/dev/video*`. Jeśli istnieją, obsługa TV zostanie wbudowana (zobacz wynik działania `./configure`).

- Upewnij się, że Twój tuner działa z innymi programami do obsługi TV pod Linuksem, na przykład XawTV.

### Wskazówki użytkowania

Kompletna lista opcji dostępna jest na stronie man. Tu jest tylko kilka wskazówek:

- Używaj opcji `channels`. Przykład:

      -tv channels=26-MTV1,23-TV2

  Wyjaśnienie: Jeśli użyjesz tej opcji, dostępne będą tylko kanały 23 i 26 oraz przy zmianie kanału pojawi się ładny napis na OSD, wyświetlający jego nazwę. Odstępy w nazwie kanału muszą zostać zastąpione znakiem "_".

- Używaj rozsądnych rozmiarów obrazu. Rozmiary obrazu wynikowego powinny być podzielne przez 16.

- Jeśli nagrywasz obraz video o pionowej rozdzielczości większej niż połowa rozdzielczości pełnej (np. 288 dla PAL lub 240 dla NTSC), wtedy 'ramki' które otrzymasz będą tak naprawdę parami poprzeplatanych (interleaved) pól. W zależności od tego, co chcesz zrobić ze strumieniem video, możesz go zostawić w takiej formie, użyć destrukcyjnego usuwania przeplotu (deinterlacing), albo rozdzielić pary na pojedyncze pola.

  W przeciwnym wypadku dostaniesz film, który jest zniekształcony w trakcie scen o dużej dynamice, a wskazana szybkość transmisji (bitrate) prawdopodobnie nie będzie nawet mogła być utrzymana przez kontroler szybkości (bitrate controller), ponieważ artefakty przeplotu tworzą duże ilości szczegółów, a co za tym idzie, potrzebują dużej przepustowości. Możesz włączyć usuwanie przeplotu za pomocą opcji `-vf pp=TYP_DEINT`. Zwykle `pp=lb` spisuje się dobrze, ale to kwestia gustu. Poczytaj o innych algorytmach usuwania przeplotu na stronie man i zacznij eksperymentować.

- Usuwaj "martwe miejsca". Kiedy nagrywasz video, są pewnie miejsca przy brzegach, które są zazwyczaj czarne lub zawierają szum. Jak się łatwo domyślić, niepotrzebnie zużywają sporo przepustowości (dokładniej, to nie same czarne miejsca, lecz ostre przejścia pomiędzy czarnym kolorem i jaśniejszym obrazem video, ale nie jest to akurat takie ważne). Zanim zaczniesz nagrywać, ustaw argumenty opcji `crop` by wyciąć wszystkie "śmieci" na brzegach. Oczywiście nie zapomnij o utrzymaniu prawidłowych wymiarów obrazu.

- Uważaj na obciążenie CPU. Przez większość czasu Nie powinno ono przekroczyć granicy 90%. Jeśli masz duży bufor nagrywania, MEncoder może przetrwać przeciążenie przez najwyżej kilka sekund i nic więcej. Lepiej więc wyłączyć wszystkie trójwymiarowe wygaszacze OpenGL i inne tego typu bajery.

- Nie mieszaj z zegarem systemowym. MEncoder korzysta z niego do synchronizacji A/V. Jeśli zmodyfikujesz zegar systemowy (zwłaszcza wstecz), MEncoder się pogubi i utraci klatki. Jest to bardzo ważna sprawa jeśli jesteś podpięty do sieci i używasz do synchronizacji czasu różnych programów typu NTP. Musisz wyłączyć NTP w trakcie nagrywania, jeśli chcesz, by było ono przeprowadzone niezawodnie.

- Nie zmieniaj opcji `outfmt`, chyba, że wiesz co robisz lub Twoja karta/sterownik naprawdę nie obsługuje ustawienia domyślnego (przestrzeń kolorów YV12). W poprzednich wersjach MPlayera/MEncodera konieczne było podanie formatu wyjścia. Ten problem powinien być rozwiązany w aktualnych wydaniach i opcja `outfmt` nie jest już wymagana, a ustawienie domyślne powinno pasować każdemu. Na przykład, jeśli nagrywasz do formatu DivX używając libavcodec i podasz opcję `outfmt=RGB24` aby zwiększyć jakość nagrywanego obrazu, zostanie on i tak później z powrotem przekonwertowany do YV12, więc jedyne, co osiągniesz, to ogromna strata mocy obliczeniowej.

- By użyć przestrzeni kolorów I420 (`outfmt=i420`), musisz dodać opcję `-vc rawi420` z powodu konfliktu fourcc z kodekiem Intel Indeo.

- Jest kilka sposobów na nagrywanie audio. Możesz nagrywać dźwięk za pomocą Twojej karty dźwiękowej korzystając z zewnętrznego kabla pomiędzy kartą video i wejściem liniowym lub korzystając z wbudowanego w układ bt878 przetwornika ADC. W tym drugim przypadku musisz załadować sterownik btaudio. Przeczytaj plik `linux/Documentation/sound/btaudio` (w drzewie jądra, a nie MPlayera) by dowiedzieć się jak korzystać z tego sterownika.

- Jeśli MEncoder nie może otworzyć urządzenia dźwiękowego, upewnij się, że jest ono rzeczywiście dostępne. Zdarzają się problemy z serwerami dźwięku typu aRts (KDE) lub ESD (GNOME). Jeśli masz kartę full-duplex (prawie wszystkie przyzwoite karty dostępne obecnie obsługują tę funkcję) i korzystasz z KDE, spróbuj zaznaczyć opcję "Działanie w pełni dupleksowe" ("full duplex") w konfiguracji serwera dźwięku.

### Przykłady

Puste wyjście, do AAlib :)

    mplayer -tv driver=dummy:width=640:height=480 -vo aa tv://

Wejście ze standardowego V4L:

    mplayer -tv driver=v4l:width=640:height=480:outfmt=i420 -vc rawi420 -vo xv tv://

Bardziej skomplikowany przykład. Każe on MEncoderowi nagrać pełen obraz PAL, wykadrować go i usunąć przeplot korzystając z algorytmu liniowego zlewania (linear blend). Audio jest kompresowane ze stałą szybkością równą 64kbps, przy użyciu kodeka LAME. To ustawienie jest dobre do nagrywania filmów.

    mencoder -tv driver=v4l:width=768:height=576 -oac mp3lame -lameopts cbr:br=64 \
         -ovc lavc -lavcopts vcodec=mpeg4:vbitrate=900 \
         -vf crop=720:544:24:16,pp=lb -o wyjscie.avi tv://

Ten przykład dodatkowo przeskaluje obraz do 384x288 i skompresuje video z szybkością 350kbps w trybie wysokiej jakości. Opcja `vqmax` uwalnia kwantyzator i pozwala kompresorowi video na osiągnięcie tak niskiej szybkości nawet kosztem jakości obrazu. Może być to używane do nagrywania długich seriali TV, kiedy jakość obrazu nie jest tak ważna.

    mencoder -tv driver=v4l:width=768:height=576 \
        -ovc lavc -lavcopts vcodec=mpeg4:vbitrate=350:vhq:vqmax=31:keyint=300 \
        -oac mp3lame -lameopts cbr:br=48 -sws 1 -o wyjscie.avi \
        -vf crop=720:540:24:18,pp=lb,scale=384:288 tv://

Jest również możliwe podanie mniejszych wymiarów obrazu w opcji `-tv` i pominięcie programowego skalowania, ale to podejście wykorzystuje maksymalną ilość dostępnych informacji i jest trochę bardziej odporne na szum. Układy bt878, ze względu na ograniczenia sprzętowe, mogą stosować uśrednianie pikseli jedynie w kierunku poziomym.

## Radio

### Słuchanie radia

Ten rozdział opisuje jak włączyć możliwość słuchania radia przy użyciu tunera radiowego kompatybilnego z V4L. Opis opcji i sterowania klawiaturą znajduje się na stronie man.

#### Kompilacja

- Najpierw, musisz przekompilować MPlayera używając `./configure` z opcją `--enable-radio` i (jeśli chcesz móc przechwytywać radio) `--enable-radio-capture`.

- Upewnij się że Twój tuner działa z innym oprogramowaniem do radia w Linuksie, na przykład z XawTV.

#### Rady przy stosowaniu

Pełna lista opcji jest dostępna na stronie man. Tu jest tylko kilka porad:

- Używaj opcji `channels`. Na przykład:

      -radio channels=104.4-Sibir,103.9-Maximum

  Wyjaśnienie: Przy użyciu tej opcji dostępne będą tylko stacje na częstotliwościach 104.4 i 103.9. Przy przełączaniu kanału OSD będzie wyświetlać nazwę kanału. Spacje w nazwie kanału muszą zostać zastąpione przez znak "_".

- Jest kilka metod przechwytywania audio. Możesz przechwytywać dźwięk albo korzystając ze swojej karty dźwiękowej i zewnętrznego kabelka łączącego kartę video z wejściem dźwięku, albo używając wbudowanego w chip saa7134 konwertera ADC. W tym drugim przypadku, musisz załadować sterownik saa7134-alsa lub saa7134-oss.

- Do przechwytywania dźwięku nie można użyć MEncodera, ponieważ wymaga on do działania strumienia video. Możesz więc albo użyć arecord z projektu ALSA albo opcji `-ao pcm:file=file.wav`. W tym drugim przypadku nie będziesz słyszał dźwięku (chyba że masz kabelek do line-in i wyłączyłeś jego wyciszenie).

#### Przykłady

Wejście ze standardowego V4L (przy użyciu kabelka line-in, bez przechwytywania):

    mplayer radio://104.4

Wejście ze standardowego V4L (przy użyciu kabelka line-in, bez przechwytywania, interface V4Lv1):

    mplayer -radio driver=v4l radio://104.4

Odtwarzanie drugiego kanału z listy:

    mplayer -radio channels=104.4=Sibir,103.9=Maximm radio://2

Przesyłanie dźwięku szyną PCI z wewnętrznego konwertera ADC na karcie radiowej. W tym przykładzie tuner jest używany jako druga karta dźwiękowa (urządzenia alsa hw:1,0). Dla kart opartych na saa7134 musi być załadowany moduł saa7134-alsa lub saa7134-oss.

    mplayer -rawaudio rate=32000 radio://2/capture \
      -radio adevice=hw=1.0:arate=32000:channels=104.4=Sibir,103.9=Maximm

Jeśli używasz nazw urządzeń ALSA dwukropki muszą być zastąpione znakami równości a przecinki kropkami.