«

»

Oct
04

Mplayer dla windows

Mimo, iż odtwarzanie plików wideo wydaje się czymś naturalnym, standardowo platforma windows pozostawia w tej kwestii wiele do życzenia. Oferowany domyślnie odtwarzacz jest niestety bardzo nieciekawy, w niektórych wersjach nawet niebezpieczny dla zawartości komputera. Radzi on sobie ze stosunkowo małą liczbą formatów wideo, w dodatku wspiera takie kwiatki jak DRM, ponadto swojego czasu przesyłał dane do zdalnego serwera bez zgody i jakiejkolwiek wiedzy użytkownika. W dzisiejszych czasach niewielu takie rozwiązania satysfakcjonują, trudno zresztą się dziwić. Po latach doświadczeń i testowania przeróżnych aplikacji, mogę z czystym sumieniem polecić jeden z najlepszych w swojej kategorii.

Dlaczego właśnie Mplayer?

Odpowiedź jest bardzo prosta: To naprawdę wydajny programem z masą przydatnych funkcji, wkompilowane kodeki nierzadko przewyższają w wydajności windowsowe odpowiedniki. Przykładowo notowałem wzrost wydajności rzędu 20% przy ś. p. celeronie 500, dzięki temu możliwe było odtwarzanie filmu z kodekiem divx i dźwiękiem AC3, czego nie byłem w stanie dokonać na żadnej innej aplikacji windowsowej. Było to jedyne rozwiązanie gwarantujące płynność.  Dobrze skonfigurowany mplayer będzie dla wielu użytkowników narzędziem ostatecznym.

  • Umożliwia odtwarzanie wszelkiego badziewia pokroju formatów applea (.mov), windows media playera (.wmv), flashowych aplikacji takich jak youtube (.flv), liczba obsługiwanych formatów w wersji wkompilowanej wynosi grubo ponad 100 (blisko 200) w przypadku wideo i blisko 100 w przypadku audio).
  • Rozwiązuje problemy z AC3 (można łatwo włączyć 5.1 i łatwo wyłączyć), chociaż dziś nie stanowi to irytującego problemu jak niegdyś
  • Radzi sobie z większością formatów napisów, w tym ASS (przyznam bez bicia, że jak narazie zauważyłem brak wyświetlania kolorów w przypadku niektórych napisów typu vobsub, ale pozycjonowanie i czcionki były ok).
  • Nie trzeba instalować żadnych kodeków do systemu, nawet jak mamy w rejestrze totalny chaos i zniszczenie, mplayer działa niezależnie.
  • Może odtwarzać pliki wideo spakowane rarem.
  • Do esencjalnych funkcji należy natychmiastowe odtwarzanie. Co to znaczy? Każdy windowsowy player sprawdza najpierw całość pliku, zaś odtwarzanie następuje w drugiej kolejności. W niektórych przypadkach, jeśli plik jest uszkodzony może to doprowadzić do przywieszenia się systemu, w innych powoduje wystąpienie komunikatu o błędzie, co jest równoznaczne z końcem seansu. Natomiast mplayer sprawę kompletnie olewa (linux heritage), potrafi odtworzyć nawet mocno uszkodzony plik, pomijając w procesie uszkodzone miejsca. Czasem zdarza się sytuacja, kiedy  mamy film na porysowanej płycie CD, nie da się drania skopiować na dysk, a chcielibyśmy tego białego kruka obejrzeć. Okazuje się, że dzięki mplayerowi jednak damy radę. Implikacją tego stanu rzeczy jest możliwość podglądania plików wideo pobieranych z sieci (torrent, pobieranie klient-serwer). Możliwe jest rozpoczęcie pobierania jakiegoś pliku i jego natychmiastowe odtwarzanie (tylko w przypadku direct download oczywiście), wystarczy łącze o odpowiedniej prędkości (ustawiamy pobieranie… i oglądamy).
  • Obecna wersja ma też ustawioną elegancką czcionkę, wygląda miło dla oka, nawet na zwykłym filmie z włączonym ASS. Trzeba ją w niektórych przypadkach nieco powiększyć (klawisze “:” i “”"),  ze względu na różnice formatów (w przypadku opóźnień napisów używać “z” i “x” dla dopasowania, nie wychodząc z playera…).
  • Jeszcze raz: wydajność :)

Jeśli chodzi o przeciwwskazania, można się przyczepić do interfejsu. Ogrom funkcji dostępny jest z poziomu konsoli, niestety nie ma oficjalnego GUI dla windowsa, który zachwycałby elegancją i liczbą funkcji. Istnieje za to wiele różnych, nierównych projektów. Najbardziej dopracowanym i wygodnym jest smplayer. Chciałbym jednak przedstawić nieco odmienne, prostsze rozwiązanie.

