MPlayer - Movie Player for LINUX (C) 2000-2002 Arpad Gereoffy (A'rpi/ESP-team)
http://www.mplayerhq.hu
[ Angielski ] [ Węgierski ] [ Niemiecki ] [ Francuski ] [ Włoski ] [ Polski ]

Spis treści

- 0. Jak czytać tą dokumentację
- 1. Wprowadzenie

- 1.1 O programie
- 1.2 Historia
- 1.3 Instalacja/ Wskazówki
- 1.4 A co z GUI?
- 1.5 Napisy i OSD

- 2. Właściwości

- 2.1 Wspierane formaty

- 2.1.1 Obraz

- 2.1.1.1 Pliki MPG, VOB i DAT
- 2.1.1.2 Pliki AVI
- 2.1.1.3 Pliki ASF/WMV
- 2.1.1.4 Pliki QT/MOV
- 2.1.1.5 Pliki VIV
- 2.1.1.6 Pliki FLI
- 2.1.1.7 Pliki RealMedia
- 2.1.1.8 Pliki NuppelVideo
- 2.1.1.9 Pliki yuv4mpeg
- 2.1.1.10 FILM files
- 2.1.1.11 Pliki RoQ
- 2.1.1.12 Pliki OGG

- 2.1.2 Dźwięk

- 2.1.2.1 Pliki MP3
- 2.1.2.2 Pliki WAV
- 2.1.2.3 Pliki OGG (Vorbis)
- 2.1.2.4 Pliki WMA/ASF
- 2.1.2.5 Pliki MP4

- 2.2 Wspierane kodeki

- 2.2.1 Obraz

- 2.2.1.1 DivX4/DivX5
- 2.2.1.2 DivX/libavcodec w ffmpeg
- 2.2.1.3 Kodeki XAnim
- 2.2.1.4 Obraz VIVO
- 2.2.1.5 Obraz MPEG1/2
- 2.2.1.6 MS Video1
- 2.2.1.7 Cinepak CVID
- 2.2.1.8 RealVideo
- 2.2.1.9 XViD

- 2.2.2 Dźwięk

- 2.2.2.1 Programowe dekodowanie AC3
- 2.2.2.2 Sprzętowe dekodowanie AC3
- 2.2.2.3 Wsparcie dla libmad
- 2.2.2.4 Dźwięk VIVO
- 2.2.2.5 RealAudio

- 2.2.3 Jak importować kodeki Win32

- 2.2.3.1 Kodeki VFW
- 2.2.3.2 Kodeki DirectShow

- 2.3 Urządzenia wyjściowe

- 2.3.1 Obraz

- 2.3.1.1 Ustawienie MTRR
- 2.3.1.2 Xv

- 2.3.1.2.1 3dfx
- 2.3.1.2.2 S3
- 2.3.1.2.3 nVidia
- 2.3.1.2.4 ATI
- 2.3.1.2.5 NeoMagic
- 2.3.1.2.6 Karty Trident

- 2.3.1.3 DGA

- 2.3.1.3.1 Podsumowanie
- 2.3.1.3.2 Czym jest DGA
- 2.3.1.3.3 Instalacja obsługi DGA dla MPlayera
- 2.3.1.3.4 Przełączanie rozdzielczości
- 2.3.1.3.5 DGA i MPlayer
- 2.3.1.3.6 Właściwości sterownika DGA
- 2.3.1.3.7 Zagadnienie szybkości
- 2.3.1.3.8 Znane błędy
- 2.3.1.3.9 Zadania na przyszłość
- 2.3.1.3.A Wybrane modeline
- 2.3.1.3.B Raporty o błędach

- 2.3.1.4 SDL
- 2.3.1.5 SVGAlib
- 2.3.1.6 Wyjście framebuffera (FBdev)
- 2.3.1.7 Framebuffer Matroxa (mga_vid)
- 2.3.1.8 Framebuffer SiS 6326 (sis_vid)
- 2.3.1.9 Wsparcie dla 3dfx YUV (tdfxfb)
- 2.3.1.10 Wyjście OpenGL
- 2.3.1.11 AAlib - wyświetlanie w trybie tekstowym
- 2.3.1.12 VESA - wyjście do BIOSu VESA
- 2.3.1.13 X11
- 2.3.1.14 Rage128 / Radeon - nakładkowanie obrazu (PRZESTARZAŁE - podepnij to do Vidix!)
- 2.3.1.15 Vidix
- 2.3.1.16 Zr (dla niektórych kart ściągających/odgrywających MJPEG)
- 2.3.1.A TVout

- 2.3.1.A.1 Matrox G400
- 2.3.1.A.2 ATI
- 2.3.1.A.3 Voodoo 3/Banshee

- 2.3.2 Dźwięk

- 2.3.2.1 Doświadczenia z kartami dźwiękowymi, rekomendacje
- 2.3.2.2 Wtyczki dźwiękowe

- 2.3.2.2 Podsumowanie
- 2.3.2.2.1 Up/Downsampling
- 2.3.2.2.2 Dekodowanie dźwięku otaczającego
- 2.3.2.2.3 Konwerter formatu próbek
- 2.3.2.2.4 Opóźnienie
- 2.3.2.2.5 Programowe sterowanie głośnością
- 2.3.2.2.6 Extrastereo
- 2.3.2.2.7 Normalizator głośności
- 2.3.2.2.8 Dźwięk otaczający

- 2.4 MEncoder - koder oparty na MPlayerze

- 2.4.1 O programie
- 2.4.2 Kompilacja
- 2.4.3 Właściwości

- 2.4.3 Podsumowanie
- 2.4.3.1 Kodowanie dwupasmowe DivX4
- 2.4.3.1 Kodowanie 2 i 3-pasmowe DivX4
- 2.4.3.2 Przeskalowywanie filmów
- 2.4.3.3 Streamcopy
- 2.4.3.4 Naprawa plików AVI z uszkodzonym indeksem
- 2.4.3.5 Kodowanie za pomocą rodziny kodeków libavcodec
- 2.4.3.6 Kodowanie z wielowejściowych obrazów (MJPEG/MPNG)

- 2.4.4 Składnia
- 2.4.5 Dostępne opcje
- 2.4.6 Przykłady

- 2.5 Wejście TV

- 2.5.1 O zagadnieniu
- 2.5.2 Kompilacja
- 2.5.3 Dostępne opcje
- 2.5.4 Sterowanie z klawiatury
- 2.5.5 Przykłady

- 2.6.1 O zagadnieniu
- 2.6.2 Użycie
- 2.6.3 Crop
- 2.6.4 Expand
- 2.6.5 Fame
- 2.6.6 Flip
- 2.6.7 Format
- 2.6.8 Postprocess
- 2.6.9 RGB2BGR
- 2.6.10 Rotate
- 2.6.11 Scale
- 2.6.13 YUY2
- 2.6.13 Lavc

- 3. Sposób użycia

- 3.1 Linia poleceń
- 3.2 Sterowanie

- 3.2.1 Domyślne klawisze sterowania
- 3.2.2 Konfiguracja sterowania

- 3.2.2.1 Nazwy klawiszy
- 3.2.2.2 Polecenia

- 3.2.3 Sterowanie przez LIRC
- 3.2.4 Tryb slave

- 3.3 Przesyłanie przez sieć lub za pomocą pipe

- 4. Sekcja CD/DVD

- 4.1 Napędy CD
- 4.2 Odtwarzanie DVD
- 4.3 Odtwarzanie DVD - FAQ

- 5. Sekcja FAQ

- 5.1 Kompilacja
- 5.2 Ogólne pytania
- 5.3 Problemy z odgrywaniem plików
- 5.4 Problemy ze sterownikami video/audio
- 5.5 Żądanie określonych zachowań
- 5.6 Kodowanie

- 6. Różne systemy operacyjne

- 6.1 Pakiety Debiana
- 6.2 FreeBSD
- 6.3 Solaris
- 6.4 StrongARM
- 6.5 SGI/Irix
- 6.6 QNX
- 6.7 OpenBSD

- A. Autorzy

- A/2. Maintainerzy

- B. Listy dyskusyjne
- C. Jak zgłaszać błędy

- C/2. Jak wysyłać łaty

- D. Znane błędy
- X. Jak zostać sławnym twórcą skórki w 5 minut!

Żale developerów

- 1. GCC 2.96
- 2. Opcje dla NVidii
- 3. O Joe Barr'ym

0. Jak czytać tą dokumentaję?

Jeżeli instalujesz Mplayera po raz pierwszy: koniecznie przeczytaj wszystko, stąd do końca sekcji Instalacja i prześledź linki, które znajdziesz po drodze. Jeśli będziesz miał jakieś inne jeszcze pytania, wróć do spisu treści i wyszykaj odpowiedni temat, przeczytaj FAQ lub spróbuj przegrepować pliki dokumentacji pod kątem swojego problemu.

Podstawowa zasada dokumentacji: jeśli coś nie jest udokumentowane, to to nie istnieje. Jeśli nie powiem ci, że możesz kodować dźwięk z tunera TV, to nie możesz. Zdrowa dawka pomysłowości jest jednak mile widziana. Życzę dużo szczęścia. Będziesz go potrzebował :)

1. Wprowadzenie

1.1. O programie

MPlayer jest odgrywarką filmów pod LINUXem (działa pod wieloma innymi Unixami, i systemami opartymi na innych procesorach niż x86, zobacz sekcja 6). Wyświetla większość plików MPEG, VOB, AVI, OGG, VIVO, ASF/WMV, QT/MOV, FLI, RM, NuppelVideo, yuv4mpeg, FILM, RoQ, korzystając z wielu własnych, XAnim oraz Win32 DLL kodeków. Możesz również oglądać VideoCD, SVCD, DVD, 3ivx, a nawet filmy DivX (i nie potrzebujesz wcale biblioteki avifile!). Kolejną dużą zaletą mplayera jest szeroki wachlarz sterowników wyjścia. Mplayer działa z X11, Xv, DGA, OpenGL, SVGAlib, fbdev, AAlib, DirectFB, ale możesz też korzystać z GGI i SDL (i w ten sposób z wielu sterowników dostarczanych przez SDL), a także z niskopoziomowych sterowników specyficznych dla danej karty (Matrox, 3Dfx i Radeon)! Większość dostępnych sterowników wspiera programowe i sprzętowe skalowanie, możesz więc cieszyć się oglądaniem filmów w trybie pełnoekranowym. MPlayer obsługuje wyświetlanie poprzez pewne sprzętowe karty dekodujące MPEG , takie jak DVB i DXR3/Hollywood+ ! A co powiesz na ładne, duże, antyaliasowane i cieniowane napisy (wspieranych jest 10 typów!!!) z europejskim ISO 8859-1,2 (węgierskimi, angielskimi, czeskimi itd.), cyrylicą, koreańskimi fontami oraz OSD?

MPlayer jest oparty na licencji GPL v2.

