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
Żale developerów
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, 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 GPL, ale zawiera pewien kod nie-GPL, którego
nie wolno rozpowszechniać w formie binarnej, a także zawiera bibliotekę
OpenDivX, która jest na specjalnej licencji. Wciaż jednak rozwijamy się w
kierunku GPL.
Rozprowadzanie MPlayera w formie binarnej i/lub w pakietach binarnych
jest aktualnie niemożliwe, zarówno ze względów technicznych, jak i
prawnych. O szczegółach na ten temat można przeczytać, i jest to
zalecane, w drugiej części tego
pliku.
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.
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.
KODEKI
- libavcodec: Jeżeli chcesz używać tego kodeka DivX3/DivX4/DivX5/itp.,
zobacz przed kompilacją sekcję 2.2.1.2.
Właściwości:
- możesz odgrywać DivX/DivX4/DivX5 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 XXX_vid, 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
- Aby mieć obsługę DVD, musisz skompilować libdvdcss i libdvdread, dokładnie
w takiej kolejności! Zobacz szczegóły w sekcji
4.2.
- 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
Tak, MPlayer obsługuje wiele typów napisów. Obecnie 10 rodzajów
napisów może być używanych przez kod subreadera. Informacje o formatach
napisów znajdziesz w pliku subreader.c, w okolicach linii 30.
MPlayer obsługuje napisy VobSub. Napisy VobSub zawierają duży
(kilkumegabajtowy) plik .SUB i opcjonalnie pliki .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
-vobsubid0
(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.
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:
- 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
3. Sposób użycia
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 za pomocą kalwiatury
|
<- 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 |
|
/ 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 |
Obsługa GUI z klawiatury
|
, 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 |
Sterowanie wejściem TV
|
h lub l |
|
wybierz porzedni / następny kanał |
|
n |
|
zmień normę |
|
b |
|
zmień listę kanałów |
3.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, możesz skompilować MPlayera z
włączeniem obsługi LIRC stosując: ./configure --enable-lirc.
Jeżeli wszystko poszło dobrze, MPlayer wyśle na starcie komunikat, że
inicjalizacja LIRC zakończyła się sukcesem. 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 :-)
Aplikacja dla MPlayera nazywa się - nie zgadłbyś - mplayer_lirc.
Rozumie ona następujące polecenia:
|
PAUSE |
|
zatrzymuje odgrywanie (pauza); naciśnięcie
dowolnego klawisza powoduje wznowienie odgrywania |
|
QUIT |
|
wyjście z MPlayera |
|
RWND |
|
10 sekund wstecz |
|
FRWND |
|
60 sekund wstecz; |
|
FWD |
|
10 sekund naprzód |
|
FFWD |
|
60 sekund naprzód |
|
INCVOL |
|
zwiększenie głośności o 1% |
|
DECVOL |
|
zmniejszenie głośności o 1% |
|
MASTER |
|
użycie głównego kanału miksera |
|
PCM |
|
użycie kanału pcm miksera |
Nie zapomnij ustawić flagi powtarzania dla RWND/FWD w .lircrc. Oto
fragment z mojego .lircrc:
begin
remote = CU-SX070
prog = mplayer_lirc
button = Tape_Play
repeat = 1
config = FFWD
end
begin
remote = CU-SX070
prog = mplayer_lirc
button = Tape_Stop
config = QUIT
end
Jeśli nie odpowiada ci standardowa lokalizacja pliku lirc-config (~/.lircrc)
użyj przełącznika -lircconf <nazwa_pliku>, aby podać inny plik.
3.4. Przesyłanie przez sieć, bądź za pomocą pipe
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:
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.
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)
- 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
- pierwszorzędne wsparcie w codecs.conf (nigdy nie zastosowany ;)
- obsługa DivX5Linux
- wsparcie dla dekodowania AAC via libfaad2
- 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
- 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
- joy_ping
- Eric Anholt
- 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
- 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
- Tim Ferguson
- open source dekorer Cinepak
- open source dekoder CYUV
- Sam Lin
- 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
- 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>
- 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
- Zawartość: Gabucino
Dokumentacja w języku angielskim
- dokumentacja użytkownika: Gabucino
- dokumentacja tech/*: A'rpi
- HTMLization: LGB
Tłumaczenia dokumentacji
- węgierskie: Gabucino
- niemieckie: Johannes Feigl
- francuskie: Stephane Marteau (nieaktualne)
- włoskie: TeLeNiEkO (nieaktualne)
- rosyjskie: Nick Kurshev (nieaktualne)
- polskie: Dariusz Pietrzak (dawna wersja nieshierarchizowana, w ascii) oraz
Justyna Biała (wersja aktualna, w html)
Platformy sprzętowe/porty:
- pakiety DEBIANa: Dariusz Pietrzak
- wsparcie dla FreeBSD: Vladimir Kushnir
- wsparcie dla Solaris 8: Jürgen Keil
- wsparcie dla MIPS: Oliver Schoenbrunner
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: Acki
- VIDIX core, libdha: Nick Kurshev
Sterowniki libvo:
- vo_3dfx.c - PRZESTARZAŁE, użyj w zamian xv lub tdfxfb
- vo_tdfxfb.c - Zeljko Stevanovic
- 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 - se7en
- 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
- 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://lists.sourceforge.net/lists/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