Mplayer

Z openSUSE wiki

Niekompletny.png Ten artykuł jest niekompletny i wymaga rozbudowy. Szczegóły można znaleźć na stronie dyskusji.

MPlayer jest jednym z najpopularniejszych odtwarzaczy multimediów dla linuksa. Jest wieloplatformowy, bardzo szybki oraz bardzo konfigurowalny. Mimo, iż posiada nakładki takie jak GMPlayer, SMPlayer czy KMPlayer, to jego możliwości najwidoczniejsze są przy uruchamianiu go z konsoli.

Spis treści


Instalacja

Pakiet z programem znajduje się w repozytorium PackMan. Oprócz samego odtwarzacza w pakiecie MPlayer znajduje się również nakładka graficzna (gmplayer), narzędzie od enkodowania filmów (mencoder) oraz skrypt do konwersji filmów do formatu SVCD i VCD (mencvcd). W celu obsługi większej ilości formatów audio i wideo należy jeszcze zainstalować pakiet w32codec-all zawierający windowsowe kodeki których mplayer (oraz inne odtwarzacze działające na linuksie, takie jak xine) nie obsługuje natywnie.

Konfiguracja MPlayera

MPlayer trzyma pliki konfiguracyjne w katalogu ~/.mplayer, oddzielnie dla każdego użytkownika oraz globalnie w /etc/mplayer. Plik zawierający konfigurację dla konsolowej wersji MPlayera to ~/.mplayer/config. Konfigurując MPlayera należy pamiętać o priorytecie opcji:

  1. opcje podane w konsoli,
  2. konfiguracja użytkownika,
  3. ustawienia globalne.

Wyjścia Video

Aby użyć wyjścia video, innego niż domyślne, należy do polecenia mplayer dodać opcję -vo wraz z nazwą wyjścia. Przykład:

mplayer -vo x11 plik.mpg

W celu wybrania jakiegoś wyjścia video jako domyślne, należy w pliku konfiguracyjnym MPlayera (.mplayer/config) dodać linijkę:

vo=wybrane_wyjście_video

xv

Podstawowe i domyślne wyjście MPlayera używające przyśpieszenia sprzętowego. Używaj go, jeśli działa poprawnie w Twoim systemie.

x11

Programowe wyjście video. Jest znacznie wolniejsze od poprzedniego i nie skaluje filmu do pełnego ekranu przy naciśnięciu klawisza f - rozwiązaniem tego może być opcja -vm, zmieniająca rozdzielczość ekranu na odpowiadającą filmowi. Mimo tych wad, to wyjście ma kilka zalet: bez problemu działa z menadżerami okien takimi jak compiz, beryl czy innymi używającymi rozszerzenia composite, na zrzutach ekranu widać klatkę z filmu (a nie niebieski prostokąt) oraz działa z niektórymi kartami nie obsługującymi przyśpieszenia sprzętowego na 2 monitorze.

gl, gl2

Następne wyjścia video, tym razem używające OpenGL. Według dokumentacji MPlayera mają gorszą wydajność od xv. Niemniej, mogą być przydatne - np. przy oglądaniu filmu na dwóch monitorach podpiętych do karty intela. Największa zaleta tego wyjścia to umieszczanie napisów na dole ekranu/okna przy powiększeniu obrazu - bez żadnych specjalnych ustawień pozwala to wyświetlać napisy na "czarnym pasku".

vdpau

Wyjście video pozwalające użyć GPU do dekodowania niektórych formatów wideo. Obecnie wspierane w niektórych kartach Nvidii (więcej w dokumentacji sterownika nvidia) oraz S3 Chrome.

null

"Zerowe" wyjście video. Prosty sposób na odtwarzanie tylko dźwięku z filmów, choć jeśli istnieje taka potrzeba jest lepiej używać opcji -novideo.

Wyjścia Audio

Aby użyć wyjścia audio, innego niż domyślne, należy do polecenia MPlayer dodać opcję -ao wraz z nazwą wyjścia. Przykład:

mplayer -ao esd plik.ogg

W celu wybrania jakiegoś wyjścia audio jako domyślne, należy w pliku konfiguracyjnym MPlayera (.mplayer/config) dodać linijkę:

ao=wybrane_wyjście_audio

oss

OSS (Open Sound System) stary system obsługi dźwięku w Linuksie. Używaj tego wyjścia tylko wtedy, gdy Twoja karta dźwiękowa nie współpracuje z ALSA lub masz problemy z wyjściem ALSA.

alsa

ALSA (Advanced Linux Sound Architecture) jest domyślnym systemem dźwięku w jądrach serii 2.6, kompatybilnym z poprzednim - OSS. Używaj tego wyjścia, jeśli używasz ALSY. Wyjścia opisane poniżej są zwykle nieprzydatne.