Zatem do rzeczy:

Na platformę windows polecam nagiego (bez graficznego interfejsu, po cóż mnożyć byty i pliki konfiguracyjne?) mplayera, build ten jest uaktualniany co jakiś czas i pochodzi z repozytorium SVN, więc jest w miarę świeży. Aktualna wersja obsługuje fontconfig z czym idzie pełna obsługa ASS, dla fana fetyszy w napisach, rzecz niezbędna.

Rozpakowujemy 7z z mplayerem gdzie się nam tam widzi (np Program Files/MPlayer), następne dorzucamy dodatkowe kodeki, wybieramy wersje dla windows z ALL w tytule, zawartość spakowanego pliku bezczelnie kopiujemy do MPlayer/codecs.

Kolejny krok: w prosty windowsowy sposób ustawiamy skojarzenia z plikami wideo, klikamy prawym przyciskiem myszy na przykładowo Janosik_Prawdziwa_Historia.mkv, wybieramy “otwórz za pomocą” i wskazujemy plik mplayer.exe (będzie tam gdzie go wcześniej ulokowaliśmy np Program Files/MPlayer), zaznaczamy przy tym żeby zawsze otwierało za jego pomocą, czynność powtarzamy z innymi formatami wideo. Dzięki temu wystarczy kliknąć 2 razy na plik wideo i już można oglądać:)

Domyślnie Mplayer korzysta z jakichś tam ustawień, istotne jest wyjście wideo: directx, przy tym ustawieniu napisy ASS renderowane będą na obrazie, co wygląda jak hardsub. Ustawienie to polecam ze względu na wysoką wydajność. Jeśli ktoś ma mocny sprzęt to ciekawszą opcją jest ustawienie wyjścia wideo na gl (przy gl2 już to nie działa), dzięki temu można wywalić karaoke i napisy główne (tylko przy softsub oczywiście) na panoramę (jeśli to co odtwarzamy takową posiada), co wygląda elegancko i estetycznie. Dodatkowo napisy nie zlewają się z obrazem, łatwiej się czyta i człowieka nie denerwuje, że nie ma panoramicznego monitora.

Polecam plik konfiguracyjny który aktualnie używam, większość opcji jest opisana, więc radzę poeksperymentować i dostosować wszystko do swoich potrzeb:
———————————————————————————————————
## Ultimate MPlayer Windows configuration
## By Highlander :-) <einherjar@op.pl>

## Frame drop
framedrop=yes

## It’s better to leave this enabled, since win32 console sucks and it’s slow as hell
quiet=yes

## Color Console ;)
msgcolor=yes
msgmodule=yes
identify=yes

## Enter drive letter for your DVD Device
dvd-device=f:

## Uncomment this to have ac3 pass-through
#afm=hwac3

## You can use directx or opengl video output, default is directx,
## Use gl to move subtitles on black bars (use with ASS\SSA margin options)
#vo=directx
vo=gl
#vo=gl2

## video filtering and postprocessing
## eq is useful if your video card does not support video overlay.
#vf=pp,eq
#vf=eq,pp=lb/hb/vb
vf=pp=de
autoq=6
vf=screenshot
zoom=yes
nokeepaspect=no

autosync=100
double=yes
#direct=yes
fs=no

## Sound channels, default is 2
#channels=6
af=scaletempo

## Subtitle encoding and font options
#font=”C:\WINDOWS\Fonts\arial.ttf”
subfont-osd-scale=2
subfont-text-scale=5.0
subfont-blur=2
subfont-outline=2
ffactor=10
subcp=cp1250

## Fontconfig
fontconfig=yes
font=Arial

## Advanced subtitles ASS/SSA :)
ass=yes
embeddedfonts=yes
ass-color=ffffff00
ass-border-color=00000000
ass-use-margins=yes
ass-top-margin=1
ass-bottom-margin=1
#ass-font-scale=1.8
#ass-line-spacing <value>
sid=0

## Expands the “area” so that the subtitles are lower on the screen/ puts the subs in the black bars
#vf=expand=:-100::2
———————————————————————————————————
Oryginalny plik config będzie pusty, (katalog: MPlayer/mplayer), zastępujemy (kopiuj/wklej) jego zawartość na powyższą.

Mamy tutaj wyjście wideo gl i w sekcji ASS:

ass-use-margins=yes
ass-top-margin=1
ass-bottom-margin=1