Moja odgrywarka jest wybitnie dobra w odgrywaniu uszkodzonych plików MPEG (co jest użyteczne w pewnych VCD), a także odgrywa złe pliki AVI, które są nie do odtworzenia przy użyciu słynnego windows media player. Nawet pliki AVI bez indeksowania są odgrywane i możesz tymczasowo przebudować ich indeksy za pomocą opcji -idx, albo na stałe, za pomocą MEncoder, co umożlliwia przeszukiwanie. Jak widzisz, stabilność i jakość, to rzeczy najważniejsze, ale prędkość jest również zadziwiająca.

1.2. Historia

Wszystko zaczęło się rok temu... Ja, A'rpi, próbowałem wielu odgrywarek pod linuxa (mtv,xmps,dvdview,livid/oms,videolan, xine, xanim, avifile, xmmp), ale wszystkie miały jakieś wady, głównie dotyczące odtwarzania plików specjalnych oraz synchronizacji obrazu i dźwięku. Większość z nich nie potrafi odgrywać plików w obu formatach MPEG1/2 i AVI (DivX). Wiele z nich miało również problemy z jakością obrazu lub prędkością. Postanowiłem więc napisać nowy lub zmodyfikować jeden z tych programów...

- mpg12play v0.1-v0.3: Sep 22-25, 2000
  Pierwsza próba, wszystko zakodowane w pół godziny! Użyłem libmpeg3 z www.heroinewarrior.com aż do wersji 0.3, ale były z tym problemy z jakością obrazu i szybkością.
- mpg12play v0.5-v0.87: Sep 28-Oct 20, 2000
  Kodek Mpeg zastąpiony kodekiem DVDview przez Dirka Farina, to była wielka sprawa, ale to było wolne i napisane w C++ (nie znoszę C++!!!)
- mpg12play v0.9-v0.95pre5: Oct 21-Nov 2, 2000
  Kodek Mpeg był libmpeg2 (mpeg2dec) wykonany przez Aaron Holtzman & Michel Lespinasse. To wspaniałe, zoptymalizowany, bardzo szybki kod C z doskonałą jakościąk obrazu i 100% zgodnością ze standardem MPEG.
- MPlayer v0.3-v0.9: Nov 18-Dec 4, 2000
  To była paczka składająca się z dwóch programów: mpg12play v0.95pre6 oraz mojej nowej, prostej odgrywarki AVI 'avip' opartej na programie ładującym Win32 DLL z avifile.
- MPlayer v0.10: Jan 1, 2001
  Oddzielne binaria dla odgrywarki MPEG i AVI!
- MPlayer v0.11pre series::
  Kilku nowych developerów dołączyło i od 0.11 projekt mplayer jest pracą zespołową! Dodano wsparcie dla plików .ASF i kodowania/dekodowania OpenDivX (zobacz www.projectmayo.com).
- MPlayer v0.17a "The IdegCounter" Apr 27, 2001
  Wersja 0.11pre wydana po 4 miesiącach wzmożonego rozwoju! Wypróbuj tego, i dziw się! Dodano tysiące nowych właściwości ... i oczywiście naprawiono stary kod także, usunięto błędy itp.
- MPlayer 0.18 "The BugCounter" Jul 9, 2001
  2 miesiące odkąd pojawiło się 0.17 i proszę, oto nowe wydanie ... Ukończona obsługa ASF, więcej formatów napisów, wprowadzenie libao (podobnej do libvo ale dla dźwięku) i bardziej stabilne, niż kiedykolwiek i tak dalej. To jest przełom!
- MPlayer 0.50 "The Faszom(C)ounter" Oct 8, 2001
  Hmm. Następne wydanie. Tony nowych właściwości, wersja beta GUI, poprawione błędy, nowe sterowniki vo i ao, przeniesione na wiele systemów, włączając kodeki opensource DivX i wiele innych. Wypróbuj to!
- MPlayer 0.60 "The RTFMCounter" Jan 3, 2002
  Obsługa formatów plików MOV/VIVO/RM/FLI/NUV, własne kodeki CRAM, Cinepak i ADPCM i wsparcie dla binarnych kodeków XAnim; obsługa napisów DVD, pierwsze wydanie MEncodera, odbioru telewizji, cache, liba52, niezliczone poprawki.
- MPlayer 0.90 "?" May? ??, 2002

1.3. Instalacja

W tym rozdziale spróbuję przeprowadzić cię przez proces kompilacji i konfiguracji MPlayera. Nie jest to proste, ale też niekoniecznie musi być trudne. Jeśli zaobserwujesz inne zachowanie, niż to, które opiszę, proszę, przeszukaj tą dokumentację, a znajdziesz wyjaśnienie. Kiedy zobaczysz linki, przeczytaj uważnie dokumenty, które one wskazują. Zajmie ci to trochę czasu, ale warto to zrobić.

Potrzebna ci będzie dość nowa wersja systemu. W Linuksie zalecane są jądra 2.4.x.

WYMAGANE OPROGRAMOWANIE

- binutils - sugerowana wersja, to 2.11.x. Ten program jest odpowiedzialny za generowanie bardzo istotnych instrukcji MMX/3DNow!/itp.
- gcc - sugerowana wersja od 2.95.3 do 2.95.4. NIGDY nie używaj 2.96 lub 3.x.x !!! One generują błędny kod. Jeśli zdecydujesz się zmienić gcc z 2.96, wtedy nie wybieraj odgałęzień 3.0, tylko dlatego, żę są nowsze! W pewnych względach, to jest wersja nawet gorsza niż 2.96. Tak więc zejdź do 2.95.x (zejdź także do niższej wersji libstdc++!), albo nie zmieniaj nic w ogóle (ale w tym wypadku bądź przygotowany na czasochłonne problemy). Jeśli jesteś zwolennikiem 3.x, spróbuj ostatniej wersji. Wczesne wydania mają różne błędy, więc upewnij się, że używasz przynajmniej 3.0.3 albo 3.1. Szczegółowe informacje o błędach gcc 2.96 (które nadal nie są naprawione, a które są rozpracowywane w Mplayerze) można znaleźć tu oraz w FAQ!
.
- XFree86 - sugerowana wersja, to wersja najnowsza (4.2.0). Normalnie każdy chce tej wersji, gdyż, poczynając od XFree86 4.0.2, zawiera ona rozszerzenie XVideo (gdzieś określane jako Xv), które jest konieczne, aby włączyć akcelerację sprzętową YUV (szybkie wyświetlanie obrazów) w kartach, które to obsługują. Więcej informacji na ten temat jest dostępnych tutaj
  . Upewnij się, że pakiet rozwojowy (development pkg) jest również zainstalowany, w przeciwnym razie to nie zadziała.
  W pewnych kartach graficznych nie korzysta się z XFree86. Zobacz listę poniżej.
- make - sugerowana wersja, to wersja najnowsza (nie starsza niż 3.79.x). Jest to zazwyczaj mało istotne.
- SDL - nie jest to niezbędne, ale może pomóc w niektórych przypadkach (zły dźwięk, karty graficzne, które mają dziwne opóźnienia podczas używania sterownika xv). Zawsze używaj najnowszej wersji (począwszy od 1.2.x). SDL potrafi również wyświetlać napisy pod filmem, na czarnym pasku.
- libjpeg - opcjonalny dekoder JPEG, przez -mf i niektóre pliki mov w qt. Użyteczny zarówno dla MPlayera jak i dla MEncodera, jeśli masz zamiar pracować z plikami jpeg.
- libpng - rekomendowany i domyślny dekoder (M)PNG. Wymagany dla GUI. Użyteczny zarówno dla MPlayera jak i dla MEncodera.
- libogg - opcjonalny, potrzebny dla odgrywania OGG Vorbis audio.

KODEKI

- libavcodec: Jeżeli chcesz używać tego kodeka DivX3/DivX4/DivX5/MP42/itp., zobacz przed kompilacją sekcję 2.2.1.2. Właściwości:
  - możesz odgrywać DivX/DivX4/DivX5/MP42 na maszynach nie-x86
  - odgrywanie i kodowanie RealVideo 1.0/VIVO/MJPEG/h263/i innych
  - ten kodek osiąga największą prędkość dekodowania filmów DivX i DivX4/DivX5 (większą nawet, niż oryginalna biblioteka DivX4)! Rekomendowany!
- Win32 codecs : Jeżeli planujesz używać MPlayera na procesorze o architekturze x86, będziesz ich prawdopodobnie potrzebował. Ściągnij i rozpakuj w32codecs.zip w /usr/lib/win32. Uwaga: projekt avifile ma podobny pakiet kodeków, ale one się różnią od naszych, więc jeśli chcesz używać wszystkich wspieranych kodeków, wówczas stosuj nasz pakiet! Jednakże możesz używać naszego pakietu kodeków z avifile. Właściwości:
  - potrzebne, jeżeli chcesz odgrywać, bądź kodować np. filmy nagrane za pomocą różnych sprzętowych kompresorów, takich jak tunery, kamery cyfrowe (np.: DV, ATI VCR, MJPEG)
  - potrzebne, jeżeli chcesz odgrywać filmy WMV, albo starsze (MP42) ASF'y
- DivX4/DivX5: informacje na temat tego kodeka można uzyskać w sekcji 2.2.1.1. Jeżeli nie chcesz używać MEncodera, nie będziesz chciał też używać tego kodeka, gdyż libavcodec (zobacz powyżej) jest znacznie od niego szybszy.
  Właściwości:
  - jedno lub dwupasmowe kodowanie z MEncoderem
  - potrafi odgrywać stare filmy DivX3 znacznie szybciej niż Win32 DLL, ale wolniej niż libavcodec!
  - jest closed-source i dostępna jest tylko wersja na x86.
- XviD : Alternatywa opensource kodowania Divx4Linux
  Właściwości:
  - 1 i 2 pasmowe kodowanie z MEncoderem
  - to jest open-source, więc nie tylko wersja na x86 jest dostępna
  - około 2 razy szybszy, niż divx4 w czasie kodowania - przy tej samej jakości
- Kodeki XAnim są najlepsze (pełny ekran, sprzętowy zoom YUV) do dekodowania filmów 3ivx i Indeo 3/4/5 oraz kilka starych formatów. Te kodeki są wieloplatformowe, więc to jedyny sposób, aby odgrywać Indeo na platformach nie-x86 (cóż, niezależnie od samego używania XAnim:). Na przykład filmy Cinepak są najlepiej odgrywane z własnym dekoderem Cinepak Mplayera

KARTY GRAFICZNE

Ogólnie istnieją dwa rodzaje kart graficznych. Jeden rodzaj, to karty (nowsze) posiadające obsługę sprzętowej akceleracji skalowania i YUV, czego nie posiadają pozostałe karty.

KARTY YUV

Potrafią one wyświetlać i skalować (zoom) obrazki do dowolnego rozmiaru, jaki mieści się w ich pamięci, z małym zużyciem CPU (zooming nie zwieksza go!), dzięki czemu masz bardzo szybkie pełnoekranowe odtwarzanie.