arts, esd, pulse

Wyjścia używające serwerów dźwięku aRts (domyślny w KDE 3.x) i ESD(domyślny w starszych wersjach GNOME) oraz PulseAudio (począwszy od 11.0, domyślny w GNOME). Są przydatne tylko dla użytkowników wspomnianych środowisk graficznych, ale lepiej używać wyżej opisanego wyjścia audio.

jack

W porównaniu do dwóch poprzednich, JACK jest rozwiązaniem profesjonalnym. Wyjście to będzie działać tylko w przypadku gdy uruchomiony jest serwer dźwięku jack.

null

"Zerowe" wyjście audio. Prosty sposób na odtwarzanie filmu bez dźwięku, choć jeśli istnieje taka potrzeba jest lepiej używać opcji -nosound.

Napisy

Wybór czcionki

Aby obejrzeć film z napisami w wybranej czcionce TrueType należy do katalogu .mplayer zawierający ją plik z katalogu /usr/share/fonts/truetype. Jego nazwa powinna być zmieniona na subfont.ttf.

Lepiej jednak utworzyć dowiązanie symboliczne do konkretnej czcionki w /usr/share/fonts/truetype. Na przykład, dla czcionki DejaVu Sans wygląda to tak:

ln -s /usr/share/fonts/truetype/DejaVuSans.ttf ~/.mplayer/subfont.ttf

Problem z "polskimi znakami"

Problem kodowania pliku z napisami można rozwiązać na co najmniej dwa sposoby:

Pierwszy sposób - zmiana kodowania pliku z napisami

W systemach Windows powszechną stroną kodową znaków jest Windows-1250 (znane też jako CP-1250), popularnym standardem ISO jest ISO-8859-2, a openSUSE domyślnie używa kodowania UTF-8, będącego najlepszym rozwiązaniem pośród wymienionych tutaj kodowań. Z powodu tych różnic wynikają problemy takie jak brak lub zniekształcone "polskie znaki" w filmach z napisami - MPlayer oczekuje UTF-8. Na szczęście, łatwo pozbyć się tego problemu - najłatwiej jest to zrobić konwertując pliki z napisami za pomocą konsolowego programu iconv.

Najpierw należy rozpoznać kodowanie napisów, na przykład używając polecenia file:

file napisy.txt

Dla kodowania CP-1250 wynik wygląda tak:

napisy.txt: Non-ISO extended-ASCII text, with CRLF line terminators

Jeśli to ISO-8859-2 , wynik będzie taki:

napisy.txt: ISO-8859 text, with CRLF line terminators

Zwykle niespotykany UTF-8 da taki rezultat:

napisy.txt: UTF-8 Unicode text, with CRLF line terminators

Po rozpoznaniu czas na działanie.

iconv -f kodowanie_pliku_z_napisu -t docelowe_kodowanie plik_z_napisami > wynik

Czyli dla pliku napisy.txt w kodowaniu CP-1250 należy przeprowadzić taką operacje:

iconv -f CP1250 -t UTF-8 napisy.txt > wynik.txt

Pojawi się plik wynik.txt zawierający napisy zakodowane w UTF-8.

Wskazówka.png Wskazówka: Jeśli nadal pojawiają się znaki zapytania zamiast polskich znaków, należy dodać opcję -utf8 do polecenia mplayer.
mplayer -utf8 film.avi -sub napisy_do_filmu.txt
Drugi sposób - zmiana oczekiwanego kodowania od pliku z napisami

Można też podać opcję -subcp z odpowiednim argumentem, zamiast konwertować kodowania plików z napisami.

mplayer film.avi -sub napisy_do_filmu.txt -subcp cp1250

Przy częstym używaniu nietypowego kodowania najlepiej jest dopisać w pliku konfiguracyjnym dopisać linijkę (tutaj kodowanie to cp1250):

subcp=cp1250

Używanie napisów

Dobrym zwyczajem, ułatwiającym oglądanie, jest zmiana nazwy pliku z napisami, na taką samą jak ma film (z wyjątkiem rozszerzenia). Przykładowo jeśli film nazywa się:

fajny_film.avi

to plik z napisami powinien nazywać się:

fajny_film.txt

Oczywiście, można to zrobić w inny sposób - wystarczy podać po opcji -sub nazwę pliku z napisami, na przykład:

mplayer film.avi -sub napisy_do_filmu.txt
Opcjonalne napisy zawarte w DVD, mkv czy ogg

MPlayer nie ma również problemów z obsługą napisów zawartych na DVD albo w plikach (np. *.mkv). Informacje o dostępnych napisach MPlayer wyświetla po otworzeniu pliku/płyty, np:

[mkv] Track ID 3: subtitles (S_TEXT/ASS) "ASS", -sid 0, -slang eng

