Mplayer
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:
- opcje podane w konsoli,
- konfiguracja użytkownika,
- 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: 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
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.
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: 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:
- Opcje linii komend
- Plik konfiguracyjny w katalogu domowym, dokładnie w ~/.mplayer/config
- 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
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: 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