- Karty Matrox G200/G400/G450/G550: w celu uzyskania dużego zwiększenia prędkości, zobacz sekcję mga_vid. Ważne jest, aby wykonać te kroki zanim skompilujesz MPlayera, w przeciwnym razie żadne specjalne wsparcie dla Matroxa nie zostanie zbudowane. Zobacz również sekcję Matrox TV-out. Jeżeli nie jesteś użytkownikiem Linuksa, przeczytaj dokumentację Vidix!
- Karty 3Dfx Voodoo3/Banshee: w celu uzyskania dużego zwiększenia prędkości, zobacz sekcję 2.3.1.9. Ważne jest, aby wykonać te kroki zanim skompilujesz MPlayera, w przeciwnym razie żadne wsparcie dla 3Dfx nie zostanie zbudowane. Zobacz również sekcję 3dfx TV out. Jeśli używasz X-ów, używaj przynajmniej 4.2.0, ponieważ sterownik 3dfx Xv był popsuty w 4.1.0 i wcześniejszych wydaniach!
- Karty ATI: zobacz sekcję karty ATI z dokukmentacji TV-out, aby się dowiedzieć, jakie właściwości twojej karty są obsługiwane pod Linuksem/MPlayerem. Jeżeli masz kartę Radeon, Rage128, albo Mach64 (Rage XL/Mobility, Xpert98), mamy dla ciebie sterownik Vidx, z wyjściem TV! Sprawdź tą sekcję!
Jeżeli nie jesteś użytkownikiem Linuksa, przeczytaj dokumentację Vidix!
- Karty S3: chipy Savage i Virge/DX posiadają akcelerację sprzętową. Używaj tak nowej wersji XFree86, jak to tylko możliwe. Starsze sterowniki zawierają błędy. Chipy Savage mają kłopoty z wyswietlaniem YV12. Zobacz sekcję S3 Xv, aby dowiedzieć się więcej szczegółów. Starsze, karty Trio, nie zawierają, bądź mają bardzo wolne wsparcie sprzętowe.
- Karty Nvidia: to bardzo zły wybór jeśli chodzi o odtwarzanie obrazów. (NVidia ma inne opcje!). Karty Nvidii zawierają bardzo tanie i złej jakości chipy. Co więcej, wbudowany sterownik Nvidii w XFree86 nie zawiera wsparcia dla sprzętowej akceleracji YUV! Musisz ściągnąć sterowniki Nvidii, które są closed-source, ze strony nvidia.com. Zobacz więcej szczegółów w sekcji Sterowniki Nvidia Xv
.
- Inne karty: żadna z wyżej wymienionych?
  - Sprawdź czy sterownik XFree86 (i twoja karta) obsługuje akcelerację sprzętową. Szczegóły znajdziesz w sekcji Xv.
  - Jeśli nie, wobec tego właściwości twojej karty nie są obsługiwane przez twój OS: (
    Jeśli wykonuje ona skalowanie sprzętowe pod Windows, to wcale nie znaczy, że będzie robiła to samo pod Linuksem, bądź innym systemem, wszystko zależy od sterowników! Większość producentów nie robi sterowników dla Linuksa, ani nie udostępnia specyfikacji chipów - a więc masz pecha, że używasz ich karty. Zobacz następną sekcję:

Karty bez YUV

Pełnoekranowe odgrywanie może być osiągnięte albo przez zooming programowy (uzyj opcji -zoom, ale ostrzegam cię: to jest zbyt wooolne!), albo przez zmianę, na mniejszy, trybu video (videomode), np. na 352x288. Jeśli nie masz akceleracji YUV, to rekomendowana jest ta druga metoda. Za pomocą MPlayera, można to włączyć za pomocą opcji `-vm` z następującymi sterownikami:

- using XFree86: zobacz szczegóły w sekcji: sterownik DGA oraz sterownik X11. DGA jest rekomendowany! Spróbuj również DGA via SDL, czasem to jest lepsze.
- nie używając XFree86: spróbuj kolejno tych sterowników: vesa, fbdev, svgalib, aalib.

KARTY DŻWIĘKOWE

- Soundblaster Live!: z tą kartą możesz używać 4 lub 6 (5.1) kanałów dekodowania AC3, zamiast, jak dotąd, dwóch. Przeczytaj sekcję Programowe dekodowanie AC3. Dla sprzętowego przepuszczania AC3 MUSISZ użyć emulacji oss za pomocą Alsy 0.9.
- C-Media z wyjściem SP/DIF : sprzętowe przejście AC3 jest z tymi kartami możliwe, zobacz sekcję: Sprzętowe dekodowanie AC3.
- właściwości innych kart nie są obsługiwane przez MPlayera. Bardzo zaleca się przeczytanie sekcjikarty dźwiękowe!

WŁAŚCIWOŚCI

- Zdecyduj czy potrzebujesz GUI. Jeżeli tak, zobacz, przed kompilacją, sekcję 1.4 .
- Jeżeli chcesz zainstalować MEncoder (nasz wspaniały wszechstronny koder), zobacz sekcję MEncoder.
- Jeżeli masz tuner TV zgodny z V4L i chcesz oglądać/nagrywać oraz kodować filmy za pomocą MPlayera, przeczytaj sekcję wejście TV.
- Są trzy metody taktowania w MPlayerze. Aby użyć starej metody, nie musisz robić nic. Stosuje ona `usleep()`, aby dostroić A/V sync, z dokładnością +/- 10ms. Jakkolwiek, czasami synchronizacja musi być dostrojona nawet lepiej. Nowy kod zegara w tym celu RTC (Real Time Clock) komputera, ponieważ ma on precyzyjność taką, jak zegary 1ms. Wymaga to uprawnień roota (ew. setuid root) dla binariów MPlayera (lub drobnych zmian w jądrze, ale to jest odradzane). Możesz zobaczyć wydajność nowego zegaraa w lini statusu. Trzeci kod zegara jest włączany za pomocą opcji `-softsleep`. Ma on wydajność RTC, ale nie używa RTC. Z drugiej strony, zużywa on więcej CPU. Uwaga: NIGDY nie instaluj binariów MPlayera, jako setuid w systemie wielu użytkowników! To prosta droga dla każdego, by zdobyć uprawnienia roota.

Następnie zbuduj MPlayera:

        ./configure
        make
        make install

Na tym etapie MPlayer jest gotowy do używania. Katalog `/usr/local/share/mplayer` zawiera plik `codecs.conf`, który jest używany, aby poinformować program o wszystkich kodekach i ich możliwościach. Ten plik powinien być zawsze uaktualniany wraz z biblioteką main!
Sprawdź czy masz codecs.conf w katalogu domowym (~/.mplayer/codecs.conf) pozostały po starych wersjach MPlayera i usuń go!

Użytkownicy Debiana mogą samodzielnie budować pakiety .deb, to bardzo proste. Po prostu wywołaj `fakeroot debian/rules binary` w głównym katalogu MPlayera. Szczegółowe instrukcje można znaleźć tu.

ZAWSZE przeglądaj komunikaty z ./configure oraz zawartość pliku `configure.log`, możesz tam znaleźć informacje o tym, co zostanie zbudowane, a co nie. Możesz również przejrzeć pliki config.h i config.mak.
Jeśli masz jakieś biblioteki zainstalowane, ale nie zostały one wykryte podczas ./configure, wówczas sprawdź, czy masz również odpowiednie pliki nagłówkowe (zazwyczaj pakiety -dev) i czy zgadzają się ich wersje. W pliku configure.log znajdziesz informację o tym, czego brakuje.

Choć to nie jest niezbędne, fonty powinny być zainstalowane, aby można było osiągnąć funkcjonalność OSD i napisy. Ściągnij mp-arial-iso-8859-*.zip i/lub opcjonalnie (jeśli istnieją) uaktualnienia językowe. BARDZO ZALECANE jest sprawdzenie szczegółów w sekcji 1.5.

        mkdir ~/.mplayer/font
        cd ~/.mplayer/font
        unzip mp-arial-iso-8859-1.zip

1.4. A co z GUI?

GUI wymaga GTK (nie jest ono napisane w GTK, ale panele są). Skórki są przechowywane w formacie PNGt, więc gtk i libpng (oraz ich części devel) muszą być zainstalowane. Możesz zbudować GUI specyfikując `--enable-gui` podczas ./configure . Jest kilka sposobów na włączenie trybu GUI:

- zastosuj opcję `-gui`
- określ `gui=yes` w pliku konfiguracyjnym
- `ln -s /usr/local/bin/mplayer /usr/local/bin/gmplayer` i używaj `gmplayer`.

WSKAZÓWKA: użyj środkowego przycisku myszki (w 2 przyciskowych myszkach wciśnij prawy i lewy przycisk jednocześnie), aby wywołać menu GTK, z opcją odgrywania DVD!

Ponieważ MPlayer nie zawiera skórek, musisz ściągnąć je, jeżeli chcesz używać GUI. Zobacz stronę download. Skórki powinny być rozpakowane do typowego ogólnodostępnego katalogu systemowego (`/usr/local/share/mplayer/Skin`), lub do `$HOME/.mplayer/Skin` . MPlayer domyślnie szuka w tych katalogach katalogu o nazwie default, ale możesz za pomocą opcji -skin newskin, bądź dyrektywy skin=newskin w pliku konfiguracyjnym wskazać użycie skórki z katalogu `*/Skin/newskin`.

1.5. Napisy i OSD

MPlayer możę wyświetlać napisy wraz z plikami z filmami. Aktualnie obsługiwane są następujące formaty:

- VobSub
- Microdvd
- SubRip
- SubViewer
- Sami
- VPlayer
- RT
- SSA
- MPsub
- AQTitle

Polecenia z lini komend różnią się odrobinę w różnych formatach.

Napisy VobSub
Napisy VobSub składają się z dużego (kilka MB) .SUB i opcjonalnie z plików .IDX oraz/lub .IFO.
Sposób użycia: jeśli masz pliki w rodzaju: `sample.sub`, `sample.ifo`, `sample.idx` - musisz podać opcje: `-vobsub sample -vobsubid<id>` (opcjonalnie ze ścieżką dopliku, oczywiście). Opcja `-vobsubid` jest odpowiednikiem opcji `-sid` dla DVD. Z tą opcją możesz wybierać wersję językową z dostępnych ścieżek napisów.

Inne formaty napisów
Inne formaty napisów składają się z pojedynczego pliku tekstowego, zawierającego taktowanie, miejsce i tekstową informację.
Sposób użycia: jeśli masz pliki w rodzaju: `sample.txt`, - musisz podać opcję: `-sub sample.txt` (opcjonalnie ze ścieżką dopliku, oczywiście).

Dostrajanie taktowania i rozmieszczenia napisów
`-subdelay <sec>` : opóźnia napisy o <sec> sekund. Może mieć ujemną wartość.
`-subfps <rate>` : wyznacza współczynnik frame/sec pliku z napisami (liczba zmiennoprzecinkowa)
`-subpos <0 - 100>` : wyznacza umiejscowienie napisów.

Jeśli zaobserwujesz rosnące opóźnienie napisów w stosunku do filmu, podczas używania pliku z napisami MicroDVD, najprawdopodobniej frame rate filmu i napisów są inne.
Musisz wiedzieć, że format napisów MicroDVD stosuje całkowitą numerację klatek do taktowania i dlatego opcja `-subfps` nie może być stosowana do tego formatu. Ponieważ MPlayer nie ma możlliwości odgadnięcia frame rate pliku z napisami, musisz ręcznie przekonwertować frame rate napisów. Mały skrypt w perlu znajduje się w katalogu `contrib` na stronie ftp MPlayera. Za jego pomocą można dokonać tej konwersji.

O napisach DVD przeczytać możesz w sekcji DVD.

MPlayer wprowadza nowy format napisów zwany MPsub. Został on zaprojektowany przeze mnie (Gabucino). Oznacza to przede wszystkim tyle, że jego podstawową cechą jest dynamiczniy tryb time-based (chociaż posiada on również tryb frame-based). Przykład (z DOCS/tech/mpsub.sub):

`# pierwsza liczba : czekaj tyle sekund po zniknięciu porzedniego napisu
# druga liczba : wyświetlaj aktualny napis przez tyle sekund
15 3
A long, long time ago...
0 3
in a galaxy far away...
0 3
Naboo was under an attack.
`

A więc widzisz, że głównym celem było uczynienie napisów łatwymi w edycji/taktowaniu/łaczeniu/obcinaniu. I jeżeli, powiedzmy, dostaniesz do swojej wersji filmu napisy SSA, ale źle taktowane/opóźnione, wywołaj po prostu: mplayer dummy.avi -sub source.ssa -dumpmpsub . Plik `dump.mpsub` będzie stworzony w aktualnym katalogu i będzie zawierał źródłowy text napisów, ale w formacie MPsub. Wówczas możesz już w dowolny sposób dodawać/usuwać sekundy do/z napisu.

Napisy są wyświetlane w technice nazywanej 'OSD', On Screen Display. OSD jest stosowane do wyświetlania aktualnego czasu, paska głośności, paska przeszukiwania itp.

INSTALACJA OSD i SUB

Potrzebny ci będzie pakiet z fontami MPlayera, aby móc korzystać z właściwości OSD/SUB. Jest wiele sposobów, aby je zdobyć:

- Ściągnij gotowy do użycia pakiet z fontami ze strony MPlayera. Uwaga: obecnie dostępne fonty ograniczają się do obsługi iso 8859-1/2, ale istnieją jeszcze inne (koreańskie, rosyjskie, 8859-8 itp.) fonty w sekcji contrib/font na FTP, stworzone przez użytkowników. Font powinien mieć właściwy plik font.desc, który mapuje pozycje fontu unicode do aktualnej strony kodowej tekstu napisów. Inne rozwiązanie to posiadanie napisów zakodowanych w kodowaniu utf8 i używanie opcji -utf8, albo po prostu zmiana nazwy pliku z napisami na: .utf i umieszczenie go w tym samym katalogu co plik z filmem. Przekodowanie z innego kodowania do utf8 może być wykodnane za pomocą programów konwert (debian) lub iconv (RedHat).
  Kilka adresów URL:
  - ftp://ftp.mplayerhq.hu/MPlayer/releases/ - fonty ISO
  - ftp://ftp.mplayerhq.hu/MPlayer/contrib/fonts/ - różne fonty użytkowników
  - http://realtime.ssu.ac.kr/~lethean/mplayer - fonty koreańskie i wtyczka RAW
- Użyj generatora fontów z TOOLS/subfont-c. Jest to kompletne narzędzie do konwersji fontów TTF/Type1/etc do pakietu fontów mplayera (szczegóły w TOOLS/subfont-c/README).
- Użyj wtyczki GIMPa - generatora fontów z TOOLS/subfont-GIMP (uwaga: musisz mieć również wtyczkę HSI RAW, zobacz adres URL poniżej)

Potem rozpakuj pliki, które ściągnąłeś, do `~/.mplayer` lub `$PREFIX/share/mplayer`. Następnie zmień nazwę lub stwórz link symboliczny do jednego z nich o nazwie `font` (np. tak: `ln -s ~/.mplayer/arial-24~/.mplayer/font`). Teraz powinieneś zobaczyć zegar w lewym górnym rogu ekranu (wyłączysz to za pomocą klawisza 'o').

OSD ma 3 stany: (przełączane za pomocą 'o')

- zegar + pasek głośności + pasek przeszukiwania + napisy (domyślny)
- pasek głośności + pasek przeszukiwania + napisy
- tylko napisy

Możesz zmienić domyślne zachowanie, ustawiając zmienną `osdlevel=` w pliku konfiguracyjnym.

2. Właściwości

2.1. Wspierane formaty

2.2. Wspierane kodeki

2.3. Urządzenia wyjścia dla obrazu i dźwięku.

2.4. MEncoder - uniwersalny koder

2.5. Wejście TV

2.5.1. O zagadnieniu

To jest sekcja o tym, jak włączyć oglądanie/nagrywanie z użyciem tunera TV komatybilnego z V4L .

2.5.2. Kompilacja

- Najpierw musisz wykonać rekompilację. `./configure` automatycznie wykryje nagłówki jądra związane z v4l oraz wejścia /dev/video*. Jeśli one istnieją, obsługa TV będzie utworzona (zobacz komunikaty configure!).
- upewnij się, że twój tuner działa z innymi programami dla TV pod Linuksem, np. z xawtv.

Wskazówka: czy kolory są prawidłowe? Jeśli nie, to znaczy, że twój tuner nie potrafi wyświetlać w modelu kolorów YV12. Spróbuj I420 (musisz użyć także opcji `-vc rawi420`!) lub w modelach YUY2, UYVY, RGB32 (tutaj zastosuj opcję `-vo sdl`). Możesz to wyspecyfikować za pomocą opcji `outfmt=YV12`, zobacz poniżej.

2.5.3. Dostępne opcje

| on |  | użyj wejścia TV
| noaudio |  | dzięki, żadnego dźwięku
| driver |  | dummy - wejście TV jest NULL :) Używane tylko do testów, generuje wejście dummy. v4l - zgrywa obrazki ze standardowego interfejsu V4L (domyślnie `/dev/video0`)
| device |  | określ inne niż domyślne `/dev/video0` urządzenie
| input |  | podaj, z jakiego wejścia tunera TV chcesz odbierać (np.television, s-video, composite, ...) Dostępne wejścia są wypisywane przy inicjalizacji.
| freq |  | określ częstotliwość, aby ustawić tuner (np. 511.250)
| outfmt |  | w jakim formacie wyjściowym tuner powinien przetransportować obrazy do nas (rgb32, rgb24, yv12, uyvy, i420 (dla i420 musisz podać opcję `-vc rawi420`, z powodu konfliktu fourcc))
| width |  | szerokość w pikselach okna wyjściowego
| height |  | wysokość w pikselach okna wyjściowego
| norm |  | dostępne: PAL, SECAM, NTSC
| channel |  | ustaw tuner na podany kanał
| chanlist |  | dostępne: `us-bcast, us-cable, europe-west, europe-east, itp.`