W tym wypadku, w celu wyświetlenia napisów wystarczy dopisać opcje -sid 0 lub -slang eng.

Rozmiar napisów

Zbyt duże napisy można zmniejszyć, lub zbyt małe powiększyć, za pomocą opcji -subfont-text-scale:

mplayer film.avi -subfont-text-scale 3

SSA/ASS

SSA/ASS to formaty napisów posiadające duże możliwości formatowania tekstu - kolorowanie, obracanie, itp. Są bardzo popularne wśród grup fansuberskich, a MPlayer w pełni obsługuje je po dodaniu opcji -ass (albo -vf=ass) do linii poleceń.

mplayer film.mkv -sid 0 -ass
Uwaga.png Uwaga: Implementacja ASS/SAA w opensuse (biblioteka libass) nie jest w pełni kompatybilna ze wszystkimi błędami tej używanej na systemach windows (vsfilter). Może to prowadzić do niewielkich różnic w wyświetlaniu.
Rozmiar napisów SSA/ASS

Dość przydatna jest opcja -ass-font-scale, skalująca rozmiar czcionki o podaną wartość. W poniższym przykładzie rozmiar czcionki będzie dwa razy większy od ustalonego w pliku z napisami.

mplayer film.mkv -sid 0 -ass -ass-font-scale 2

W plikach mkv często są wbudowane czcionki używane w stylach napisów SSA/ASS. Domyślnie mplayer ich używa, jeśli jednak "coś pójdzie nie tak", to należy spróbować ich wymuszenie za pomocą opcji -embeddedfonts.

mplayer film.mkv -sid 0 -ass -ass-font-scale 2 -embeddedfonts

Ścieżki dźwiękowe

Wiele ścieżek dźwiękowych

Procedura jest podobna do napisów "wbudowanych" w DVD czy mkv, należy odtworzyć DVD/plik i obejrzeć komunikaty wyświetlane w konsoli, np:

[Ogg] stream 1: audio (Vorbis), -aid 0, -alang eng
[Ogg] stream 2: audio (Vorbis), -aid 1, -alang jpn

Parametr -aid lub -alang z odpowiednią wartością odpowiada za język ścieżki dźwiękowej w filmie.

Ilość kanałów

MPlayer bez problemu może odgrywać dźwięk na wiele kanałów, wystarczy podać opcje -channels z odpowiednim argumentem:

2
dla dźwięku w systemie stereo
4
dla dźwięku w systemie surround
6
dla dźwięku w systemie 5.1

Używanie MPlayera

Filmy DVD, VCD, SVCD...

W przeciwieństwie do plików np. ściągniętych z internetu, do odtwarzania filmów DVD/VCS/SVCD nie podaje się ścieżki do pliku. Zamiast tego, podaję się opcję dvd:// (filmy na DVD) lub vcd:// (filmy na VCD/SVCD).

mplayer dvd://
mplayer vcd://

Zacięcia filmów

Istnieje kilka przyczyn zacinania się filmów pod mplayerem. Do najczęstszych należy zbyt wolny procesor, nośnik z filmem czy problem z dekoderem pliku.

Zwiększenie bufora

Przy oglądaniu filmu z dysku sieciowego przez WiFi, czy też oglądaniu z porysowanej płyty DVD, zazwyczaj zwiększenie bufora (pamięci podręcznej, cache) usuwa problem zacięć.

mplayer -cache 8192 dvd://

Instalacja kodeków z windowsa

Niestety, ze względu na brak dokumentacji, część formatów nie posiada optymalnych dekoderów. Wynikiem tego jest, na przykład, zacinanie się dźwięku w plikach rmvb na dość szybkich komputerach. Zwykle rozwiązaniem jest instalacja pakietu w32codec-all.

Zbyt wolny procesor

Czasami wina leży w zbyt wolnym sprzęcie. Zazwyczaj nie da się zbyt wiele zrobić, ale zawsze można spróbować szczęścia, choć może to obyć się kosztem jakości obrazu.

Opcjami pierwszej pomocy są -framedrop oraz -hardframedrop. Powodują one omijanie kilku klatek w celu zachowania synchronizacji dźwięku z obrazem. Można je przełączać podczas oglądania filmu za pomocą klawisza d.

Innym sposobem jest dokupienie sprzętowego dekodera, takiego jak Broadcom CrystalHD czy kart Nvidia wspierających vdpau.

Uwaga.png Uwaga:

Usuwanie przeplotu

Niektóre filmy dostępne na płytach DVD-Video/VCD/SVCD mają przeplot, zwykle nie wyglądają najlepiej na komputerze. Na szcześcię, MPlayer bez problemu poradzi sobię z tą niedogodnością - jednym ze sposobów jest dopisanie opcji -vf pp=fd dvd://:

mplayer -vf pp=fd dvd://
Wskazówka.png Wskazówka: Porównanie różnych metod pozbywania się przeplotu w mplayerze jest dostępne tutaj.

Sceny

Domyślnie MPlayer wyświetla pierwszą scenę (ang. chapter), w celu zmiany tego zachowania wystarczy dopisać numer rozdziału po dvd://:

mplayer dvd://4

CD-Audio

Odtwarzanie płyt CD-Audio sprowadza się do podania cdda:// zamiast scieżki pliku.

mplayer cdda://

Plik konfiguracyjne

Oczywiście, wyżej wymiennych opcji nie trzeba zawsze wpisywać ręcznie. Wygoda (i lenistwo) nakazuję zapisać je w pliku konfiguracyjnym.

Położenie i priorytet konfiguracji

Mplayer pobiera konfigurację z trzech źródeł, na poniźszej liście są ustawione według ważności:

  1. Opcje linii komend
  2. Plik konfiguracyjny w katalogu domowym, dokładnie w ~/.mplayer/config
  3. Globalny, w /etc/mplayer/mplayer.conf

Pisanie konfiguracji

Opcje w pliku konfiguracyjnym zapisuje się podobnie jak w linii komend; wodzący myślnik jest pomijany. Czyli

-vf=ass

w pliku konfiguracyjnym zamienia się w

vf=ass

Przykładowy plik konfiguracyjny

vo=xv
# wyjście video xv
ao=pulse
# wyjście audio pulse
subcp=cp1250
# kodowanie napisow to CP1250
cache=8192
# cache - przydatne przy np. ogladaniu z lekko porysowanych plyt
slang=pl
# język napisów na dvd czy w plikach mkv

Nakładki graficzne na MPlayera

Mplayer domyślnie posiada niezbyt ładną nakładkę o nazwie gmplayer. Jednak o wiele milszą dla oka i użytkownika jest nakładka gnome-mplayer, która wbrew nazwie, nie wymaga GNOME, więc użytkownicy Xfce czy innych lżejszych środowisk, nie będą musieli instalować masy niezbyt potrzebnych bibliotek. Dla KDE istnieje nakładka nazwana smplayer, które nawet posiada port na system windows.

Integracja z przeglądarka

Niektóre strony do wyświetlenia zawartości wymagają pluginów typu QuickTime, Windows Media Player, RealMedia czy DivX web player. Na szczęście, istnieje rozwiązanie potrafiące użyć mplayera do odtwarzania takiej zawartości. Jest to pakiet gecko-mediaplayer, znajdujący się w repozytorium PackMan

Uwaga.png Uwaga: Treść, do której dostęp został utrudniony za pomocą DRM, nie jest odtwarzalna pod linuksem.

Mplayer a Mplayer2

W repozytorium PackMan znajduje się pakiet mplayer2, zawierający odtwarzacz będący forkiem oryginalnego projektu. Wcześniej był znany jako mplayer-uae.

Uwaga.png Uwaga: Mplayer2 jest nadal kompatybilny z wyżej wymienionymi GUI, oraz używa tych samych plików konfiguracyjnych.

Ulepszenia

  • lepsze wsparcie dla vdpau
  • poprawiona obsługa kontenera Matroska (.mkv)
  • ułatwiona możliwość kompilacji z obsługą wielowątkowości
  • wsparcie dla tłumaczeń opartych o gettext
  • bardziej precyzyjne przewijanie
  • poprawiona obsługa pauzy
  • brak zależności od wewnętrznej biblioteki ffmpeg
  • oraz wiele mniejszych, takich brak wyjścia z trybu pełnoekranowego (fullscreen) przy przejściu do nowego pliku czy wsparcie odtwarzania bez przerw (gapless playback').

Funkcje porzucone

  • brak domyślnego gui, gmplayer
  • brak mencodera
  • porzucenie wewnętrznych bibliotek:
    • ffmpeg, przez co znikły filtry video niedostępne z publicznego api: vf_fspp, vf_mcdeint, vf_qp, vf_spp
    • libmpeg2 - do odtwarzania plików w formacie mpeg2 jest używany dekoder w bibliotece ffmpeg
    • vidix - wsparcie dla wyjść video VIDIX zostało porzucone ze względu na porzucenie projektu
    • tremor - do odtwarzania plików w formacie vorbis jest używany dekoder w bibliotece ffmpeg
    • libdvdnav, libdvdread i libdvdcss

Różnice w zachowaniu

  • domyślne użycie libass do rendowania napisów, można wyłączyć to za pomocą opcji -noass
  • użycie demukserów ffmpeg zamiast wewnętrznych mplayera, może to skutkować różnice w funkcjach
  • domyślnie fłączona opcja -fixed-vo