co nam daje napisy na panoramie, przy słabszym komputerze wystarczy dać “#” przy vo=gl i domyślnie film będzie odtwarzany przez directx bez panoramicznych napisów.
Kolejna rzecz, domyślnie liczba kanałów audio jest ustawiona na 2, jeśli ktoś ma sprzet 5.1 i stosowną kartę polecam odhashować #channels=6, zapewni nam to dźwięk 5.1. Można też odhashowac i wpisać 2 lub 4, ważne jest, że jak mamy 2 to 6-cio kanałowy dźwięk będzie automatycznie miksowany do zwykłego stereo, bez grzebania w czymkolwiek. (o ile pamiętam zawsze były z tym jakieś problemy z różnymi filtrami na windowsie)

Mamy tutaj:

vf=pp=de
autoq=6

Parametry te włączają postprocessing (vf=pp=de), parametr autoq=6 określa automatyczną regulacją postprocessingu podczas odtwarzania (6 jest opcją najwyższą, można zmniejszyć jeśli ktoś ma dobrego kompa ale nie przesadnie i chce cieszyć oczy wygładzonym obrazem:)) Znaczy to tyle, że w razie rzeźni na ekranie i spadku wydajności wygładzanie też spada ale uwalnia moc procesora co zapewnia lepszą płynność. Przy słabych maszynach radzę wyłączyć (“#” przed każdym parametrem).

Parametr:

fs=no

wyłącza nam uruchamianie filmów an pełnym ekranie (trzeba wcisnąć “f” żeby wejść na fullscreen i wyjść). Jeśli ktoś woli, ustawiamy na yes i filmy startują na fullscreenie.

Parametr:

zoom=yes

skaluje nam obraz, jeśli karta graficzna nie obsługuje sprzętowego skalowania (Co może się zdarzać na archaicznych maszynach, złych sterownikach albo słabych laptopach). Można próbować wyłączyć w razie problemów z wydajnością.

Prametr:

vf=screenshot

Pozwala robić zrzutki, domyślnie zapisywane są w katalogu z plikiem w formacie png (a jak:)) klawiszem… “s” to był? :)

Parametr:

sid=0

ładuje pierwsze napotkane napisy z kontenera mediowego (np mkv), można bezproblemowo przełączać podczas oglądania klawiszem “j”

Teraz kolejna kluczowa sprawa, klawiszologia… MPlayer w aktualnym stanie potrafi prawie wszytko, przełączanie strumieni audio w  locie, zmiany chapterów, przewijanie o klatkę do przodu etc, dlatego polecam swój plik konfiguracyjny input.conf zamiast domyślnego (MPlayer/mplayer):
——————————————————————————–

##
## MPlayer input control file
##
## You are able to redefine default keyboard/joystick/mouse/LIRC bindings, or
## add new ones here.
## See DOCS/tech/slave.txt for possible commands that can be bound.
## Also see mplayer -input cmdlist for other possible options.
## The file should be placed in the $HOME/.mplayer directory.
##

MOUSE_BTN0 vo_fullscreen
MOUSE_BTN2 pause

RIGHT seek +10
LEFT seek -10
DOWN seek -60
UP seek +60
PGUP seek 600
PGDWN seek -600
m mute
a switch_audio          # switch audio streams
+ audio_delay 0.100
- audio_delay -0.100
[ speed_mult 0.9091    # scale playback speed
] speed_mult 1.1
{ speed_mult 0.5
} speed_mult 2.0
BS speed_set 1.0    # reset speed to normal
q quit
ESC quit
ENTER pt_step 1 1       # skip to next file
p pause
. frame_step            # advance one frame and pause
SPACE pause
HOME pt_up_step 1
END pt_up_step -1
> pt_step 1             # skip to next file
< pt_step -1            #         previous
INS alt_src_step 1
DEL alt_src_step -1
o osd
i osd_show_property_text “${filename}”     # display filename in osd
z sub_delay -0.1        # subtract 100 ms delay from subs
x sub_delay +0.1        # add
9 volume -1
/ volume -1
0 volume 1
* volume 1
1 contrast -1
2 contrast 1
3 brightness -1
4 brightness 1
5 hue -1
6 hue 1
7 saturation -1
8 saturation 1
( balance -0.1          # adjust audio balance in favor of left
) balance +0.1          #                                  right
d frame_drop
D step_property deinterlace  # toggle deinterlacer, requires -vf yadif or kerndeint
r sub_pos -1            # move subtitles up
t sub_pos +1            #                down
#? sub_step +1        # immediately display next subtitle
#? sub_step -1        #                     previous
; sub_scale +0.1    # increase subtitle font size
‘ sub_scale -0.1    # decrease subtitle font size
f vo_fullscreen
T vo_ontop              # toggle video window ontop of other windows
w panscan -0.1          # zoom out with -panscan 0 -fs
e panscan +0.1          #      in
s screenshot            # take a png screenshot with -vf screenshot
# S will take a png screenshot of every frame