2.5.4. Sterowanie z klawiatury

| h lub l |  | przełącz poprzedni/następny kanał
| n |  | zmień normę
| b |  | zmień listę kanałów

2.5.5. Przykłady

Wyjście Dummy, dla AAlib :)
`mplayer -tv on:driver=dummy:width=640:height=480 -vo aa`
Wejście ze standardowego V4L
`mplayer -tv on:driver=v4l:width=640:height=480:outfmt=i420 -vc rawi420 -vo xv`

2.6. Filtry obrazu

2.6.1. O zagadnieniu

Zarówno MPlayer jak i MEncoder umożliwiają użycie universal video filter layer, który składa się z wielu wtyczek - wymienionych i wyjaśnionych poniżej. Te wtyczki mogą wykonywać różne operacje na obrazie takie, jak przeskalowanie, obcięcie obrazu za pomocą czarnych pasów (użyteczne nie tylko przy kodowaniu, ale również przy odgrywaniu, ponieważ czarne pasy zwiększają użycie szyny i odcięcie ich może zwiększyć szbkość odgrywania przy wolnych kartach), rozszerzenie obrazu (dla SVCD).

Z tym layer'em filtrów możliwe jest przeprowadzenie szybkiej konwersji formatu obrazu pomiędzy różnymi RGB i YUV, jeśłi to konieczne. Umożliwia on między innymi odgrywanie danych RGB na wyjściach `xv` i `xmga` (zobacz filtr Scale).

Layer również wykonuje Direct Rendering pomiędzy wtyczkami, aby zmaksymalizować prędkość.

Zauważ, że kod postprocessing'u jest teraz również częścią layer'a. Będzie to wyjaśnione poniżęj.

2.6.2. Użycie

`mplayer/mencoder -vop filter1,filter2,filter3,...`

Ustawia kolejkę filtrów (możęsz użyć dowolnej liczby filtrów). Parametry filtrów są opcjonalne i jeśli się je pominie, niektóre z nich będą ustawione na domyślne wartości, jak x i y są obie ustawiane na środek ekranu, a szerokość i wysokość - na szerokość i wysokość filmu.

Filters are queued starting from libvo, so `filter1` will be the last called filter (after that libvo comes, or when using MEncoder, encoding).

2.6.3. Crop

Opis:

Odcina podana część obrazu i odrzuca resztę. Użyteczne do usuwania czarnych pasów w filmach szerokoekranowych.

Użycie:

`-vop crop[=width:height:x:y]`

2.6.4. Expand

Opis:

Rozszerza (NIE skaluje) rozdzielczość filmu do podanej wartości i umieszcza nieprzeskalowany oryginalny obraz w x y. W filmach, które tego nie mają, można dodać dzięki temu filtrowi czarne pasy. Jest to dobre, gdy tworzy się SVCD, albo w przypadku użycia wyjścia obrazu na SDL, dzięki czemu można na czarnych pasach umieścić napisy.

Użycie:

`-vop expand[=width:height:x:y]`

2.6.5. Fame

Opis:

Koder MPEG1 czasu rzeczywistego (do stosowania z DVB/DXR3).

Użycie:

`-vop fame`

2.6.6. Flip

Opis:

Zwyczajnie odwraca obraz. Użyteczny w pewnych starych kodekach, które mogą mieć na wyjściu jedynie odwrócone obrazy (jest to automatycznie wykrywane).

Użycie:

`-vop flip`

2.6.7. Format

Opis:

Ten filtr NIE jest konwerterem formatu obrazu. On jedynie wymusza format obrazu, który ma być użyty w następnym filtrze (lub libvo).Użyteczny przy kartach z wolnym YV12, jak tdfx i Savage4. Dla rzeczywistej konwersji użyj filtru scale.

Użycie:

`-vop format[=format]` (where `format` can be for example: rgb32, yuy2, etc...)

2.6.8. Postprocess

Opis:

To jest nasz stary dobry postprocess, tylko przekonwertowany na filter layer. Poprawia jakość obrazu, deinterlacing, itp., zobacz `-npp help` w celu obejrzenia dostępnych opcji.

Użycie:

`-vop pp[=postprocess options/keywords]`

2.6.9. RGB2BGR

Opis:

Powoduje konwersje przestrzeni kolorów RGB 24/32 <-> BGR 24/32 (zachowanie domyślne) lub konwersję RGB 24/32 <-> RGB 24/32 oraz R<->B swapping (z opcją 'swap')

Użycie:

`-vop rgb2bgr[=swap]`

2.6.10. Rotate (obroty)

Opis:

