1.2. Instalacja

Przewodnik szybkiej instalacji znajdziesz w pliku README. Proszę, najpierw go przeczytaj, a później wróć do tego dokumentu po bardziej mordercze szczegóły.

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

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

1.2.1. Wymagania sprzętowe

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

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

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

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

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

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

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

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

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

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

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

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

  • directfb - opcjonalna, do pobrania z http://www.directfb.org.

  • cdparanoia - opcjonalna, do obsługi CDDA.

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

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

  • libsmb - opcjonalna, do obsługi Samby.

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

1.2.2. Kodeki

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

    • umożliwia dekodowanie wyżej wymienionych strumieni video na maszynach innych niż x86
    • kodowanie większością wymienionych kodeków
    • ten kodek jest najszybszym dostępnym dla DivX/3/4/5 i innych rodzajów MPEG4. Zalecany!

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

    Notatka

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

    Cechy:

    • potrzebujesz tego do zakodowania, na przykład, filmów nagranych z użyciem różnych kompresorów sprzętowych, jak tunery, kamery cyfrowe (na przykład: DV, ATI VCR, MJPEG)
    • wymagane jeśli chcesz odtwarzać filmy WMV9/WMA9.
    • Nie są potrzebne do starych plików video ASF z MP41 lub MP42 (mimo, że dźwięk VoxWare jest często używany w tych plikach - realizowane jest to przez kodek Win32), lub WMV7. Nie są również potrzebne do WMA (Windows Media Audio), libavcodec ma potrzebne do niego dekodery ze świata wolnego oprogramowania.

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

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

    • 1 lub 2 przejściowe kodowanie przy pomocy MEncodera
    • może odtwarzać stare filmy DivX3 znacznie szybciej niż biblioteki Win32 DLL, ale wolniej niż libavcodec!
    • ma zamknięte źródło i dostępna jest tylko wersja na x86.

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

    • 1 lub 2 przejściowe kodowanie przy pomocy MEncodera
    • ma otwarte źródło, więc jest wieloplatformowa.
    • jest około 2 razy szybsza od divX4 podczas zakodowywania, a osiąga mniej więcej tę samą jakość

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

  • Do dekodowania dźwięku Ogg Vorbis, będziesz musiał poprawnie zainstalować libvorbis. Skorzystaj z pakietów deb/rpm, jeżeli są dostępne lub skompiluj ze źródła (jest to uaktualniana każdej nocy wersja Vorbis CVS spakowana tarem).

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

1.2.3. Karty graficzne

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

1.2.3.1. Karty YUV

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

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

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

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

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

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

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

  • Inne karty: żadna z powyższych?

    • Sprawdź, czy sterownik XFree86 (i Twoja karta) obsługują sprzętową akcelerację. Przeczytaj rozdział Xv, a znajdziesz więcej informacji.
    • Jeżeli nie, oznacza to, że możliwości Twojej karty nie są obsługiwane przez Twój system operacyjny :( Jeżeli sprzętowe skalowanie działa pod Windowsem, nie oznacza to, że będzie działało pod Linuksem lub gdzie indziej, zależy to od sterowników. Większość producentów, ani nie tworzy sterowników dla Linuksa, ani nie publikuje specyfikacji swoich układów graficznych - więc masz pecha, jeśli używasz ich kart. Przeczytaj Karty nieobsługujące YUV.

1.2.3.2. Karty nieobsługujące YUV

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

  • używasz XFree86: sprawdź szczegóły w rozdziale sterownik DGA i sterownik X11. DGA jest zalecany! Spróbuj również DGA przez SDL, czasami jest to lepsze rozwiązanie.
  • nie używasz XFree86: spróbuj użyć któregoś z niżej wymienionych sterowników w podanej kolejności: vesa, fbdev, svgalib, aalib.

1.2.3.3. Karty Cirrus-Logic

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

    • XFree86 3: działa w trybach 8/16bpp. Jednak dla 800x600@16bpp sterownik jest bardzo wolny i nie działa prawidłowo. Zalecane: 640x480@16bpp
    • XFree86 4: Xserver przestaje odpowiadać krótko po starcie, chyba że akceleracja jest wyłączona, jednak wszystko działa wolniej niż na XFree86 3. Brak obsługi XVideo.
    • FBdev: framebuffer może być włączony poprzez sterownik clgenfb znajdujący się w jądrze, jednak u mnie działał tylko w 8bpp, a więc jest bezużyteczny. Źródło clgenfb musi być rozszerzone o ID 7548 przed kompilacją.
    • VESA: karta spełnia tylko standard VBE 1.2, więc nie możesz użyć wyjścia VESA. Nie możesz zastosować obejścia przez UniVBE.
    • SVGAlib: wykrywa starszy układ Cirrusa. Działa, chociaż jest wolny z -bpp 8.

1.2.4. Karty dźwiękowe

  • Soundblaster Live!: z tą kartą możesz używać 4 lub 6 (5.1) kanałowego dekodowania AC3, zamiast 2. Przeczytaj rozdział Programowe dekodowanie AC3. Dla sprzętowej obróbki AC3 musisz użyć ALSA 0.9 z emulacją OSS!
  • C-Media z wyjściem S/PDIF: Możliwa jest sprzętowa obróbka AC3 z tymi kartami, przeczytaj rozdział Sprzętowe dekodowanie AC3.
  • Możliwości innych kart nie są obsługiwane przez MPlayera. Zalecamy, abyś przeczytał sekcję karty dźwiękowe!

1.2.5. Możliwości

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

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

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

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

Potem skompiluj MPlayera:

./configure
make
make install

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

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

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

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

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

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