h tv_step_channel 1
l tv_step_channel -1
n tv_step_norm
b tv_step_chanlist

##
## GUI
##

#l gui_loadfile
#t gui_loadsubtitle
#a gui_about
#s gui_stop
#p gui_playlist
#r gui_preferences
#c gui_skinbrowser

##
## Joystick section
## WARNING: joystick support has to be explicitly enabled at
##          compiletime with –enable-joystick
##

JOY_RIGHT seek 10
JOY_LEFT seek -10
JOY_UP seek 60
JOY_DOWN seek -60
JOY_BTN0 pause
JOY_BTN1 osd
JOY_BTN2 volume 1
JOY_BTN3 volume -1
JOY_BTN4 set_menu main

##
## Apple Remote section
##
## To use OSD menu with Apple Remote, set key AR_MENU to any OSD menu command,
## or just comment out the ‘AR_MENU osd’ line and uncomment the line after it.
##

AR_PLAY pause
AR_PLAY_HOLD quit
AR_NEXT seek 30
AR_NEXT_HOLD seek 120
AR_PREV seek -10
AR_PREV_HOLD seek -120
AR_MENU osd
#AR_MENU menu cancel
AR_MENU_HOLD mute
AR_VUP volume 1
AR_VDOWN volume -1

##
## OSD Menu movement keys
##
## If you are using only the keyboard it is enough to define one command (like
## “menu up”), because then that single key will display the menu, which can
## then be navigated with the cursor keys and ENTER (defined in menu.conf).
##
## LIRC users should bind each “menu” command to a button on their remote.
##
## The set_menu command directly displays the (sub)menu specified as
## its argument. Usage should be self-explanatory (although not likely
## to be needed), after reading input.conf.
##

#MOUSE_BTN0 menu up
#y menu down
#y menu ok
#y menu cancel
#y menu hide
#y set_menu general_pref

##
## DVDNAV
## Requires dvdnav://
##

KP8 dvdnav 1            # DVDNav UP
KP2 dvdnav 2            # DVDNav DOWN
KP4 dvdnav 3            # DVDNav LEFT
KP6 dvdnav 4            # DVDNav RIGHT
KP5 dvdnav 5            # DVDNav MENU
KP_ENTER dvdnav 6       # DVDNav SELECT (ok)
KP7 dvdnav 7            # DVDNav PREVIOUS menu (in the order chapter->title->root)

k seek_chapter -1      # skip to previous dvd chapter
l seek_chapter +1      #         next
——————————————————————————–

Można wyczytać każdy klawisz i przestawić skróty wedle uznania.

I w zasadzie to tyle :)

Zaletą tego sposobu jest absolutny minimalizm, oszczędzamy pamięć na zbędne GUI i miejsce na desktopie. Nie tracimy przy tym prawie żadnych funkcji, zaprezentowana konfiguracja jest całkiem uniwersalna, poprawia nam jakość obrazu, korzysta z dobrodziejstw napisów na panoramie, przestrzennego dźwięku, i wszystko przy bardzo dobrej wydajności. Wystarczy raz wszystko dobrze dopasować do własnych potrzeb i w zasadzie nie trzeba do konfiguracji wracać.

Pozostaje życzyć miłego oglądania :-]

Aktualizacja

Od jakiegoś czasu dla mocnych kart pojawił się nowy sterownik obsługujący sprzętowe dekodowanie H.264 i innych. W wersji na linuxa nosi on nazwę VDPAU, listę obsługiwanych procesorów można znaleźć tutaj. W przypadku windows sterownik ten nosi nazwę DXVA. Niestety w chwili obecnej nie wiem czy mplayer w wersji na windows wspiera ową technologię, zaś wersja linuxowa leży poza moim zasięgiem. Jak na złość akurat mój model grafiki się nie załapał. Skandal :/ Zachęcam do przetestowania, jeśli ma ktoś możliwości.

Share and Enjoy:
  • Digg
  • del.icio.us
  • Facebook
  • Google Bookmarks
  • Wyczaj.to
  • Wykop

1 comment

  1. Skallek says:

    mam, używam, też fajne ;) )))))))))))))))))

Comments have been disabled.