Obraca (odwraca) obraz. Parametr 'x' (wrtości: 0-3) kontroluje poziome i pionowe obdbijanie.

Użycie:

`-vop rotate[=x]`

2.6.11. Scale (skalowanie)

Opis:

Skaluje obraz za pomocą programowego skalera (powolne). Możesz dostosować jakość skalera za pomocą opcji `-sws` - zobacz stronę manuala. Dobra jakość powoduje straty na prędkości.

UWAGA:: użycie tego filtru bez opcji oznbacza konwersję przestrzeni kolorów! To jest wygodne dla kodeków, które nie mogą wyprowadzać wyników w żądanym formacie dla podanego użądzenia wyjściowego video. Są one zazwyczaj automatycznie wykrywane i filtr skalujący jest wywoływany w celu konwersji. W innym przypadku możesz go użyć ręcznie.

Użycie:

`-vop scale[=szerokość:wysokość]`

2.6.13. YUY2

Opis:

Wymuszona konwersja programowa YV12/I420 do YUY2.

Użycie:

`-vop yuy2`

2.6.13. Lavc

Opis:

Koder MPEG1 czasu rzeczywistego (do stosowania z DVB/DXR3).

Użycie:

`-vop lavc`

3. Użycie

3.1. Linia poleceń

MPlayer używa complex playtree. Zawiera ono globalne opcje zapisane jako pierwsze (np.: `mplayer -vfm 5`) jak i opcje zapisane za nazwami plików, które są stosowane tylko do podanych plików/URL/czegokolwiek (np.: `mplayer -vfm 5 movie1.avi movie2.avi -vfm 4`).
Możesz pogrupować nazwy plików / adresy URL używając { i }. To jest użyteczne wraz z opcją -loop: `mplayer { 1.avi -loop 2 2.avi } -loop 3` odtworzy pliki w kolejności: 1 1 2 1 1 2 1 1 2

file |  |  | `mplayer [opcje] [path/]filename`
| files |  | `mplayer [default opcje] [path/]filename1 [opcje dla filename1] filename2 [opcje dla filename2] ...`
| VCD |  | `mplayer [opcje] -vcd trackno /dev/cdrom`
| DVD |  | `mplayer [opcje] -dvd titleno [-dvd-device /dev/dvd]`
| net |  | `mplayer [opcje] http://site.com/file.asf (tu również może być użyta playlista)`

Najnowsze wersje MPlayera również akceptuje ścieżki VCD i DVD w stylu URL, tak, jak to robi Xine: `mplayer dvd://1` albo `mplayer vcd://1`

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

3.2. Sterowanie

MPlayer ma w pełni konfigurowalny, strerowany z klawiatury panel sterowania, który pozwala ci sterować MPlayerem za pomocą klawiatury, myszy, joysticka bądź pilota (z użyciem lirc).

3.2.1 Domyślne sterowanie

Klawiatura

| <- lub -> |  | poszukiwanie wstecz/naprzód o 10 sekund
| strzałka w górę lub w dół |  | poszukiwanie wstecz/naprzód o 1 minutę
| pgup/pgdown |  | poszukiwanie wstecz/naprzód o 10 minut
| < lub > |  | poszukiwanie wstecz/naprzód po playliście
| p lub spacja |  | zatrzymanie filmu (wciśnij jakikolwiek przycisk)
| q lub ESC |  | zakończenie odgrywania i wyjście z programu
| + lub - |  | dopasuj opóźnienie dźwięku o +/- 0.1 sekundy
| r lub t |  | dopasuj pozycję napisów
| > lub < |  | idź do następnej/poprzedniej pozycji w playtree
HOME lub END |  | idź do następnej/poprzedniej pozycji w rodzicielskiej liście
| INSERT lub DELETE |  | idź do następnego/poprzedniego alternatywnego źródła (dostępne tylko w playlistach asx)
| / lub * |  | zmniejsz/zwiększ głośność
| o |  | włącz/wyłącz OSD: nic /pasek poszukiwania / pasek poszukiwania + zegar
| m |  | włącz/wyłącz używanie dźwięku master/pcm
| z lub x |  | dopasuj opóźnienie napisów o +/- 0.1 sekundy
(następujące klawisze są ważne tylko wtedy, gdy używasz opcji `-vo xv`)
| 1 lub 2 |  | dostosuj kontrast
| 3 lub 4 |  | dostosuj jasność
| 5 lub 6 |  | dostosuj odcień
| 7 lub 8 |  | dostosuj nasycenie

GUI

| , i . |  | poprzedni / następny plik
| szary - lub + |  | zmniejsz / zwiększ głośność
| enter |  | rozpocznij odgrywanie
| spacja |  | pauza
| s |  | stop
| a |  | informacje o programie
| l |  | wczytaj plik
| b |  | przeglądarka skórek
| e |  | włącz/wyłącz equalizer
| p |  | włącz wyłącz listę odtwarzania
| f |  | włącz/wyłącz pełny ekran
| m |  | włącz/wyłącz wyciszenie dźwięku

TV

| h lub l |  | wybierz porzedni / następny kanał
| n |  | zmień normę
| b |  | zmień listę kanałów

3.2.2 Konfiguracja sterowania

MPlayer pozwala ci podpiąć dowolny klawisz/przycisk do dowolnej komendy MPlayera za pomocą prostego pliku konfiguracyjnego. Składnia pliku ma postać: nazwa klawisza, a po niej polecenie. Domyślny plik konfiguracyjny jest umieszczony w $HOME/.mplayer/input.conf, ale można go przesłonić za pomocą przełącznika -input conf (względna ścieżka jest traktowana względem $HOME/.mplayer). Przykład:

    ##
    ## MPlayer input control file
    ##

    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

3.2.2.1. Nazwy klawiszy

Możesz obejrzeć pełną listę, wywołując `mplayer -input keylist`.

Klawiatura

- każdy drukowany znak
- SPACE
- ENTER
- TAB
- CTRL
- BS
- DEL
- INS
- HOME
- END
- PGUP
- PGDWN
- ESC
- RIGHT
- LEFT
- UP
- DOWN

Mysz

Uwaga : mysz działa tylko w X-ach

- MOUSE_BTN0 (Lewy przycisk)
- MOUSE_BTN1 (Prawy przycisk)
- MOUSE_BTN2 (Środkowy przycisk)
- MOUSE_BTN3 (Kółko)
- MOUSE_BTN4 (Kółko)
- ...
- MOUSE_BTN9

Joystick

Uwaga : obsługa joystick-a musi zostać włączona podczas kompilacji

- JOY_RIGHT lub JOY_AXIS0_PLUS
- JOY_LEFT lub JOY_AXIS0_MINUS
- JOY_UP lub JOY_AXIS1_MINUS
- JOY_DOWN lub JOY_AXIS1_PLUS
- JOY_AXIS2_PLUS
- JOY_AXIS2_MINUS
- ....
- JOY_AXIS9_PLUS
- JOY_AXIS9_MINUS

3.2.2.2. Polecenia

Pełną listę zobaczysz, wywołując `mplayer -input cmdlist`

- seek (int) val [(int) type=0]

  Przeskocz do konkretnego miejsca w filmie.
  Type 0 to skok względny o +/- val sekund.
  Type 1 to skok do val % filmu.

- audio_delay (float) val

  Dostosuj opóźnienie dźwięku o val sekund

- quit

  Wyjdź z MPlayera

- pause

  Zatrzymaj/wznów odgrywanie

- grap_frames

  Ktoś wie?

- pt_step (int) val [(int) force=0]

  Idź do nast/poprz pozycji w drzewie. Znak val określa kierunek.
  Jeśli nie ma żadnego dostępnej pozycji w podanym kierunku - nie stanie się nic, o ile force jest niezerowe.

- pt_up_step (int) val [(int) force=0]

  Jak pt_step ale skacze do nast/poprz w liście rodzicielskiej. To jest użyteczne do przerwania wewnętrznej pętli w playtree.

- alt_src_step (int) val

  Kiedy dostępne jest więcej niż jedno źródło, wybiera nast/poprz (tylko z asx playlist).

- sub_delay (float) val [(int) abs=0]

  Dostosouje opóźnienie napisów o +/- val sekund albo ustawia je na val skund, gdy abs jest niezerowe.

- osd [(int) level=-1]

  Przełącza tryb osd albo ustawia na dany poziom, gdy level > 0.

- volume (int) dir

  Zwieksza/zmniejsza głośność

- contrast (int) val [(int) abs=0]
- brightness (int) val [(int) abs=0]
- hue (int) val [(int) abs=0]
- saturation (int) val [(int) abs=0]

  Ustawia/Dostosowuje parametry obrazu. Zakres val: od -100 do 100.

- frame_drop [(int) type=-1]

  Przełącza/Ustawia tryb opuszczania klatek.

- sub_pos (int) val

  Dostosowuje pozycję napisów.

- vo_fullscreen

  Przełącza do trybu pełnoekranowego (fullscreen).

- tv_step_channel (int) dir

  Wybiera nast/poprz kanał tv.

- tv_step_norm

  Zmienia TV norm.

- tv_step_chanlist

  Zmienia listę kanałów.

- gui_loadfile
- gui_loadsubtitle
- gui_about
- gui_play
- gui_stop
- gui_playlist
- gui_preferences
- gui_skinbrowser

Akcje GUI

3.2.3. Sterowanie za pomocą LIRC

Linux Infrared Remote Control - użyj łatwego w budowie, domowej roboty odbiornika IR, (prawie) dowolnego pilota i kontroluj za jego pomocą swoje linux box! Więcej na ten temat na www.lirc.org.

Jeśli zainstalowałeś pakiet lirc, configure wykryje go automatycznie. Jeśli inicjalizacja LIRC zakończyło się dobrze, MPlayer poinformuje cię o tym na starcie w następujący sposób: "Setting up lirc support...". Zawiadomi cie także wtedy, gdy pojawią się błędy. Jeśli nie wspomni o LIRC w ogóle, oznacza to, że obsługa LIRC nie została wkompilowana. To tyle :-)

Nazwa aplikacji dla MPlayera, to - nie zgadłbyś - 'mplayer'. Możesz używać dowolnych poleceń mplayera, nawet kilka na raz, oddzielając je za pomocą "\n". Nie zapomnij włączyć flagi powtarzania w .lircrc, kiedy to ma sens (seek, volume, itp.). Oto wyrywek z mojego .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 odpowiada ci standardowa lokalizacja pliku lirc-config (~/.lircrc) użyj przełącznika -lircconf <nazwa_pliku>, aby podać inny plik.

3.2.4. Tryb slave

Tryb slave pozwala na zbudowanie prostego frontend-u dla MPlayera. Kiedy jest włączony (za pomocą przełącznika -slave), MPlayer bedzie czytał polecenia rozdzielone nowymi liniami (\n) ze standardowego wejścia.

3.3. Przesyłanie przez sieć i rurki

MPlayer potrafi odgrywać pliki przesyłane przez sieć, za pomocą protokołu HTTP lub MMS.

Odtwarzanie uruchamia się przez zwyczajne podanie adresu URL w linii poleceń. MPlayer honoruje również zmienną środowiskową http_proxy i używa proxy jeśli jest ono dostępne. Proxy może być również wymyszone:

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

MPlayer potrafi czytać ze standardowego wejścia (NIE z nazwanych potoków (pipes)). Można to zastosować do odgrywania z FTP:

`wget ftp://micorsops.com/something.avi -O - | mplayer -`

Uwaga:rekomendowane jest włączenie CACHE podczas odgrywania przez sieć:

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

4. sekcja FAQ

5. sekcja CD/DVD

6. Różne systemy operacyjne

6.1. Pakiety Debiana

Aby zbudować pakiet, zdobądź wersję cvs, albo .tgz i rozpakuj ją. Przejdź do katalogu z programami:

        cd main
        fakeroot debian/rules binary

(... mplayer wykrywa sprzęt/oprogramowanie, buduje się i ... ) dpkg-deb: building package `mplayer' in `../mplayer_0.18-1_i386.deb'.

A teraz jako root:

        dpkg -i ../mplayer_0.18-1_i386.deb as root.

Oto, jak to wygląda:

    	eyck@incubus:/src/main$ sudo dpkg -i ../mplayer_0.18-1_i386.deb
    	Password:
    	(Reading database ... 26946 files and directories currently installed.)
    	Preparing to replace mplayer 0.17a-1 (using ../mplayer_0.18-1_i386.deb)
    	Unpacking replacement mplayer ...
    	Setting up mplayer (0.18-1) ...

6.2. FreeBSD

Aby zbudować pakiet, będziesz potrzebował GNU make (gmake, /usr/ports/devel/gmake), pochądzący z BSD make nie zadziała.

Aby uruchomić MPlayera, będziesz musiał rekompilować jądro z "options USER_LDT" (o ile nie używasz -CURRENT, gdzie to jest domyślne). Jeśli masz CPU z SSE, uzyj również "options CPU_ENABLE_SSE", aby go używać (FreeBSD-STABLE jest wymagane, albo użyj łat na jądro).

Jeśli MPlayer narzeka, że: "CD-ROM Device '/dev/cdrom' not found!", stwórz link symboliczny: `ln -s /dev/(your_cdrom_device) /dev/cdrom`

Nie ma obsługi DVD dla FreeBSD jak dotąd.

6.3. Solaris

MPlayer powinien działać na Solaris 2.6 lub nowszym.

Odtwarzanie plików AVI najlepiej działa na Solaris x86, ponieważ jest opcja do użycia kodeków win32 na platformie x86 lub mogą być użyte instrukcje MMX/MMX2/3DNow/utp do MP3/DivX/DVD/czegokolwiek. Na Solaris SPARC naprawdę rzadko spotkać się możesz z niedziałaniem obrazu lub dźwięku w plikach AVI z powodu braku kodeków video/audio używających biblioteki Win32 DLL. Natomiast powinny działać filmy DivX/OpenDivX z kodekiem libavcodec.

Na systemach UltraSPARC, MPlayer korzysta z rozszerzeń VIS (równoważnym MMX), aktualnie tylko w libmpeg2, libvo i libavcodec, ale nie w mp3lib. Możesz oglądać plik VOB na 400Mhz CPU. Trzeba zainstalować mLib.

Aby zbudować pakiet, potrzebny ci będzie GNU make (gmake, /opt/sfw/gmake), pochądzący z Solarisa make nie zadziała. Typowy błąd, jaki się pojawi podczas budowania za pomocą solarisowego make zamiast GNU make, to:

       % /usr/ccs/bin/make
       make: Fatal error in reader: Makefile, line 25: Unexpected end of line seen

Na Solaris SPARC potrzebować będziesz kompilatora GNU C/C++ Compiler; nie ma znaczenia czy kompilator GNU C/C++ jest skonfigurowany z czy bez GNU assemblera.

Na Solaris x86 potrzebny jest GNU assembler i kompilator GNU C/C++ skonfigurowany tak, aby używał GNU assemblera! Kod mplayera na platformie x86 dużo korzysta z instrukcji MMX, SSE i 3DNOW!, które nie mogą być skompilowane za pomocą assemblera Sun'a `/usr/ccs/bin/as`.

Skrypt configure usiłuje dowiedzieć się, który program assemblera jest używany przez twoje polecenie "gcc" (w przypadku nieudanej autodetekcji, użyj opcji "--as=/tam/gdzie/zainstalowales/gnu-as", aby poinformować skrypt configure, gdzie może on znaleźć GNU "as" w twoim systemie).

Komunikat o błędzie z configure w systemie Solaris x86, stosującym GCC bez GNU assemblera:

       % configure
       ...
       Checking assembler (/usr/ccs/bin/as) ... , failed
       Please upgrade(downgrade) binutils to 2.10.1...

(Rozwiązanie: Zainstaluj i użyj gcc skonfigurowanego z "--with-as=gas")

Typowy błąd podczas użycia kompilatora GNU C nie stosującego GNU as:

       % gmake
       ...
       gcc -c -Iloader -Ilibvo -O4 -march=i686 -mcpu=i686 -pipe -ffast-math
    	-fomit-frame-pointer  -I/usr/local/include   -o mplayer.o mplayer.c
       Assembler: mplayer.c
       "(stdin)", line 3567 : Illegal mnemonic
       "(stdin)", line 3567 : Syntax error
       ... more "Illegal mnemonic" and "Syntax error" errors ...

Dla obsługi DVD musisz mieć zainstalowane libcss z nałożoną łatą. Łatę znajdziesz tu: http://www.tools.de/solaris/mplayer/.

Z powodu dwóch błędów w systemie solaris 8 x86, nie możesz wydajnie odtwarzać DVD przy pojemności >4GB:

- The sd(7D) driver on solaris 8 x86 driver has bug when accessing a disk block >4GB on a device using a logical blocksize != DEV_BSIZE (i.e. CDROM and DVD media). Due to a 32bit int overflow, a disk address modulo 4GB is accessed. (http://groups.yahoo.com/group/solarisonintel/message/22516)
- The similar bug is present in the hsfs(7FS) filesystem code (aka ISO9660), hsfs currently does not support partitions/disks >4GB, all data is accessed modulo 4GB (http://groups.yahoo.com/group/solarisonintel/message/22592)

On Solaris with an UltraSPARC CPU, you can get some extra speed by using the CPU's VIS instructions for certain time consuming operations. VIS acceleration can be used in MPlayer by calling functions in Sun's mediaLib.

VIS accelerated operations from mediaLib are used for mpeg2 video decoding and for color space conversion in the video output drivers.

6.4. StrongARM

MPlayer, jak doniesiono, kompiluje się na StrongARM. Zastosuj następującą linię poleceń:

      ./configure --target=arm-linux --disable-css --with-x11libdir=/usr/arm/lib
    	      --with-x11incdir=/usr/arm/lib --disable-gcc-checking

6.5. Silicon Graphics Indigo / IRIX

Doniesiono, że pracuje. Najprawdopodobniej musisz użyć sterownika sgi ao. Może ktoś ma bliższe informacje?

6.6. QNX

Działa. Musisz ściągnąć i zainstalować SDL dla QNX. Następnie uruchom MPlayera z opcjami: `-vo sdl:photon` i `-ao sdl:nto`, a powinno działać szybko.

Wyjście `-vo x11` jest wolniejsze nawet niż w Linuksie, gdyż QNX ma tylko emulację X-ów, która jest BARDZO wolna. Używaj więc SDL.

6.7. OpenBSD

Aby zbudować pakiet, będziesz potrzebował GNU make (gmake, /usr/ports/devel/gmake), native BSD make nie zadziała, a także najnowsze binutils (włączając objcopy).

Z powodu ograniczeń w różnych wersjach gas (relocation vs mmx), musisz przeprowadzić dwa kroki kompilacji: najpierw upewnij się, że non-native jest jako pierwszy w PATH i wykonaj '`gmake -k`', a następnie się upewnij, że wersja native jest używana i wykonaj '`gmake`'.

Aby użyć Win32 DLLs z MPlayerem, musisz przekompilować jądro z opcją "`USER_LDT`".

Jeżeli MPlayer zgłasza problem ze znalezieniem '/dev/cdrom' lub '/dev/dvd', zrób link symbolliczny, np. `ln -s /dev/rcd0c /dev/dvd`

Dodatek A - Autorzy

UWAGA: *NIE* wysyłaj raportów o błędach, próśb o pomoc i życzeń na przyszłość wprost do autorów!

Przeczytaj dodatek C i zasubskrybuj listę dyskusyjną użytkowników Mplayera

Projekt MPlayer:

- Árpád Gereöffy (A'rpi/ESP-team)
  - kod odgrywarki (demultiplekser strumienia mpeg i parser avi/asf, synchronizacja A-V, przeszukiwanie...)
  - mp3lib, oparty na żródłach mpglib [dekoder dźwięku MP3]
  - getch2 [obsługa klawiatury]
  - pewne zmiany w kodzie libmpeg2 (progressive frames, bitrate i obsługa fps)
  - usprawnienia libvo: dodanie obsługi OpenGL, poprawa błędów w sterowniku mga...
  - triple buffering i obsługa YUY2 (dla DivX/MPEG4) w sterowniku mga_vid
  - skrypty w katalogu TVout (TVout w Matrox G400DH, przeczytaj documentację)
  - hacking DivX/Mpeg4 VfW codecs to get YUV output
  - optymalizacja prędkości dekodera opendivx (zobacz opendivx/ChangeLog)
  - kod wyświetlający OSD i SUB
  - integracja ffmpeg/libavcodec
  - obsługa DivX4Linux (ProjectMayo) (przeczytaj documentację)
  - Nowa obsługa DVD z użyciem libdvdread
  - obsługa DVB
  - wyjście MPEG PES i obsługa kart DVB
  - wszystko pozostałe, co nie jest nigdzie wymienione
- Zoltán Ponekker (Pontscho/Fresh!)
  - skrypt configure i Makefiles dla łatwej kompilacji
  - system GUI
  - obsługa 3DNow! w mp3lib
  - obsługa 3DNow! w fastmemcpy.h
  - różne zmiany w sterownikach X11 (obsługa klawiaturyg, pełny ekran, wykrywanie bpp, itp)
  - libvo: dodanie sterownika xmga, obsługa pełnego ekranu z xv
  - obsługa miksera dźwięku (głośność)
- Gábor Lénárt (LGB)
  - usprawnienia w skrypcie ./configure
  - usprawnienia Makefiles
  - wstępna obsługa DVD
  - różne poprawki kosmetyczne i naprawa błędów w X11
  - przerobienie dokumentacji na format HTML
- Gábor Bérczi (Gabucino)
  - autor i maintainer documentacji
  - węgierskie tłumaczenie documentacji, strona domowa i odpowiedzi na prośby o pomoc
  - projekt i graficzna szata drugiej strony domowej
  - maintainer strony domowej
  - testowanie,porównanie jakości i szybkości kodeków
  - operator kanałów IRC (#MPlayer is user channel)
  - eksperymentalny port dla MINIXa :) (a co w tym śmiesznego?)
  - projekt formatu napisów MPsub
- Szabolcs Berecz (Szabi)
  - parser plików codecs.conf
  - parser pliku config i linii poleceń
  - poprawki mga_vid, opcja module itp..
  - obsługa fbdev w libvo
  - obsługa napisów typu 7
- László Megyer (Lez, Laaz)
  - czytnik SUB
  - wyłączenie screensaver+DPMS w libvo
- Gyula László (Chass, Tégla)
  - pierwsze fonty (mp_font1.zip)
  - projekt i szata graficzna trzeciej strony domowej
  - projekt i szata graficzna czartej (obecnej)
- Zoltán Márk Vicián (Se7en)
  - obsługa SVGAlib w libvo
- Alex Beregszaszi (al3x)
  - sterownik wyjścia ALSA w libao2
  - sterownik wyjścia vo_ggi w libvo (www.ggi-project.org)
  - obsługa kodeków xanim codecs
  - obsługa plików VIVO
  - obsługa plików odbioru TV
  - Quicktime hackings
  - obsługa libavcodec wn MEncoderze
  - demukser formatu plików RM
  - mencoder framecopy
  - obsługa yuv4mpeg1
  - zmiany w demuxerze Nuppelvideo
  - subconfig
  - VIDIX and libdha hackings
  - sterownik Matrox przeniesiony do Vidix
  - sterownik wyjścia wideo XVidix
  - i inne różne rzeczy (w libvo, synchronizacji libmad, dekoderze i loaderze audio/video
- Andreas Ackermann (Acki)
  - obsługa LIRC (zobacz documentację)
  - obsługa DGA w libvo
- Felix Bünemann (Atmos)
  - maintainer sterownika SDL
  - poprawki w dodatkowych formatach YUV
  - nowy font (mp_font2.zip)
  - obsługa wyjścia do pliku PNG w libvo
  - obsługa flipping (dla Indeo 3/4, itp.)
  - sterownik dźwięku SDL w libao2
  - zapisywarka surowych plików PCM/WAVE dla libao2
  - obsługa dźwięku OggVorbis
  - kod różnego rodzaju
  - port Win32 (Cygwin)
  - pierwszorzędne wsparcie w codecs.conf (nigdy nie zastosowany ;)
  - obsługa DivX5Linux
  - wsparcie dla dekodowania AAC via libfaad2
  - post Darwin (MacOS X)
- TeLeNiEkO
  - hiszpańskie tłumaczenie dokumentacji
- Michael Graffam
  - obsługa XF86VidMode dla vo_x11 i vo_dga
  - kod przełączania trybów video w vo_dga
- Jens Hoffmann
  - obsługa dodatkowych formatów YUV
  - wykrył duży problem z BITMAPINFOHEADER -> rozwiązujący pikselizację ASV2
- Nick Kurshev
  - optymalizacją memcpy dla AMD K7 oraz Intel Pentium III (fastmemcpy.h)
  - info o dostrajaniu CDROM
  - dalsza optymalizacja dla 3DNow! w mp3lib, libac3 i ffmpeg
  - rosyjskie tłumaczenie dokumentacji
  - radeon_vid, rage128_vid, radeonfb
  - libvo driver: vo_vesa
  - projekt i zaprogramowanie VIDIX i libdha
- German Gomez Garcia
  - wyjście SPDIF AC3 dla SBLive!
- Dariusz Pietrzak (Eyck)
  - obsługa pakietów debiana (zobacz: debian/* i tą dokumentację)
  - obsługa formatu napisów vplayera
  - wstępna obsługa dla formatu napisów .RT
- Marcus Comstedt
  - początkowa obsługa solaris8-x86
  - poprawki w configure
- Jürgen Keil
  - łata na MPlayera umożliwiająca pracę na Solaris 8 x86
  - różne poprawki (win32, configure, itp.)
  - sterownik dźwięku SUN w libao2
  - obsługa mediaLib w libavcodec
- Vladimir Kushnir
  - łata na MPlayera umożliwiająca pracę na FreeBSD x86
- Bertrand BAUDET
  - obsługa przesyłania przez sieć
- Artur Zaprzala
  - Kompletny generator fontów: program + font OSD (TOOLS/subfont-c)
- lanzz@lanzz.org
  - plugin GIMPa do generowania fontów (TOOLS/subfont-gimp)
- Adam Tla/lka
  - recenzja osd/sub, poprawki, optymalizacja, obsługa utf8
  - różne poprawki
- Folke Ashberg
  - własny sterownik Alib (-vo aa)
- Kamil Toman
  - czeskie fonty
- Ivan Kalvatchev
  - obsługa MPEG2 z przeplotem (libmpeg2)
  - projekt libvo2
- pl
  - nowy skrypt ./configure
  - ogólne utrzymywanie kodu, poprawki, nadsyłanie łat
- Michael Niedermayer
  - nowy kod postprocessingu (z rozplotem itp...)
  - programowe skalowanie, obsługa C/MMX/MMX2/3DNow (swscale.c)
  - różne konwertery rgb/yuv bpp
  - nowy, lepszy kod IDCT dla libavcodec
  - wykrywanie runtime cpu
  - optymalizacja SSE w liba52
- Sven Goethel
  - sterownik libvo: vo_gl2
- joy_ping
  - poprawki ao_alsa9
- Eric Anholt
  - kod wykrywania CPU
- Jiri Svoboda
  - obsłyga napisów typu AQT
  - obsługa CRTC2 YUV w mga_vid
  - obsługa wyjścia wideo DirectFB
- Oliver Schoenbrunner
  - sterownik dźwięku SGI
  - obsługa MIPS
- Jeroen Dobbelaere
  - obsługa libmad
- David Holm
  - obsługa DXR3
  - przeniesienie libmp1e
- Panagiotis Issaris
  - opcja -playlist
  - obsługa NuppelVideo
- Mike Melanson
  - implementacja open source kodeka MS Video1
  - demukser dekoder FLI
  - zunifikowany dekoder ADPCM (obsługuje IMA/DVI, MS ADPCM i kilka innych)
  - demukser plików FILM (.cpk)
  - demukser plików RoQ
  - dekoder RoQ Audio/Video
  - dekoder QT SMC
  - dekoder QT RLE
- Tobias Diedrich
  - terownik dźwięku wyjścia NAS
- Kilian A. Foth
  - tryb -slave
- Tim Ferguson
  - open source dekorer Cinepak
  - open source dekoder CYUV
- Sam Lin
  - łata -wid (plugger)
- Johannes Feigl
  - niemieckie tłumaczenie dokumentacji
  - pewne poprawki w configure, niewielkie łaty
  - znalazł kogoś (Thilo Wunderlich), kto przysłał kartę DVB
- Kim Minh Kaplan
  - obsługa wyświetlania napisów DVD i VobSub
- Brian Kuschak
  - obsługa przesyłania RTP (odczyt)
- Stephen Davies
  - obsługa olbrzymich plików wideo (>2^32 bajtów)
  - dźwięk otaczający
- Rik Snel
  - sterownik wyjścia wideo `zr`
- Anders Johansson
  - system wtyczek audio, pewne efekty dźwiękowe
- Roberto Togni
  - Dekoder open source QT RPZA
  - Dekoder open source HuffYUV
- Wojtek Kaniewski
  - Obsługa kółka myszki
- Fredrik Kuivinen
  - OSD/napisy na zewnątrz filmu - dla SDL

Główni testerzy:

- Tibor Balázs (Tibcu)
- Péter Sasi (SaPe)
- Christoph H. Lampert
- Attila Kinali
- Dirk Vornheder
- Bohdan Horst (Nexus)

Kodeki i biblioteki:

- Aaron Holtzman: <aholtzma@engr.uvic.ca>
  - autor ac3dec (i libac3) [dekoder dźwięku AC3]
  - mga_vid driver [Matrox G200/G400 YUV Back-end Scaler]
  - mpeg2dec [szybki dekoder wideo MPEG1/MPEG2, obecnie używany w Mplayerze]
- Michel Lespinasse: <walken@zoy.org>
  - wykonał duże zmiany w libmpeg2 przyśpieszające działanie i usprawniające mpeg
- Eugene Kuznetsov: <divx@euro.ru>
  - autor avifile [odgrywarka biblioteki AVI pod linuksa, używająca kodeków Win32 VfW/ACM
  - technniczne wsparcie dotyczące formatów AVI i ASF, oraz sposobu na uzyskanie YUV za pomocą VfW...
  - techniczne wsparcie w divx4linux
- Zdenek Kabelac: <kabi@informatics.muni.cz>
  - obecny maintainer avifile(?)
  - techniczne wsparcie wrzeczach związanych z win32 i zegarami
- Gerard Lantau: <glantau@yahoo.fr>
  - autor ffmpeg/libavcodec, maintainer (open source mpeg, mjpeg, divx en/decoder)
- Projekt Mayo: <http://www.projectmayo.com>
  - autorzy kodeków OpenDivX
- Michael Hipp:
  - autor mpglib [nie jest używany wprost, ale w pewnych częściach w mp3lib]
- Mark Podlipec:
  - autor xa_gsm.c [kodek dźwięku MS-GSM] [z biblioteki GSM autorstwa Jutta Degener i Carsten Bormann]
- Jake Janovetz:
  - autor remez.c [używany do obliczeń współczynników filtracji dźwięku]
- Vivien Chappelier, Damien Vincent:
  - autorzy libFAME [szybkiego kodera mpeg-1, uzywanego poprzez -vo mpegpes/-vo dxr3]

Ich kod nie jest używany w obecnej wersji odgrywarki, ale otrzymuję pewne pomysły i techniczne wsparcie z ich strony:

- John F. McGowan http://www.jmcgowan.com/
  - autor i kolekcjoner AVI FAQ. [strona w wieloma użytecznymi dokumentami i kodekami oraz avi fmt]
- Dirk Farin: <farin@ti.uni-mannheim.de>
  - autor dvdview [dekoder wideo MPEG1/MPEG2, używany w v0.5-v0.8]
- Adam Williams: <broadcast@earthling.net>
  - autor libmpeg3 (oraz xmovie) [dekoder wideo MPEG1/MPEG2, używany w v0.1-v0.4]

Dodatek A/2 - maintainerzy kodu i dokumentacji MPlayera

Strona domowa

- Design: Chass i Tornado
- Zawartość: Gabucino

Dokumentacja w języku angielskim

- dokumentacja użytkownika: Gabucino
- recenzja, poprawki gramatyczne: Diego Biurrun, Nilmoni Deb
- wejściowy layer, lirc, dokumentacja trybu slave: Albeu
- dokumentacja tech/*: A'rpi

Tłumaczenia dokumentacji

- węgierskie: Gabucino
- niemieckie: Johannes Feigl
- francuskie: Stephane Marteau (nieaktualne)
- włoskie: TeLeNiEkO (nieaktualne)
- rosyjskie: Nick Kurshev (nieaktualne)
- polskie: Justyna Biała
- włoskie: Matteo Balduzzi

Platformy sprzętowe/porty:

- pakiety DEBIANa: Dariusz Pietrzak
- wsparcie dla FreeBSD: Vladimir Kushnir
- wsparcie dla BSD/OS: Steven Schultz
- wsparcie dla Solaris 8: Jürgen Keil, pl
- wsparcie dla MIPS: Oliver Schoenbrunner
- wsparcie dla Win32/Cygwin: Atmosfear

Kod MPlayera:

- synchronizacja A-V: A'rpi
- libmpdemux, libmpcodecs: A'rpi
- wejście TV: Alex
- obsługa DVD (nowe - dvdread/dvdcss): A'rpi
- obsługa DVD (stare - libcss): LGB
- przesyłanie przez sieć : Bertrand BAUDET
- parser/reader/writer plików z napisami ascii: Lez
- napisy DVD/VOB: Kim Minh Kaplan
- renderer SUB/OSD: Adam Tla/lka
- pliki konfiguracyjne i parser linii poleceń: Szabi
- playtree, input: Albeu
- postproc, konwertery colorspace: Michael Niedermayer
- obsługa LIRC (stara): Acki
- VIDIX core, libdha: Nick Kurshev

Sterowniki libvo:

- vo_3dfx.c - PRZESTARZAŁE, użyj w zamian xv lub tdfxfb
- vo_tdfxfb.c - Mark Zealey (mark@zealos.org)
- vo_aa.c - Folke Ashberg
- vo_directfb.c - Jiri Svoboda
- vo_dga.c - Acki
- vo_dxr3.c - David Holm
- vo_fbdev.c - Szabi
- vo_ggi.c - al3x
- vo_gl.c - A'rpi
- vo_gl2.c - Sven Goethel
- vo_md5.c - A'rpi
- vo_mga.c - A'rpi
- vo_mpegpes.c - A'rpi
- vo_null.c - A'rpi
- vo_pgm.c - A'rpi
- vo_png.c - Atmos
- vo_sdl.c - Atmos
- vo_svga.c - Matan Ziv-Av
- vo_syncfb.c - PRZESTARZAŁE, użyj w zamian mga
- vo_vesa.c - Nick Kurshev
- vo_x11.c - Pontscho
- vo_xmga.c - Pontscho
- vo_xv.c - Pontscho
- vo_xvidix.c - al3x
- vo_zr.c - Rik Snel

Sterowniki VIDIX:

- genfb_vid - al3x
- mach64_vid - Michael Niedermayer
- mga_vid - al3x ?
- nvidia_vid - al3x (development stopped - don't expect it)
- radeon_vid - Nick Kurshev
- rage128_vid - Nick Kurshev

Sterowniki libao2:

- ao_alsa5.c - al3x
- ao_alsa9.c - al3x (poprawione przez joy_ping)
- ao_null.c - A'rpi
- ao_oss.c - A'rpi
- ao_pcm.c - Atmos
- ao_sdl.c - Atmos
- ao_sgi.c - Oliver Schoenbrunner
- ao_sun.c - Jürgen Keil

Narzędzia:

- subfont-c - Artur Zaprzała
- subfont-GIMP - lanzz@lanzz.org
- *.pl - Atmos
- x2mpsub - Gabucino
- mencvcd - Juergen Hammelmann (juergen.hammelmann@gmx.de)
- others - A'rpi

Dodatek B - Listy dyskusyjne

Istnieje kilka publicznych list dyskusyjnych o MPlayerze. Zasubskrybować je można pod podanymi adresami:

- Lista developerów MPlayera:
  http://mplayerhq.hu/mailman/listinfo/mplayer-dev-eng

  Jest to lista o rozwijaniu Mplayera! Mówi się tam o zmianach w interfejsie/API, nowych bibliotekach, optymalizacji kodu, zmianach w ./configure. Tu też są wysyłane łaty. NIE wysyła się na tę listę raportów o błędach, pytań użytkowników, żądań na przyszłość! Na tej liście powinien być zachowany mały ruch.

- Lista użytkowników MPlayera:
  http://mplayerhq.hu/mailman/listinfo/mplayer-users

  Tu możesz wysyłać:

  - raporty o błędach (ale po przeczytaniu sekcji Znane błędy i Dodatku C)
  - żądania na przyszłość (po przeczytaniu CAŁEJ tej dokumentacji)
  - własne pytania (po przeczytaniu CAŁEJ tej dokumentacji)
- Węgierska lista użytkowników MPlayera:
  http://mplayerhq.hu/mailman/listinfo/mplayer-felhasznalok

  - językiem listy jest węgierski
  - Temat? Zobaczymy co da się z tym zrobić...jak dotąd przeważnie trafiają tam wstydliwe i RTFM pytania :(
- Lista użytkowników MPlayera posiadających Matrox G200/G400/G450/G550:
  http://mplayerhq.hu/mailman/listinfo/mplayer-matrox

  Wysyłaj tu pytania związane z matrox

  - sprawy dotyczące mga_vid
  - oficjalne beta sterowniki dla matroxa (dla X 4.x.x)
  - problemy związane z matroxfb-TVout.
- Lista użytkowników MPlayera, posiadających karty DVB:
  http://mplayerhq.hu/mailman/listinfo/mplayer-dvb

  Sprawy związane ze sprzętowo dekodującą kartą DVB. (Nie jest to dxr3!)

- MPlayer CVS-log:
  http://mplayerhq.hu/mailman/listinfo/mplayer-cvslog

  Wysyłaj tu pytania związane tylko ze zmianami w CVS (jeśli np. nie rozumiesz, dlaczego zmiana jest wymagana, albo jeśli masz lepszą poprawkę, albo też, jeśli zauważyłeś problem/błądn w łacie). Bądź pewien, że developer zajmujący się zagadnieniem, o które pytasz, czyta tą listę!

UWAGA: Językiem powyższych list jest ANGIELSKI o ile nie zaznaczono wyraźnie, że jest inaczej. Nie wysyłaj, proszę, wiadomości w innych językach!

UWAGA: Możesz skorzystać z przeszukiwalnego archiwum list tutaj.

Dodatek C - Jak zgłaszać błędy

Dodatek D - Znane błędy

Błędy/problemy związane z konkretnym systemem/procesorem:

- SIGILL (signal 4) na P3 i jądrach 2.2.x:
  Źródło problemu: jądra 2.2.x nie mają właściwej (działającej) obsługi SSE
  Rozwiązanie: upgrade jądra do 2.4.x
  Obejście problemu: ./configure --disable-sse
- General SIGILL (signal 4):
  Źródło problemu: skompilowałeś Mplayera na innej maszynie, niż uruchamiasz (np. skompilowany na P3 a uruchomiony na celeronie)
  Rozwiązanie: skompiluj MPlayera na tej maszynie, na której chcesz go używać!
  Obejście problemu: ./configure --disable-sse itp. opcje
- "Internal buffer inconsistency" w czasie pracy MEncodera:
  Źródło problemu: znany błąd gcc 2.96, nie ma do tego poprawek jak dotąd. Jeśli masz gcc 2.95, musisz mieć zatem bibliotekę libmp3lame skompilowaną z gcc 2.96 (czy przypadkiem nie zainstalowaną z pakietu deb/rpm?). Sprawdź, którą bibliotekę znalazł MEncoder: ldd mencoder.
- Zaśmiecony dźwięk MP2/MP3 na PPC:
  Źródło problemu: znany błąd w kompilacji GCC na platformach PPC, nadal nie poprwiony.
  Obejście problemu: użyj dekoderów FFmpeg MP1/MP2/MP3 (które są wolne) (`-ac ffmpeg`)
- sig11 w libmpeg2 podczas jednoczesnego skalowania i kodowania:
  Źródło problemu: znan błąd GCC 2.95.2 MMX, zrób upgrade do 2.95.3.

Różne problemy z synchronizacją A-V dźwięku:

Ogólnie, opóźnienia dźwięku albo szarpany dźwięk (pojawiające się w wielu, bądź wszystkich plikach):

- najbardziej popularne: pełne błędów sterowniki dźwięku! - spróbuj uzyć innych sterowników, spróbuj emulacji ALSA 0.9 OSS z -ao oss, a także spróbuj -ao sdl,czasem to pomaga. Jeśli tówj plik odtwarzany jest dobrze z -nosound, wówcza możesz być pewien , ze to sterownik dźwięku dla twojej karty jest problemem.
- problemy z buforem dźwięku (źle wykryty rozmiar bufora)
  Obejście problemu: opcja: mplayer -abs
- problemy z samplerate (częstotliwością próbkowania) - być może twoja karta nie obsługuje samplerate używanej w twoich plikach - wypróbuj ten plugin zmieniający częstotliwość próbkowania.(-aop)
- wolna maszyna (cpu albo vga)
  wypróbuj -vo null, jeśli z tym będzie działało dobrze, oznacza to, że masz wolną kartę/sterownik VGA
  Obejście problemu: kup szybszą kartę, albo przeczytaj tą dokumentcję o tym, jak przyśpieszyć odgrywanie
  Spróbuj również -framedrop

Zła synchronizacja/opóźnianie przy jednym lub kilku plikach:

- zły plik
  Obejście problemu:
  - opcje: -ni albo -nobps (dla plików złych albo bez przeplootu)
  oraz/lub
  - -mc 0 (wymagane dla plików ze złym przeplotem dźwięku VBR)
  oraz/lub
  - opcja -delay albo klawisze +/- keys podczas działania, aby dostosować opóźnienie
  Jeśli nic nie pomogło, wyślij nam plik, a my go sprawdzimy (i naprawimy).
- twoja karta dźwiękowa nie obsługuje odgrywania w częstotliwości 48Khz
  Obejście problemu: kup lepszą kartę dźwiękową... albo spróbuj zmniejszyć ilość fps do 10% (użyj -fps 27 dla filmu o 30fps) albo użyj pluginu zmieniającego częstotliwość próbkowania
- wolna maszyna
  (jeśli A-V nie jest w okolicach 0, a ostatni numer w linii stanu zwiększa się)
  Obejście problemu: -framedrop

Kompletny brak dźwięku:

- twój plik używa nieobsługiwanego kodeka dźwieku
  Obejście problemu: przeczytaj dokumentację i pomóż nam dodać obsługę tego kodeka

Brak obrazu (po prostu zwykłe szare/zielone okno):

- twój plik używa nieobsługiwanego kodeka obrazu
  Obejście problemu: przeczytaj dokumentację i pomóż nam dodać obsługę tego kodeka
- automatycznie wybrany kodek nie potrafi dekodować tego pliku, spróbuj zmienić kodek za pomocą opcji -vc albo -vfm
- próbujesz odtworzyć plik DivX 3.x z użyciem dekodera opendivx albo XviD (-vc odivx) - zainstaluj Divx4Linux i przekompiluj playera

Problemy z wyjściem wideo:

Pierwsza uwaga: opcje: -fs -vm i -zoom są tylko zalecane, nie są jak dotąd obsługiwane przez wszystkie sterowniki. Więc to nie jest błąd, jeśli nie działają. Tylko kilka sterowników wspiera skalowanie/zooming (zbliżanie/oddalanie), nie oczekuj tego od z11 czy dga.

Migotanie OSD/napisów:
- sterownik x11: przykro mi, ale na razie nie może to zostać naprawione
- sterownik xv: użyj opcji -double

Zielony obraz podczas używania mga_vid (-vo mga / -vo xmga):
- mga_vid źle wykryta ilość pamięci RAM w twojej karcie, przeładuj to używając opcji mga_ram_size