Obsah
libcaca
- Barevná ASCII Art knihovnalibavcodec
XviD
x264
kodekemPokud instalujete poprvé: měli byste si přečíst celou dokumentaci odtud až do konce kapitoly Instalace a následovat linky, které naleznete. Pokud máte jiné dotazy, vraťte se zpět na Obsah a vyhledejte si příslušnou část. Přečtěte si FAQ, nebo zkuste grep na souborech. Odpovědi na většinu otázek by měly být někde tady, zbytek byl pravděpodobně probrán v některé z našich e-mailových konferencí. Prohledejte archivy, zde naleznete mnoho hodnotných informací.
MPlayer je multimediální přehrávač pro Linux (běží na mnoha jiných Unixech a ne-x86 CPU, viz Ports). Přehraje většinu MPEG, VOB, AVI, OGG/OGM, VIVO, ASF/WMA/WMV, QT/MOV/MP4, FLI, RM, NuppelVideo, yuv4mpeg, FILM, RoQ, PVA, Matroska souborů s podporou mnoha nativních XAnim, RealPlayer a Win32 DLL kodeků. Můžete sledovat VideoCD, SVCD, DVD, 3ivx, RealMedia, Sorenson, Theora a také MPEG-4 (DivX) filmy. Další skvělou vlastností MPlayeru je velké množství podporovaných výstupních rozhraní. Pracuje s X11, Xv, DGA, OpenGL, SVGAlib, fbdev, AAlib, libcaca, DirectFB, rovněž můžete použít GGI a SDL (a takto i jejich ovladače) a také některé nízkoúrovňové ovladače konkrétních karet (pro Matrox, 3Dfx a Radeon, Mach64, Permedia3)! Většina z nich podporuje softwarové nebo hardwarové škálování (změna velikosti obrazu), takže si můžete užít video na celé obrazovce. MPlayer podporuje zobrazování přes některé hardwarové MPEG dekódovací karty, jako je DVB a DXR3/Hollywood+. A což teprve velké krásné vyhlazené a stínované titulky (14 podporovaných typů) spolu s Evropskými/ISO 8859-1,2 (Bulharskými, Anglickými, Českými, atd), Cyrilickými a Korejskými fonty a displej na obrazovce (OSD)?
Přehrávač je pevný jako skála při přehrávání poškozených MPEG souborů (použitelné pro některá VCD), také přehrává špatné AVI soubory, které nelze přehrávat ani věhlasným windows media playerem. Dokonce lze přehrávat i AVI bez indexu a navíc můžete jejich indexy dočasně obnovit pomocí volby -idx, nebo trvale pomocí MEncoderu, což umožní převíjení! Jak vidíte, kvalita a stabilita jsou těmi nejdůležitějšími vlastnostmi, rychlost je ovšem také skvělá. Rovněž máme účinný systém filtrů pro manipulaci s videem i se zvukem.
MEncoder (MPlayerův Filmový
Enkodér) je jednoduchý filmový enkodér, navržený k enkódování
MPlayerem přehrávatelných filmů
(AVI/ASF/OGG/DVD/VCD/VOB/MPG/MOV/VIV/FLI/RM/NUV/NET/PVA)
do jiných MPlayerem přehrávatelných formátů (viz níže).
Může enkódovat různými kodeky. jako je MPEG-4 (DivX4)
(jedním nebo dvěma průchody), libavcodec
,
PCM/MP3/VBR MP3
audia.
Vlastnosti MEncoderu
libavcodec
kodeků
VBR MP3 zvuk
VBR MP3 zvuk není vždy přehráván dobře přehrávači pro windows!
Plánované vlastnosti
MPlayer a MEncoder mohou být distribuovány za podmínek stanovených v GNU General Public License Version 2.
Začalo to před rokem... Vyzkoušel jsem mnoho přehrávačů pod Linuxem (mtv, xmps, dvdview, livid/oms, videolan, xine, xanim, avifile, xmmp), ale všechny měly nějaký problém. Většinou se zvláštními soubory nebo audio/video synchronizací. Mnoho z nich neumí přehrát MPEG-1, MPEG-2 a zároveň AVI (DivX) soubory. Mnoho z nich má i potíže se zobrazováním nebo s rychlostí. Proto jsem se rozhodl, že si nějaký napíšu nebo upravím...
A'rpi, 2001
mpg12play v0.1-v0.3: 22-25 září 2000
První pokus, zbastlený za půl hodiny! Používal jsem libmpeg3 z http://www.heroinewarrior.com až do verze 0.3, ale měl jsem s ní problémy s obrazem i rychlostí.
mpg12play v0.5-v0.87: 28. září–20. říjen 2000
MPEG kodek byl nahrazen knihovnou DVDview od Dirka Farina, byla skvělá, ale byla pomalá a psaná v C++ (A'rpi nenávidí C++!!!)
mpg12play v0.9-v0.95pre5: 21. říjen–2. listopad 2000
MPEG kodekem je libmpeg2 (mpeg2dec) od Aarona Holtzmana a Michela Lespinasse. Je to skvělý, optimalizovaný velmi rychlý kód v C se skvělou kvalitou obrazu a 100% v souladu s MPEG standardem.
MPlayer v0.3-v0.9: 18. listopad–4. prosinec 2000
Byl to balíček dvou programů: mpg12play v0.95pre6 a mého nového jednoduchého AVI přehrávače 'avip' založeného na Win32 DLL loaderu z avifile.
MPlayer v0.10: 1. leden 2001
MPEG a AVI přehrávač v jedné binárce!
MPlayer v0.11pre řada:
Přidali se někteří noví vývojáři a počínaje verzí 0.11 je projekt MPlayer týmovou prací! Přidána podpora ASF souboru a OpenDivX (viz http://www.projectmayo.com) en/dekódování.
MPlayer v0.17a "The IdegCounter" 27. duben 2001
Ostrá verze vycházející z 0.11pre po 4 měsících intenzivního vývoje! Zkuste ji a užasnete! Přidány tisíce nových vlastností... a samozřejmě byl starý kód rovněž vylepšen, chyby odstraněny atd.
MPlayer 0.18 "The BugCounter" 9. červenec 2001
Uběhly 2 měsíce od 0.17 a máme novou verzi... Dokončena podpora ASF, více formátů titulků, představena libao (podobná libvo, ale pro zvuk), dokonce ještě stabilnější a tak dále. Už je to POTŘEBA!
MPlayer 0.50 "The Faszom(C)ounter" 8. říjen 2001
Hmm. Opět ostrá. Tuny nových vlastností, beta verze GUI, oprava chyb, nové vo a ao rozhraní, portován do mnoha systémů, zahrnuje opensource DivX kodeky a je toho ještě víc. Zkuste to!
MPlayer 0.60 "The RTFMCounter" 3. ledna 2002
Podpora pro souborové formáty MOV/VIVO/RM/FLI/NUV, nativní CRAM, Cinepak, ADPCM kodeky a podpora pro binární kodeky XAnim; podpora DVD titulků, první vydání MEncoderu, zachytávání TV, vyrovnávací paměť, liba52, nespočet vylepšení.
MPlayer 0.90pre10 "The BirthdayCounter" 11. listopad 2002
Ačkoli to není ostrá verze, zmiňuji ji protože vyšla 2 roky po MPlayeru v0.01. Šťastné narozeniny, MPlayere!
MPlayer 0.90rc1 "The CodecCounter" 7. prosinec 2002
Opět to není ostrá verze, ale po přidání podpory pro Sorenson 3 (QuickTime) a Windows Media 9, je MPlayer prvním filmovým přehrávačem na světě s podporou všech známých video formátů!
MPlayer 0.90 "The CounterCounter" 6. duben 2003
Po více než roce jsme se nakonec shodli, že je kód opět dostatečně stabilní a připravený k vydání jako ostrá verze. Naneštěstí jsme dokonce zapomněli zvýšit číslo verze a objevily se další otravné chyby, takže zůstaňte připraveni...
MPlayer 0.91 13. srpna 2003
Výše zmíněné a mnoho dalších chyb bylo odstraněno. Toto je poslední stabilní verze.
MPlayer 1.0pre1 "Development on the beach" 1. září 2003
Ačkoli to není stabilní verze, zmiňuji se o ní, protože je to první pre verze řady 1.0 MPlayeru, zamýšlená pomoci velké lovecké výpravě na chyby. Je to velký krok vpřed!
MPlayer 1.0 datum dosud neznámý
Jednoduchý návod na instalaci naleznete v souboru README. Přečtěte si nejprve tento soubor a poté se vraťte zde pro další podrobnosti.
V této části vás provedeme procesem kompilace a konfigurace programu MPlayer. Není to snadné, ale nemusí to být nutně těžké. Pokud zaznamenáte rozdílné chování, než zde popisuji, prostudujte si prosím tuto dokumentaci a naleznete své odpovědi. Pokud narazíte na odkazy, následujte je a pečlivě si prostudujte jejich obsah. Bude vás to stát trochu času, ale STOJÍ to za to.
Budete potřebovat poměrně zánovní systém. Na Linuxu doporučujeme jádro řady 2.4.x.
binutils - navrhovaná verze je 2.11.x. Tento program zajišťuje generování MMX/ 3DNow!/atd. instrukcí, které jsou velmi důležité.
gcc - doporučené verze jsou: 2.95.3
(možná 2.95.4) a 3.2+.
Nikdy nepoužívejte 2.96 nebo 3.0.x! Tyto
generují vadný kód pro MPlayer. Pokud se rozhodnete
vyměnit gcc verze
2.96, pak nevolte verzi 3.x jen proto, že je novější! První verze řady
3.x byly ještě horší než 2.96. Takže raději downgradujte na 2.95.x
(downgradujte také libstdc++
, protože
ji mohou potřebovat jiné programy) nebo neup/downgradujte vůbec (pak se ale
připravte na problémy při běhu). Pokud se rozhodnete pro 3.x, zkuste použít
poslední verzi, první verze měly různé chyby, takže se ujistěte, že máte aspoň
3.1, ta je otestovaná a funkční. Pro podrobnější informace o chybách gcc 2.96
(které stále NEJSOU opraveny, byly v MPlayeru pouze
OBEJITY!), viz sekci gcc 2.96 a FAQ.
XFree86 - doporučená verze je vždy ta nejnovější (4.3). Normálně by to měl chtít každý, jelikož od verze XFree86 4.0.2 obsahuje rozšíření XVideo (místy zmiňované jako Xv) které je nutné k zapnutí hardwarové YUV akcelerace (rychlé vykreslování obrázku) na kartách, které to podporují. Ujistěte se že máte nainstalován i vývojový (dev) balíček, jinak to nebude pracovat. Pro některé video karty nepotřebujete XFree86. Viz seznam níže.
make - doporučená verze je vždy ta nejnovější (aspoň 3.79.x). Obvykle to není důležité.
SDL - není vyžadována, ale může pomoci v některých případech (špatný zvuk, video karty které se podivně opožďují s xv rozhraním). Vždy použijte nejnovější (počínaje 1.2.x).
libjpeg - volitelný JPEG dekodér, používaný volbou -mf a některými QT MOV soubory. Použitelný pro MPlayer i MEncoder pokud chcete pracovat se soubory JPEG.
libpng - doporučený a výchozí (M)PNG dekodér. Vyžadován pro GUI. Použitelný pro MPlayer i MEncoder.
lame - doporučený, nutný pro enkódování MP3 zvuku v MEncoderu, doporučená verze je vždy ta nejnovější (aspoň 3.90).
zlib - doporučená, nutná pro komprimovanou MOV hlavičku a podporu PNG.
libogg - volitelná, nutná pro přehrávání souborového formátu OGG.
libvorbis - volitelná, nutná pro přehrávání OGG Vorbis zvuku.
LIVE.COM Streaming Media - volitelná, nutná pro přehrávání RTSP/RTP datových proudů.
directfb - volitelný, z http://www.directfb.org. Vyžadujeme aspoň 0.9.13.
cdparanoia - volitelná, pro podporu CDDA
libfreetype - volitelná, pro podporu TTF fontů. Vyžadujeme aspoň 2.0.9.
libxmms - volitelná, pro podporu XMMS vstupního pluginu. Vyžadujeme aspoň 1.2.7.
libsmb - volitelná, pro podporu Samby.
ALSA - volitelná, pro podporu ALSA zvukového výstupu. Vyžadujeme aspoň 0.9.0rc4.
bio2jack - volitelný, pro podporu JACK audio výstupu, potřebný pouze při kompilaci. Můžete jej získat z http://bio2jack.sf.net. Protože nemá volbu install, uložte ručně soubor libbio2jack.a někam do knihovní vyhledávací cesty (např. /usr/local/lib) nebo volbou --with-bio2jack=DIR sdělte ./configure kde ten soubor najde.
libavcodec
:
Tento balík kodeků je schopen dekódovat
H.263/MJPEG/RV10/DivX3/DivX4/DivX5/MP41/MP42/WMV1/WMV2/SVQ1/SVQ3 enkódované
video proudy a WMA (Windows Media Audio) v1/v2 zvukové proudy na různých
platformách. Je také známý jako nejrychlejší pro tento účel. Podrobnosti viz
oddíl
FFmpeg. Vlastnosti:
Win32 kodeky: Pokud plánujete používat MPlayer na x86 architektuře, možná je budete potřebovat. Stáhněte si balíček s kodeky z naší kodekové stránky a rozbalte je do /usr/local/lib/codecs PŘED kompilací MPlayeru, jinak nebude zakompilována podpora pro Win32!
Projekt avifile má podobný balíček kodeků, ale ten se od našeho liší, takže pokud chcete všechny podporované kodeky, použijte náš balíček (bez obav, avifile s ním pracuje bez problémů).
Vlastnosti:
libavcodec
pro ně obsahuje open source dekodér.
QuickTime kodeky: na platformně x86 mohou být tyto kodeky použity k dekódování RPZA a ostatního QuickTime videa, jakož i QDesign audio proudů. Návod na instalaci naleznete v části Sorensonův video kodek.
DivX4/DivX5: informace o tomto kodeku jsou
dostupné v části DivX4/DivX5. Pravděpodobně
tento kodek nebudete
vůbec potřebovat, protože
libavcodec
(viz výš) je mnohem rychlejší a dosahuje lepší kvality než on jak při dekódování,
tak při enkódování. Vlastnosti:
libavcodec
!
XviD: Open source enkódovací alternativa k DivX4Linux. Vlastnosti:
XAnim kodeky jsou nejlepší (celoobrazovkový, hardwarový YUV zoom) pro dekódování 3ivx a Indeo 3/4/5 filmů, a některých starých formátů. Navíc jsou multiplatformní, takže jsou jedinou možností jak přehrát Indeo na ne-x86 platformách (nehledě na přehrávání XAnim:). Ale například Cinepak filmy jsou nejlépe přehrávány pomocí MPlayerova vlastního Cinepak dekodéru!
Pro dekódování Ogg Vorbis audia musíte správně
nainstalovat libvorbis
.
Binární balíčky a zdrojové kódy naleznete na
stránkách Ogg Vorbis.
MPlayer může použít knihovny z RealPlayeru 8 nebo RealONE k přehrávání souborů s RealVideo 3.0 a 4.0 videem, a Sipro/Cook zvukem. Viz část souborový formát RealMedia pro návod na instalaci a více informací.
Obecně máme dva druhy video karet. Jedny (ty novější) mají podporu pro hardwarové škálování a YUV akceleraci, druhé ji nemají.
Mohou zobrazit a škálovat (zvětšit/zmenšit) obraz na jakoukoli velikost, která se jim vejde do paměti, při nízkém zatížení CPU (dokonce i při zoomu), takže je zobrazení na celou obrazovku hezké a velmi rychlé.
Karty Matrox G200/G400/G450/G550: ačkoli je pro ně Vidix ovladač, doporučuje se místo něj raději použít modul mga_vid, jelikož pracuje mnohem lépe. Podívejte se do části mga_vid na informace o jeho použití a instalaci. Je důležité provést všechny tyto kroky před kompilací MPlayeru, jinak nebude zabudována podpora pro mga_vid. Rovněž nahlédněte do části Matrox TV-out. Pokud nepoužíváte Linux, je vaší jedinou volbou VIDIX ovladač: přečtěte si sekci VIDIX.
Karty 3Dfx Voodoo3/Banshee: prostudujte si sekci tdfxfb pokud chcete velké zrychlení. Je důležité provést všechny tyto kroky před kompilací MPlayeru, jinak nebude zabudována podpora pro 3Dfx. Rovněž nahlédněte do části 3dfx TV-out. Pokud používáte X, použijte alespoň 4.2.0, protože 3dfx Xv ovladač je vadný v 4.1.0 a předchozích.
Karty ATI: VIDIX ovladač je k dispozici pro následující karty: Radeon, Rage128, Mach64 (Rage XL/Mobility, Xpert98). Rovněž nahlédněte do sekce ATI karet s dokumentací pro TV-out, kde se dozvíte zda je pod Linuxem/MPlayerem podporován TV-out vaší karty.
Karty S3: Savage a Virge/DX čipy mají hardwarovou akceleraci. Použijte tak novou verzi XFree86 jak je jen možné, starší ovladače jsou plné chyb. Čipy Savage mají problémy se zobrazováním YV12, viz sekci S3 Xv pro více detailů. Starší Trio karty nemají žádnou, nebo jen pomalou hardwarovou podporu.
Karty nVidia: mohou, ale nemusí být dobrou volbou pro přehrávání videa pod Linuxem. Pokud nemáte kartu GeForce2 (nebo novější), nejspíše nebude pracovat bezchybně. Vestavěný nVidia ovladač v XFree86 nepodporuje hardwarovou YUV akceleraci na všech nVidia kartách. Budete muset stáhnout closed-source ovladače od nVidie z nVidia.com. Viz sekci nVidia Xv ovladač pro více detailů. Rovněž navštivte sekci nVidia TV-out pokud chcete používat TV.
3DLabs GLINT R3 a Permedia3: k dispozici máte VIDIX ovladač (pm3_vid). Rovněž nahlédněte do části VIDIX pro více informací.
Ostatní karty: žádná z výše uvedených?
Přehrávání na celé obrazovce může být dosaženo buď zapnutím softwarového škálování (použitím volby -zoom nebo -vf, ale varuji vás: je to pomalé), anebo přepnutím do menšího videorežimu, například 352x288. Pokud nemáte YUV akceleraci, doporučujeme druhou možnost. Přepínání videorežimu lze zapnout použitím volby -vm, což pracuje s těmito ovladači:
GD 7548: byla integrovaná na základní desce a testována v noteboocích řady Compaq Armada 41xx.
clgenfb
.
Pracoval ovšem pouze v 8bpp barevné hloubce, což je k ničemu.
Zdrojový kód clgenfb musí být rozšířen o ID 7548 před kompilací.
Rozhodněte se zda potřebujete GUI. Pokud ano, přečtěte si před kompilací sekci GUI.
Pokud chcete nainstalovat MEncoder (náš skvělý všestranný enkodér), přečtěte si sekci MEncoder.
Pokud máte V4L kompatibilní TV tuner kartu, a přejete si sledovat/grabovat filmy MPlayerem, přečtěte si sekci TV vstup.
Připravena k použití je podpora pěkného OSD Menu. Přečtěte si sekci OSD menu.
Pak přeložte MPlayer:
./configure make make install
V tuto chvíli máte MPlayer připraven k použití. Adresář $PREFIX/share/mplayer obsahuje soubor codecs.conf. Ten se používá pro oznámení všech kodeků a jejich schopností. Tento soubor je potřeba pouze pokud chcete tyto předvolby změnit, protože jeho kopie je součástí vlastního programu. Zjistěte jestli máte v domácím adresáři soubor codecs.conf (~/.mplayer/codecs.conf) ze starých verzí MPlayeru a odstraňte ho.
Poznamenejme že pokud umístíte codecs.conf do ~/.mplayer/, vestavěný a systémový codecs.conf budou zcela ignorovány. Nedělejte to pokud nechcete ošidit přednastavení MPlayeru, což může způsobit mnoho problémů. Pokud jen chcete změnit pořadí vyhledávání kodeků, použijte volby -vc, -ac, -vfm nebo -afm v příkazovém řádku, nebo konfiguračním souboru (viz manuálová stránka).
Uživatelé Debianu si mohou vyrobit .deb balíček, je to velmi jednoduché. Jen spusťte binárku
fakeroot debian/rules
v MPlayerově kořenovém adresáři. Podrobnosti viz Balíčkování Debianu.
Vždy si prostudujte výstup skriptu ./configure, a soubor configure.log, které obsahují informace o tom co bude zakompilováno a co ne. Také můžete chtít vidět soubory config.h a config.mak. Pokud máte některé knihovny nainstalovány, ale nebyly detekovány skriptem ./configure, pak ověřte, zda máte příslušné hlavičkové soubory (obvykle -dev balíčky) a jejich verze jsou shodné. Soubor configure.log vám obvykle prozradí co vám chybí.
Ačkoli to není podmínkou, měli byste mít nainstalovány fonty pro funkci OSD a zobrazování titulků. Doporučujeme nainstalovat soubor fontu TTF a nařídit MPlayeru jej používat. Detaily viz sekce Titulky a OSD.
GUI potřebuje GTK 1.2.x nebo GTK 2.0 (není plně GTK, ale panely jsou).
Skiny jsou uloženy v PNG formátu,
takže GTK, libpng
(a jejich příslušenství, obvykle nazývané gtk-dev
a libpng-dev
) musí být nainstalovány.
Můžete jej zakompilovat předáním volby --enable-gui skriptu
./configure. Aktivaci GUI režimu pak provedete spuštěním
binárky gmplayer.
V současnosti lze také předat volbu -gui na příkazovém řádku, z technických důvodů.
Protože MPlayer nemá přibalen žádný skin, budete si
muset nějaký stáhnout abyste mohli používat GUI. Viz naši download stránku.
Skiny by měly být rozbaleny do obvyklého systémového adresáře
($PREFIX/share/mplayer/Skin),
nebo do $HOME/.mplayer/Skin.
MPlayer ve výchozím stavu hledá v těchto adresářích
podadresář jménem default, ale
můžete použít volbu -skin nový_skin
nebo direktivu skin=nový_skin
konfiguračního souboru pro
použití skinu v adresáři */Skin/nový_skin.
MPlayer umí zobrazovat titulky spolu s filmem. V současnosti podporuje tyto formáty:
MPlayer umí vyextrahovat výše uvedené formáty titulků (s výjimkou prvních třech) do následujících cílových formátů zadáním příslušných voleb:
MPsub: -dumpmpsub
SubRip: -dumpsrtsub
MicroDVD: -dumpmicrodvdsub
JACOsub: -dumpjacosub
Sami: -dumpsami
MEncoder umí vyextrahovat DVD titulky do formátu VOBsub.
Volby příkazového řádku se mírně liší pro různé formáty:
VOBsub titulky.
VOBsub titulky sestávají z velkého (řádově megabajty) .SUB souboru,
a volitelného .IDX a/nebo .IFO
souboru. Pokud máte soubory jako
příklad.sub
,
příklad.ifo
(volitelné),
příklad.idx
- měli byste předat
MPlayeru volby -vobsub příklad
[-vobsubid id
] (volitelně s plnou cestou).
Volba -vobsubid je jako volba
-sid pro DVD, její pomocí si můžete vybrat mezi titulkovými
stopami (jazyky). Pokud vynecháte -vobsubid, pokusí se
MPlayer použít jazyky předané volbou
-slang a v případě selhání se vrátí zpět k
langidx
v souboru .IDX pro nastavení jazyku titulků. Pokud i zde
selže, nebudou titulky.
Ostatní titulky.
Ostatní formáty titulků sestávají z jediného textového souboru obsahujícího
časování, umístění a text titulků. Použití: Máme-li soubor, například
příklad.txt
,
měli byste zadat volbu -sub příklad.txt
(volitelně s plnou cestou).
Nastavení časování a umístění titulků:
sek
sek
sekund.
Hodnota může být i záporná. Zadaná hodnota se připočte k ukazateli časové
pozice filmu.
RYCHLOST
0-100
Pokud se zvětšuje rozdíl mezi filmem a titulky při použití titulkového souboru ve formátu MicroDVD, je nejspíš rozdílná snímková rychlost filmu a titulků. Poznamenejme, že formát titulků MicroDVD používá absolutní čísla snímků pro své časování, ale neobsahuje údaj o své snímkové rychlosti. Proto byste měli použít volbu -subfps s tímto formátem. Trvale lze snímkovou rychlost synchronizovat pouze manuální konverzí souboru s titulky. Konverzi můžete provést přímo MPlayerem (fps=snímková rychlost):
mplayer -dumpmicrodvdsub -fpsfps_titulků
-subfpsfps_filmu
-subsoubor_s_titulky
nějaké.avi
Informace o DVD titulcích naleznete v sekci DVD.
MPlayer vám představuje nový formát titulků nazvaný MPsub. Ten byl vyvinut Gabucinem. Jeho hlavním účelem je být dynamicky časově-orientovaný (ačkoli má i snímkový režim). Příklad (z DOCS/tech/mpsub.sub):
FORMAT=TIME # první číslo : vyčkej takto dlouho po zmizení předchozího titulku # druhé číslo : Zobrazuj aktuální titulek tolik sekund 15 3 Před dávnými časy... 0 3 ve velmi vzdálené galaxii... 0 3 Planeta Naboo byla napadena.
Jak vidíte, naším hlavním cílem bylo udělat editaci/časování/spojování/stříhání titulků co nejsnadnější. A pokud -řekněme - dostanete SSA titulky, ale špatně časované/opožděné vůči vaší verzi filmu, jednoduše proveďte
mplayer dummy.avi
-sub source.ssa -dumpmpsub
To vytvoří soubor dump.mpsub v aktuálním adresáři, který bude obsahovat původní text titulků, ale ve formátu MPsub. Pak můžete dle libosti přidávat a ubírat sekundy z jednotlivých titulků.
Titulky jsou vykreslovány technikou zvanou 'OSD', Display na obrazovce. OSD je používáno k zobrazení časové pozice, pruh hlasitosti, pruh vyhledávání atd.
Potřebujete MPlayerův balíček s fonty pro použití OSD/TIT. Existuje mnoho způsobů jak jej získat:
Použijte generátor fontů TOOLS/subfont-c. Je to úplný nástroj pro konverzi z TTF/Type1/etc fontu na balíček fontu pro mplayer (podrobnosti si přečtěte v TOOLS/subfont-c/README).
Použijte generátor fontu ve verzi pluginu pro GIMP z TOOLS/subfont-GIMP (poznámka: musíte mít také HSI RAW plugin, viz http://realtime.ssu.ac.kr/~lethean/index.php?pagename=MplayerKoreanFonts).
použitím TrueType (TTF) fontu, ve smyslu knihovny freetype
.
Vyžadována je verze 2.0.9 nebo vyšší! Máte pak dvě metody:
použijte volbu -font /path/to/sample_font.ttf
pro výběr fontu při každé příležitosti
vytvořte symlink:
ln -s /path/to/sample_font.ttf
~/.mplayer/subfont.ttf
Pokud byl MPlayer zkompilován s podporou
fontconfig
, výše uvedené metody
nebudou pracovat, místo toho -font očekává jméno fontu
fontconfig
a ve výchozím stavu použije bezpatkový (sans-serif) font. Pro seznam fontů
známých
fontconfig
u,
použijte fc-list. Příklad: -font
'Bitstream Vera Sans'
Stáhněte si hotový balíček fontu z MPlayerova serveru. Poznámka: v současnosti jsou dostupné fonty omezeny na podporu ISO 8859-1/2, ale existují i některé další (včetně Korejských, Ruských, ISO 8859-8 atd) fonty v contrib/font sekci na FTP, vytvořených uživateli.
Font by měl mít příslušný font.desc soubor mapující unicode pozice fontu na aktuální kódovou stránku textu titulků. Další možností je mít titulky kódovány v UTF-8 a použít volbu -utf8 anebo pojmenujte soubor s titulky <jméno_filmu>.utf a umístěte jej do adresáře s filmem. Záznam z různých kódových stránek do UTF-8 můžete provést použitím programu konwert nebo iconv.
Tabulka 2.1. Několik URL
URL | Komentář |
---|---|
ftp://ftp.mplayerhq.hu/MPlayer/releases/fonts/ | ISO fonty |
ftp://ftp.mplayerhq.hu/MPlayer/contrib/fonts/ | různé fonty od uživatelů |
http://realtime.ssu.ac.kr/~lethean/index.php?pagename=MplayerKoreanFonts | Korejské fonty a RAW plugin |
Pokud si zvolíte ne-TTF fonty, rozbalte stažený soubor do adresáře ~/.mplayer nebo $PREFIX/share/mplayer. Pak přejmenujte nebo nalinkujte jeden z rozbalených adresářů na font, například:
ln -s ~/.mplayer/arial-24
~/.mplayer/font
Nyní byste měli vidět časovač v levém horním rohu filmu (vypněte jej klávesou o).
(titulky jsou vždy zapnuty, pokud je chcete vypnout, přečtěte si prosím man stránku)
OSD má 4 stavy (přepínají se pomocí o):
Výchozí chování můžete změnit nastavením proměnné osdlevel
v konfiguračním souboru, nebo volbou -osdlevel na příkazovém
řádku.
MPlayer má plně uživatelsky definovatelné rozhraní OSD Menu (nabídka na obrazovce).
Menu Preferences NENÍ v současnosti IMPLEMENTOVÁNO!
Instalace
spusťte MPlayer podle následujícího příkladu:
$ mplayer -menu file.avi
V MPlayer jsou zabudovány tři metody časování.
usleep()
pro hlídání
A/V synchronizace s přesností +/- 10ms. Ačkoli někdy může být synchronizace
hlídána ještě jemněji.
Kód nového časovače používá pro tento účel RTC
(hodiny reálného času), protože mají přesné 1ms časovače. Pokud jsou RTC
dostupné, jsou automaticky použity, ale to vyžaduje oprávnění roota,
setuid root
binárku MPlayeru nebo správně nastavené jádro.
Pokud používáte jádro 2.4.19pre8 nebo pozdější, můžete nastavit maximální RTC
kmitočet pro normální uživatele pomocí systému souborů
/proc
. Použijte následný příkaz pro zapnutí RTC pro obyčejné uživatele:
echo 1024 > /proc/sys/dev/rtc/max-user-freq
Pokud nemáte tak nové jádro, můžete změnit jeden řádek v drivers/char/rtc.c a rekompilovat jádro. Najděte sekci, která začíná
* We don't really want Joe User enabling more * than 64Hz of interrupts on a multi-user machine. */ if ((rtc_freq > 64) && (!capable(CAP_SYS_RESOURCE)))
a změňte 64 na 1024. Opravdu byste ovšem měli vědět co děláte. Efektivitu nového časovače uvidíte na stavovém řádku. Funkce power managementu některých notebookových BIOSů s speedstep procesory špatně komunikují s RTC. Audio a video se mohou rozejít. Zdá se že pomáhá připojení vnějšího napájení před zapnutím notebooku. Vždy můžete vypnout podporu RTC volbou -nortc. V některých hardwarových kombinacích (zjištěno během používání ne-DMA DVD mechaniky na ALi1541 boardu) způsobuje použití RTC časování trhavé přehrávání. Pak doporučujeme použít třetí metodu.
NIKDY neinstalujte setuid root binárku MPlayeru na víceuživatelském systému! To je nejlepší cesta jak umožnit každému být rootem.
MPlayer využívá komplexní strukturu voleb. Ta sestává z globálních voleb uváděných jako první, například:
mplayer -vfm 5
a voleb zapisovaných za jménem souboru, které se projeví pouze u tohoto jména souboru/URL/čehokoli, například:
mplayer -vfm 5film1.avi
film2.avi
-vfm 4
Můžete seskupovat jména souborů/adresy URL pomocí {
a
}
. Toho se dá využít s volbou -loop:
mplayer { 1.avi -loop 2 2.avi } -loop 3
Výše uvedený příkaz přehraje soubory v tomto pořadí: 1, 1, 2, 1, 1, 2, 1, 1, 2.
Přehrávání souboru:
mplayer [volby
] [cesta
/]soubor
Jiný způsob přehrání souboru:
mplayer [volby
]file:///uri-eskejpovaná-cesta-k-souboru
Přehrávání více souborů:
mplayer [výchozí volby
] [cesta
/]soubor1
[volby pro soubor1
]soubor2
[volby pro soubor2
] ...
Přehrávání VCD:
mplayer [volby
] vcd://číslo_stopy
[-cdrom-device/dev/cdrom
]
Přehrávání DVD:
mplayer [volby
] dvd://číslo_titulu
[-dvd-device/dev/dvd
]
Přehrávání z WWW:
mplayer [volby
] http://doména.com/soubor.asf
(rovněž lze použít playlisty)
Přehrávání z RTSP:
mplayer [volby
] rtsp://server.priklad.com/JmenoProudu
Příklady:
mplayer -vo x11/mnt/Filmy/Kontakt/kontakt2.mpg
mplayer vcd://2
-cdrom-device/dev/hdc
mplayer -afm 3/mnt/DVDtrailery/alien4.vob
mplayer dvd://1
-dvd-device/dev/hdc
mplayer -abs 65536 -delay -0.4 -nobps~/filmy/test.avi
MPlayer má plně konfigurovatelnou, příkazy řízenou, ovládací vrstvu, která vám umožní ovládat MPlayer pomocí klávesnice, myši, joysticku nebo dálkového ovládače (používající LIRC). Úplný seznam ovládacích prvků na klávesnici naleznete v man stránce.
MPlayer umožňuje přiřadit jakoukoli klávesu jakémukoli
příkazu MPlayeru pomocí jednoduchého konfiguračního
souboru.
Syntaxe sestává z názvu klávesy následovaného příkazem. Výchozí umístění
konfiguračního souboru je
$HOME/.mplayer/input.conf ale můžete jej potlačit použitím
volby -input konfig
(relativní cesty jsou vztaženy k $HOME/.mplayer).
Úplný seznam podporovaných jmen kláves dostanete příkazem mplayer -input keylist a úplný seznam dostupných příkazů příkazem mplayer -input cmdlist.
Linux Infrared Remote Control – použijte jednoduše vyrobitelný doma udělaný IR-přijímač, (téměř) libovolný dálkový ovládač a ovládejte jím svůj Linux! Více se o tom dovíte na domácí stránce LIRC.
Pokud máte nainstalován balíček LIRC, configure jej zdetekuje.
Pokud vše dopadne dobře, MPlayer při startu
vypíše "Nastavuji podporu LIRC...
".
Pokud dojde k chybě, oznámí vám to. Pokud nevypíše žádnou zprávu o LIRC,
pak pro něj není podpora zakompilována. To je vše :-)
Jméno spustitelného souboru MPlayeru je - překvapení -
mplayer. Můžete použít jakýkoli příkaz
MPlayeru a dokonce i více než jeden, pokud je oddělíte
znakem \n
.
Nezapomeňte zapnout opakovací (repeat) příznak v .lircrc tam,
kde to dává smysl (vyhledávání, hlasitost, atd.).
Zde je výňatek z demonstračního
.lircrc:
begin button = VOLUME_PLUS prog = mplayer config = volume 1 repeat = 1 end begin button = VOLUME_MINUS prog = mplayer config = volume -1 repeat = 1 end begin button = CD_PLAY prog = mplayer config = pause end begin button = CD_STOP prog = mplayer config = seek 0 1\npause end
Pokud se vám nelíbí standardní umístění lirc-config souboru
(~/.lircrc) použijte volbu -lircconf
soubor
k určení jiného souboru.
Závislý režim vám umožňuje vytvořit jednoduché ovládací panely (frontendy) MPlayeru. Pokud je MPlayer spuštěn s volbou -slave, pak bude číst příkazy oddělené novým řádkem (\n) ze standardního vstupu. Příkazy jsou dokumentovány v souboru slave.txt.
MPlayer umí přehrávat soubory ze sítě s použitím protokolu HTTP, FTP, MMS nebo RTSP/RTP.
Přehrávání pracuje jednoduše tak, že uvedete URL na příkazovém řádku.
MPlayer ctí systémovou proměnnou http_proxy
a použije proxy pokud je k dispozici. Proxy může být rovněž vynucena:
mplayer http_proxy://proxy.micorsops.com:3128/http://micorsops.com:80/stream.asf
MPlayer umí číst ze std. vstupu (ne z pojmenovaných rour). To může být například použito pro přehrávání z FTP:
wget ftp://micorsops.com/cokoli.avi
-O - | mplayer -
Také doporučujeme zapnout -cache při přehrávání ze sítě:
wget ftp://micorsops.com/cokoli.avi
-O - | mplayer -cache 8192 -
Jakmile jste přiměli MPlayer přehrát váš oblíbený internetový proud, můžete použít volbu -dumpstream k uložení datového proudu do souboru. For example:
mplayerhttp://217.71.208.37:8006
-dumpstream -dumpfileproud.asf
uloží proudové video z
http://217.71.208.37:8006
do
proud.asf
.
Pracovat to bude se všemi MPlayerem podporovanými
protokoly, jako MMS, RTSP, a tak dále.
Pokud chcete z proudu uložit pouze zvuk nebo video, použijte
-dumpaudio nebo -dumpvideo, ale pamatujte,
že MPlayer bude ignorovat všechny vyjma poslední
-dump* volby zadané na příkazovém řádku.
Vzdálené datové proudy umožňují přístup k většině MPlayerem podporovaných proudů ze vzdáleného počítače. Hlavní určení této funkce je umožnit přímo použít CD nebo DVD mechaniku jiného počítače na síti (předpokladem je, že máte dostatečně rychlé připojení). Na spodní hranici nejsou některé typy datových proudů (v současnosti TV a MF) použitelné přes síť protože jsou implementovány na úrovni demuxeru. Je to škoda pro MF ale TV proudy by tak jako tak vyžadovaly šíleně vysokou rychlost
Poté co zkompilujete MPlayer běžte do adresáře TOOLS/netstream a proveďte make pro sestavení serverové binárky. Potom můžete zkopírovat program netstream na správné místo v systému (v Linuxu obvykle /usr/local/bin).
Nejprve spusťte server na počítači na který se chcete připojit ze sítě. Server je zatím velmi jednoduchý a nemá žádné volby příkazového řádku, proto jen zadejte netstream. Teď můžete například přehrát druhou stopu na VCD na serveru:
mplayer -cache 5000 mpst://jméno_serveru/vcd://2
Taky můžete přistupovat k souborům na tomto serveru:
mplayer -cache 5000 mpst://jmeno_serveru//usr/local/filmy/lol.avi
Poznamenejme, že cesty nezačínající / jsou relativní k adresáři kde byl spuštěn server. Volba -cache není nutná, ale velmi ji doporučujeme.
Berte na vědomí že v současnosti není tento server vůbec bezpečný. Nenadávejte tedy na množství průniků do systému, které je s ním možné. Místo toho raději zašlete (dobrý) patch který by jej vylepšil, nebo napište svůj vlastní server.
Systém seznamů editačních zásahů (EDL) umožňuje automaticky vynechat nebo vypnout zvuk v částech videa při přehrávání, což je zajišťováno pro každý film zvláštním EDL konfiguračním souborem.
Toho se dá využít pro ty, kdo chtějí sledovat film v "rodinném" režimu. Můžete vystříhat veškeré násilí, nechutnosti, Jar-Jar Binkse .. z filmu podle svých vlastních osobních preferencí. Mimoto jsou zde i jiná využití, jako je automatické vystřihávání reklam z videa které sleduješ.
Formát EDL souboru je poměrně kostrbatý. Jakmile dospěje EDL systém do určité úrovně, pravděpodobně bude implementován formát založený na XML (ponecháme zpětnou kompatibilitu s předchozími EDL formáty).
Vložte volbu -edl <soubor> při spouštění MPlayer, se jménem EDL souboru, který chcete použít na video.
Současný formát EDL souboru je:
[počáteční sekunda] [koncová sekunda] [akce]
Kde jsou sekundy desetinnými čísly a akce je buď
0
pro vynechání nebo 1
pro vypnutí zvuku.
Příklad:
5.3 7.1 0 15 16.7 1 420 422 0
To vynechá část videa mezi sekundami 5.3 a 7.1, pak vypne zvuk na 15 sekundě, zapne jej na 16.7 sekundy a vynechá část videa mezi sekundami 420 a 422. Tyto akce budou provedeny jakmile časovač přehrávání dosáhne hodnoty zadané v souboru.
Pro vytvoření EDL souboru se kterým budete moci začít, použijte volbu -edlout <soubor>. Během přehrávání, když budete chtít označit předchozí 2 sekundy pro vynechání, stiskněte i. Odpovídající značka bude zapsána do souboru pro tento čas. Můžete se k němu pak vrátit a doladit vytvořený EDL soubor.
Většina DVD a mnoho jiných souborů obsahuje surround zvuk. MPlayer podporuje přehrávání přehrávání surround, ale ve výchozím nastavení jej nezapíná, jelikož stereo vybavení je mnohem častější. Pro přehrávání souboru, který má více než dvoukanálový zvuk použijte volbu -channels. Například pro přehrání DVD s 5.1 zvukem:
mplayer dvd://1 -channels 6
Poznamenejme, že ačkoli se jmenuje "5.1", ve skutečnosti má šest kanálů. Pokud máte surround zvukové vybavení, můžete si přidat volbu channels do svého konfiguračního souboru MPlayeru ~/.mplayer/config. Například pro použití čtyřkanálového přehrávání zvuku jako výchozí, přidejte následující řádek:
channels=4
MPlayer pak poskytuje zvuk ve čtyřech kanálech, pokud jsou všechny čtyři kanály k dispozici.
MPlayer ve výchozím nastavení neduplikuje žádné kanály a nedělá to ani většina audio ovladačů. Pokud to chcete udělat ručně:
mplayer soubor
-af channels=2:2:0:1:0:0
Vysvětlení naleznete v sekci kopírování kanálů.
DVD mají obvykle surround zvuk enkódovaný ve formátu AC3 (Dolby Digital) nebo DTS (Digital Theater System). Některá moderní zařízení jsou schopna dekódovat tyto formáty interně. MPlayer lze nakonfigurovat tak, aby přenesl zvuková data bez dekódování. To bude fungovat pouze pokud máte S/PDIF (Sony/Philips Digital Interface) jack ve zvukové kartě.
Pokud vaše zařízení umí dekódovat jak AC3, tak DTS, můžete bezpečně zapnout passthrough pro oba formáty. Jinak zapněte passthrough pouze pro formát, který vaše zařízení podporuje.
Zapnutí passthrough z příkazového řádku:
Jen pro AC3 použijte -ac hwac3
Jen pro DTS použijte -ac hwdts
Pro oba (AC3 i DTS) použijte -afm hwac3
Zapnutí passthrough v konfiguračním souboru MPlayeru:
Jen pro AC3 použijte ac=hwac3,
Jen pro DTS použijte ac=hwdts,
Pro oba (AC3 i DTS) použijte afm=hwac3
Povšimněte si čárky (",") na konci ac=hwac3, a ac=hwdts,. To umožní MPlayeru použít normální kodek, když přehrávaný soubor nemá AC3 nebo DTS zvuk. Volba afm=hwac3 nevyžaduje čárku; MPlayer se zařídí podle potřeby automaticky, pokud je zvolena rodina audio kodeků.
***TODO***
Tato sekce musí být teprve napsaná a nemůže být dokončena dokud nám někdo nepošle vzorkové soubory pro testování. Pokud máte nějaké maticově enkódované zvukové soubory, víte, kde je lze najít, nebo máte jakoukoli informaci, která by mohla pomoci, pošlete prosím zprávu do konference MPlayer-DOCS. Do předmětu vložte "[matrix-encoded audio]".
Pokud nepřijdou žádné soubory nebo informace, tato sekce bude odstraněna.
Dobré odkazy:
MPlayer obsahuje HRTF (Head Related Transfer Function) filtr založený na projektu MIT, kde jsou měření vzata z mikrofonů na umělé lidské hlavě.
Ačkoli není možné přesně imitovat surround systém, MPlayerův HRTF filtr produkuje prostorově mnohem prokreslenější zvuk ve 2-kanálových sluchátkách. Obvyklé míchání jednoduše kombinuje všechny kanály do dvou; krom kombinace kanálů, hrtf generuje slabá echa, poněkud zvětšuje oddělení stereo kanálů a mění hlasitost některých kmitočtů. Jestli HRTF zní lépe může záviset na zdrojovém zvuku a osobním vkusu, ale určitě stojí za zkoušku.
Pro přehrání DVD s HRTF:
mplayer dvd://1 -channels 6 -af hrtf
hrtf pracuje dobře pouze s 5 nebo 6 kanály. hrtf také vyžaduje zvuk 48 kHz. DVD audio již je 48 kHz, ale pokud máte soubor s odlišným vzorkovacím kmitočtem, který chcete přehrávat pomocí hrtf, musíte jej převzorkovat:
mplayer soubor
-channels 6 -af resample=48000,hrtf
Naneštěstí neexistuje standard pro řazení kanálů. Následující řazení jsou používaná v AC3 a jsou poměrně typická; zkuste je a uvidíte, zda tomu váš zdroj odpovídá. Kanály jsou číslovány od 0.
mono
stereo
kvadrofonní
surround 4.0
surround 5.0
surround 5.1
Volba -channels se používá pro požadavek na počet kanálů z dekodéru zvuku. Některé audio kodeky používají počet zadaných kanálů pro rozhodování, zda je nutné podmixovat zdroj. Poznamenejme, že to ne vždy ovlivní počet výstupních kanálů. Například použití -channels 4 pro přehrání stereo MP3 souboru povede ke 2-kanálovému výstupu, jelikož MP3 kodek neprodukuje extra kanály.
Pro vytvoření nebo odstranění kanálů slouží zvukový filtr channels, který je rovněž vhodný k ovládání počtu zvukových kanálů posílaných do zvukové karty. Viz následující sekce pro více informací o manipulacích s kanály.
Mono zní mnohem lépe, když je přehráván dvěma reproduktory – zvlášť při použití sluchátek. Audio soubory, které ve skutečnosti mají jeden kanál, jsou automaticky přehrávány dvěma reproduktory; naneštěstí je většina mono souborů ve skutečnosti enkódována jako stereo s jedním kanálem utlumeným. Nejjednodušší a nejblbuvzdornější způsob, jak přinutit oba reproduktory poskytovat stejný zvuk je filtr extrastereo:
mplayer soubor
-af extrastereo=0
To zprůměruje oba kanály, takže budou mít poloviční hlasitost originálu. Další sekce přinášejí příklady dalších možností, jak to udělat bez snížení hlasitosti, ale ty jsou mnohem komplexnější a vyžadují odlišné volby v závislosti na tom, který kanál ponecháte. Pokud potřebujete jen upravit hlasitost, může být lehčí experimentovat s filtrem volume a najít vhodnou hodnotu. Například:
mplayer soubor
-af extrastereo=0,volume=5
Filtr channels umí přesunout jakýkoli nebo všechny kanály. Nastavení všech parametrů filtru channels může být komplikované a vyžaduje pozornost.
Rozhodněte, kolik výstupních kanálů potřebujete. To je první parametr.
Spočítejte, kolik přesunů kanálů budete dělat. To je druhý parametr. Každý kanál může být přesunut naráz do několika různých kanálů, ale pamatujte, že pokud je kanál přesunut (dokonce i jen do jednoho cíle), bude zdrojový kanál prázdný dokud do něj nepřesunete jiný kanál. Chcete-li kanál zkopírovat, aby zdroj zůstal stejný, jednoduše přesuňte kanál do obou, cíle i zdroje. Například:
channel 2 --> channel 3 channel 2 --> channel 2
Zapište kopie kanálů jako dvojici parametrů. Pamatujte, že první kanál je 0,
druhý 1 atd. Na pořadí parametrů nezáleží, pokud jsou správně sdruženy do
párů zdroj:cíl
.
Zde máte příklad jiného způsobu, jak hrát jeden kanál v obou reproduktorech. Pro náš účel předpokládejme, že by měl být přehráván levý kanál a zahozen pravý. Následujeme výše uvedený postup:
Abychom měli výstupní kanál pro každý z obou reproduktorů, musí být první parametr "2".
Levý kanál musí být přesunut do pravého a také sám do sebe, aby nezůstal prázdný. To jsou celkem dva přesuny, takže druhý parametr bude také "2".
Pro přesun levého kanálu (channel 0) do pravého kanálu (channel 1) bude dvojice parametrů "0:1" a "0:0" přesune levý kanál na sebe.
Vše dohromady pak dá:
mplayer soubor
-af channels=2:2:0:1:0:0
Výhoda tohoto postupu před extrastereo je v tom, že je hlasitost každého výstupního kanálu stejná jako hlasitost zdrojového kanálu. Nevýhodou je to, že parametry musí být změněny na "2:2:1:0:1:1", pokud je požadovaný zvuk v pravém kanálu. Také je těžší si je pamatovat a napsat.
Ve skutečnosti je mnohem jednodušší způsob použití filtru channels pro přehrávání levého kanálu v obou reproduktorech:
mplayer soubor
-af channels=1
Druhý kanál je zahozen a bez dalších parametrů je ponechán jediný zbývající kanál. Ovladače zvukových karet hrají jednokanálový zvuk automaticky v obou reproduktorech. To pracuje pouze pokud je požadovaný levý kanál.
Dalším běžným úkonem je duplikace čelních kanálů a jejich přehrávání v zadních reproduktorech kvadrofonní sestavy.
Zde by mely být čtyři výstupní kanály. První parametr je "4".
Oba přední kanály musí být přesunuty do odpovídajících zadních kanálů a také na sebe. To jsou čtyři přesuny, takže druhý parametr bude "4".
Levý čelní (channel 0) přesuneme do levého zadního (channel 2): "0:2". Levý čelní musíme rovněž přesunout do sama sebe: "0:0". Pravý přední (channel 1) je přesunut do pravého zadního (channel 3): "1:3" a také do sebe: "1:1".
Po zkombinování všech nastavení dostaneme:
mplayer soubor
-af channels=4:4:0:2:0:0:1:3:1:1
Filtr pan umí mixovat kanály podle požadavků uživatele. Umožňuje vše co filtr channels a ještě víc. Naneštěstí jsou jeho parametry ještě komplikovanější.
Rozhodněte, s kolika kanály budeme pracovat. To můžete nastavit pomocí volby -channels a/nebo -af channels. Později se v příkladech dozvíte, kdy použít kterou.
Rozhodněte, kolik kanálů propustíme do pan (ostatní dekódované kanály jsou zahozeny). To je první parametr a také ovládá, kolik kanálů bude mít výstup.
Zbývající parametry nastavují, kolik z daného kanálu bude namixováno do každého dalšího kanálu. Toto je ta komplikovaná část. Pro usnadnění si rozdělte parametry do několika skupin, jednu pro každý výstupní kanál. Každý parametr uvnitř skupiny odpovídá vstupnímu kanálu. Číslo, které nastavíte bude procento vstupního kanálu, které bude namixováno do výstupního kanálu.
pan akceptuje hodnoty od 0 do 512, což odpovídá 0% až 51200% původní hlasitosti. Buďte opatrní, pokud používáte hodnoty větší než 1. Nejen, že vám to dá velmi vysokou hlasitost, ale pokud překročíte dynamický rozsah své zvukové karty, můžete uslyšet rány a praskání. Pokud chcete, můžete za pan přidat ,volume pro zapnutí omezení, ale i tak je nejlepší udržet hodnoty pan dostatečně nízko, aby omezování nebylo potřeba.
Zde máte další příklad pro přehrávání levého kanálu ve dvou reproduktorech. Následujme výše uvedené kroky:
Na výstupu pan by měly být dva kanály, takže první parametr je "2".
Jelikož máme dva vstupní kanály, budeme mít dvě sady parametrů. Jelikož máme rovněž dva výstupní kanály, budeme mít dva parametry v každé sadě. Levý kanál ze souboru by měl jít s plnou hlasitostí do nového levého i pravého kanálu. Takže první sada parametrů je "1:1". Pravý kanál by měl být zahozen, takže druhá sada bude "0:0". Hodnoty 0 na konci je možné vynechat, ale pro snadnější pochopení je zde necháváme.
Dáme-li vše dohromady, dostaneme:
mplayer soubor
-af pan=2:1:1:0:0
Pokud chceme místo levého kanálu pravý, budou parametry pan tyto: "2:0:0:1:1".
Stejně jako s channels můžeme použít zkrácený zápis, který funguje pouze pro levý kanál:
mplayer soubor
-af pan=1:1
Jelikož má pan pouze jeden vstupní kanál (druhý je zahozen), máme pouze jednu sadu s jedním parametrem, takže tento jediný kanál dává 100% sám ze sebe.
MPlayerův dekodér 6-kanálového PCM neumí podmixování. Máme však možnost k tomu použít pan:
Počet výstupních kanálů je 2, takže první parametr je "2".
Při šesti vstupních kanálech budeme mít šest sad parametrů. Jelikož nás však zajímá pouze výstup z prvních dvou kanálů, vystačíme s pouhými dvěma sadami; zbývající čtyři sady můžeme vynechat. Pozor na to, že ne všechny vícekanálové zvukové soubory mají stejné řazení kanálů! Tento příklad demonstruje podmixování souboru se stejným řazením kanálů jako má AC3 5.1:
0 - levý přední 1 - pravý přední 2 - levý zadní 3 - pravý zadní 4 - středový přední 5 - subwoofer
První sada parametrů je výčtem procentních hodnot hlasitostí v daném pořadí, kterou by měl dostat každý výstupní kanál z levého předního kanálu: "1:0". Pravý přední kanál by měl jít do pravého výstupu: "0:1". Stejně tak zadní kanály: "1:0" a "0:1". Středový kanál jde do obou výstupních kanálů s poloviční hlasitostí: "0.5:0.5" a subwoofer jde do obou s plnou hlasitostí: "1:1".
Dáme-li vše dohromady, dostaneme:
mplayer 6-kanálové.wav
-af pan=2:1:0:0:1:1:0:0:1:0.5:0.5:1:1
Uvedené procentní hodnoty jsou pouhým příkladem. Upravte si je podle vlastního uvážení.
Pokud máte robustní čelní reprobedny, nemusíte utrácet za nákup subwooferu pro kompletní 5.1 zvukový systém. Použijete-li volbu -channels 5 pro požadavek, aby liba52 dekódovala 5.1 zvuk do 5.0, bude zkrátka kanál pro subwoofer zahozen. Pokud jeho obsah chcete roznést do ostatních kanálů, musíte jej podmixovat ručně pomocí pan:
Jelikož se pan potřebuje dostat ke všem šesti kanálům, nastavte -channels 6, takže je liba52 dekóduje všechny.
Filtr pan produkuje pouze pět kanálů, takže první parametr je 5.
Šest vstupních a pět výstupních kanálů znamená šest sad po pěti parametrech.
Zkombinujeme-li to dohromady, dostaneme:
mplayer dvd://1
-channels 6 -af pan=5:1:0:0:0:0:0:1:0:0:0:0:0:1:0:0:0:0:0:1:0:0:0:0:0:1:0.5:0.5:0:0:0
Některé zvukové stopy jsou příliš tiché na to, aby mohly být pohodlně poslouchány bez zesílení. To je problém, pokud váš zvukový systém neumožňuje potřebné zesílení. Volba -softvol poručí MPlayeru použití vestavěného směšovače. Pak můžete použít klávesy pro nastavení hlasitosti (výchozí 9 a 0) pro dosažení mnohem vyšších úrovní hlasitosti. Takto neobejdete směšovač vaší zvukové karty; MPlayer pouze zesílí signál před jeho odesláním do zvukové karty. Následující příklad je dobrým startem:
mplayer tichý-soubor
-softvol -softvol-max 300
Volba -softvol-max nastavuje maximální povolenou výstupní hlasitost v procentech původní hlasitosti. Například, -softvol-max 200 umožní nastavit hlasitost až na dvojnásobek původní úrovně. Je bezpečné nastavit vysoké hodnoty volbou -softvol-max; vyšší hlasitost se nepoužije, dokud nepoužijete tlačítka nastavení hlasitosti. Jedinou nevýhodou velkých hodnot je to, že jelikož MPlayer nastavuje hlasitost o podíl z maximální hlasitosti, nebudete mít tak jemný krok nastavení pomocí tlačítek. Pokud potřebujete přesnější nastavování, použijte nižší hodnotu pro -softvol-max a/nebo nastavte -volstep 1.
Volba -softvol pracuje tak, že ovládá zvukový filtr volume. Chcete-li přehrávat soubor od začátku při určité hlasitosti, můžete nastavit volume ručně:
mplayer tichý-soubor
-af volume=10
Takto přehrajete soubor se ziskem 10 decibelů. Při použití filtru volume buďte velmi opatrní. Pokud použijete příliš vysokou hodnotu, můžete si poškodit sluch. Začněte s nízkou hodnotou a postupně zvyšujte, až docílíte požadované hlasitosti. Při nastavení příliš vysokých hodnot také hrozí, že volume bude nucen ořezat signál, aby předešel odeslání dat mimo dovolený rozsah do zvukové karty; to povede ke zkreslení signálu.
Moderní CD-ROM mechaniky dosahují velmi vysokých otáček a některé z nich mohou pracovat i se sníženými otáčkami. Existuje několik důvodů, pro které byste mohli chtít změnit rychlost CD-ROM mechaniky:
Byly zprávy o chybách čtení při vysokých rychlostech, zvláště u špatně vylisovaných CD-ROMů. Z těchto důvodů může snížení rychlosti působit jako prevence ztráty dat.
Mnoho CD-ROM mechanik je nechutně hlučných, nižší rychlost může omezit tento hluk.
Můžete snížit rychlost IDE CD-ROM mechanik pomocí hdparm, setcd nebo cdctl. Pracuje to asi takto:
hdparm -E[rychlost]
[mechanika cdrom]
setcd -x[rychlost]
[mechanika cdrom]
cdctl -bS [rychlost]
Pokud používáte SCSI emulaci, budete muset předat tato nastavení do skutečného IDE zařízení, nikoli emulovaného SCSI zařízení.
Pokud máte práva root-a, následující příkaz vám rovněž může pomoci:
echo file_readahead:2000000 > /proc/ide/[mechanika cdrom]
/settings
To nastaví čtení napřed na 2MB, což pomůže při poškrábaných médiích. Pokud ji však nastavíte příliš vysoko, bude mechanika stále zrychlovat a zpomalovat, což výrazně sníží její výkon. Doporučujeme vám rovněž vyladit vaši CD-ROM mechaniku pomocí hdparm:
hdparm -d1 -a8 -u1 [cdrom zařízení]
To zapne DMA přístup, čtení napřed a odmaskování IRQ (přečtěte si man stránku programu hdparm pro podrobné vysvětlení).
Prostudujte si "/proc/ide/cdrom zařízení
/settings"
pro jemné doladění vaší CD-ROM.
SCSI mechaniky nemají jednotný způsob pro nastavení těchto parametrů (Znáte nějaký? Řekněte nám jej!). Existuje nástroj, který pracuje se SCSI mechanikami Plextor.
Úplný seznam dostupných voleb naleznete v man stránce. Syntaxe pro standardní Digital Versatile Disc (DVD) je následující:
mplayer dvd://<track>
[-dvd-device<DVD_zařízení>
]
Příklad:
mplayer dvd://1
-dvd-device/dev/hdc
Výchozím DVD zařízením je /dev/dvd. Pokud se vaše nastavení liší, vytvořte symlink, nebo uveďte správné zařízení na příkazovém řádku pomocí volby -dvd-device.
Nový styl podpory DVD (mpdvdkit2).
MPlayer používá libdvdread
a
libdvdcss
pro dekódování a přehrávání DVD. Tyto dvě
knihovny jsou obsaženy v podadresáři
libmpdvdkit2/ zdrojových kódů
MPlayeru, nemusíte je tedy instalovat zvlášť
Zvolili jsme tento způsob, protože jsme museli opravit chybu v
libdvdread
a aplikovat patch, který přidává podporu
kešování zlomených CSS klíčů, na
libdvdcss
. To vedlo k výraznému zvýšení rychlosti,
protože klíče nemusí být nyní lámány pokaždé před přehráváním.
MPlayer umí rovněž použít knihovny
libdvdread
a libdvdcss
na systémové úrovni, ale toto řešení nedoporučujeme,
protože může vést k chybám, nekompatibilitě knihovny a nižší rychlosti.
V případě problémů s dekódováním DVD, zkuste vypnout supermount a podobná udělátka.
Struktura DVD. DVD disky mají 2048 bajtů na sektor s ECC/CRC. Obvykle mají souborový systém UDF v jediné stopě, obsahující různé soubory (malé .IFO a .BUK soubory a velké (1GB) .VOB soubory). Jsou to reálné soubory a mohou být kopírovány/přehrávány z připojeného systému souborů nešifrovaného DVD.
Soubory .IFO obsahují informace pro navigaci ve filmu (kapitola/titul/mapa úhlů, tabulka jazyků, atd) a jsou potřeba pro čtení a interpretaci obsahu .VOBu (filmu). Soubory .BUK jsou jejich zálohami. Všude používají sektory, takže musíte použít surové (RAW) adresování sektorů na disku, abyste se mohli navigovat v DVD, nebo dekryptovat jeho obsah.
Podpora DVD vyžaduje přímý sektorově-orientovaný přístup k zařízení. Naneštěstí
musíte (pod Linuxem) být root, abyste dostali adresu sektoru souboru.
To je důvod proč vůbec nepoužíváme modul souborového systému z kernelu a místo
něj jej implementujeme v uživatelském prostoru. To zajišťují
libdvdread
0.9.x a libmpdvdkit
.
UDF ovladač z kernelu není potřeba, jelikož tyto knihovny mají zabudován svůj
vlastní. Rovněž nemusí být DVD přimountováno vzhledem k tomu že používáme
pouze přímý (raw) přístup.
Někdy /dev/dvd nemůže být čteno uživateli, proto autoři
libdvdread
implementovali emulační vrstvu, která
převádí sektorové adresy na soubor+offset za účelem emulace raw přístupu
nad připojeným souborovým systémem nebo dokonce i hard diskem.
libdvdread
dokonce přijme bod připojení (mountpoint)
místo názvu zařízení pro přímý přístup a podívá se do
/proc/mounts na jméno zařízení. To bylo vyvinuto pro
Solaris, kde jsou názvy souborů dynamicky alokovány.
Výchozím DVD zařízením je /dev/dvd. Pokud se vaše nastavení liší, vytvořte symlink, nebo uveďte správné zařízení na příkazovém řádku pomocí volby -dvd-device.
DVD autentifikace.
Tato autentifikační a dekryptovací metoda nového stylu podpory DVD je
zajišťována použitím patchované knihovny libdvdcss
(viz výš). Metoda může být nastavena pomocí proměnné prostředí
DVDCSS_METHOD
nastavené na klíč, disk nebo titul.
Pokud není nastavena, zkouší se následující metody (výchozí: "key", "title request"):
bus key: Tento klíč je dohodnut během autentifikace (dlouhá směs ioctl volání a výměn různých klíčů, kryptování) a je použit pro zašifrování klíčů titulu a disku než jsou odeslány přes nechráněnou sběrnici (jako prevence odposlechnutí). Klíč "bus key" je potřeba pro předdešifrování šifrovaného klíče disku.
cached key: MPlayer se poohlédne po již zlomených klíčích titulu, které jsou uloženy v adresáři ~/.mplayer/DVDKeys (rychlé ;).
key: Pokud není k dispozici "cached key", MPlayer zkusí rozšifrovat klíč disku pomocí sady přiložených klíčů přehrávače.
disk: Pokud selže "key" metoda, (např. nejsou přiloženy klíče přehrávače), MPlayer crackne klíč disku algoritmem hrubé síly. Tento proces je náročný na CPU a vyžaduje 64 MB paměti (16M 32Bitových položek hash tabulky) pro uložení pracovních dat. Tato metoda by měla fungovat vždy (pomalé).
title request: S pomocí klíče disku, požádá
MPlayer o šifrované klíče titulu, které jsou
ukryty ve skrytých sektorech pomocí
ioctl()
.
Ochrana regiony v RPC-2 mechanikách je prováděna v tomto kroku a na některých
mechanikách může selhat.
Pokud uspěje, budou klíče titulu (title keys) dekryptovány pomocí klíče disku
(disk key) a klíče sběrnice (bus key).
title: Tato metoda je použita pokud selže požadavek na titul a nespoléhá se na výměnu klíčů s DVD mechanikou. Používá se zde kryptografický útok na přímé určení klíče (vyhledáváním opakujícího se vzoru v dešifrovaném obsahu VOB a rozhodnutím zda čistý text odpovídající prvním šifrovaným bajtům je pokračováním tohoto vzoru). Metoda je také známa jako "known plaintext attack" nebo "DeCSSPlus". V nemnoha případech může metoda selhat z důvodu nedostatku šifrovaných dat na disku pro provedení statistického útoku, nebo protože se klíč mění uprostřed titulu. Tato metoda je jediným způsobem jak dekryptovat DVD uložené na harddisku nebo DVD se špatným regionem na RPC2 mechanice (pomalé).
RPC-1 DVD mechaniky chrání nastavení regionu pouze softwarově. RPC-2 mechaniky mají hardwarovou ochranu umožňující pouze 5 změn. Může být potřeba/doporučeno provést upgrade firmwaru na RPC-1 pokud máte RPC-2 DVD mechaniku. Můžete zkusit najít upgrady firmwaru pro svou mechaniku na internetu, toto firmwarové fórum může být dobrým začátkem pro vaše hledání. Pokud pro vaši mechaniku není k dispozici upgrade firmwaru, použijte nástroj regionset pro nastavení region kódu vaší DVD mechaniky (pod Linux). Varování: Region můžete přenastavit pouze pětkrát.
Úplný seznam dostupných voleb naleznete v man stránce. Syntaxe pro standardní Video CD (VCD) je následující:
mplayer vcd://<stopa>
[-cdrom-device<zařízení>
]
Příklad:
mplayer vcd://2
-cdrom-device/dev/hdc
Výchozím VCD zařízením je /dev/cdrom. Pokud se vaše nastavení liší, vytvořte symlink nebo uveďte správné zařízení na příkazovém řádku pomocí volby -cdrom-device.
Minimálně SCSI CD-ROM mechaniky Plextor a Toshiba vykazují mizerný výkon
při čtení VCD. To proto, že CDROMREADRAW ioctl
není pro tyto mechaniky plně implementováno. Pokud máte zkušenosti se
SCSI programováním, prosíme
pomozte nám
implementovat obecnou SCSI podporu pro VCD.
Mezitím můžete extrahovat data z VCD pomocí readvcd a výsledný soubor přehrát v MPlayeru.
Struktura VCD. Video CD (VCD) je tvořeno CD-ROM XA sektory, čili stopy CD-ROM mode 2 třída 1 a 2:
První stopa je ve formátu mode 2 třída 2 což znamená, že používá L2 korekci chyb. Stopa obsahuje souborový systém ISO-9660 s 2048 bajty/sektor. Tento souborový systém obsahuje VCD metadata informace, stejně jako statické snímky často používané v menu. MPEG segmenty menu mohou být rovněž uloženy v této první stopě, ale tyto MPEGy musí být rozsekány na série 150 sektorových chunků. Souborový systém ISO-9660 může obsahovat další soubory, které nejsou potřeba pro operace s VCD.
Druhá a ostatní stopy jsou všeobecně surovými MPEG (film) stopami s 2324 bajty/sektor, obsahující jeden MPEG PS datový paket na sektor. Ty jsou v mode 2 třída 1 formátu, takže obsahují více dat v každém sektoru za cenu omezení korekce chyb. Je rovněž možné mít CD-DA stopy na VCD za první stopou. V některých operačních systémech jsou triky, které umožňují zpřístupnit tyto ne-ISO-9660 stopy v systému souborů. V dalších operačních systémech jako GNU/Linux to není možné (zatím). Zde MPEG data nemohou být připojena. Protože většina filmů je uložena uvnitř tohoto druhu stopy, měli byste nejprve zkusit vcd://2.
Existují také VCD disky bez první stopy (jediná stopa bez systému souborů). Můžete je přehrát, ale nemohou být namountovány.
Definice standardu Video CD se nazývá Philips "White Book" a není obecně přístupná online, ale musí být zakoupena od Philipsu. Podrobnější informace o Video CD můžete nalézt v dokumentaci programu vcdimager.
Pár slov o .DAT souborech. Soubor veliký ~600 MB viditelný v první stopě připojeného VCD není skutečným souborem! Je to takzvaná ISO gateway, vytvořená proto, aby mohl Windows přistupovat k těmto stopám (Windows vůbec neumožňuje aplikacím surový přístup k zařízení). Pod Linuxem nemůžete kopírovat nebo přehrávat tyto soubory (obsahují jen nesmysly). Pod Windows je to možné, protože jeho iso9660 ovladač emuluje surový přístup ke stopě v tomto souboru. Abyste mohli přehrát .DAT soubor, potřebujete ovladač kernelu který můžete nalézt v Linuxové verzi PowerDVD. Obsahuje upravený ovladač systému souborů iso9660 (vcdfs/isofs-2.4.X.o), který umí emulovat surové stopy přes tento stínový .DAT soubor. Pokud připojíte disk s pomocí jejich ovladače, můžete kopírovat či dokonce přehrávat .DAT soubory MPlayerem. Ale nebude to fungovat se standardním iso9660 ovladačem z Linuxového kernelu! Místo toho použijte vcd://. Alternativou kopírování VCD je nový ovladač do kernelu jménem cdfs (není součástí oficiálního kernelu), který zobrazuje CD sekce jako obrazové soubory a program cdrdao, který bit-po-bitu grabuje/kopíruje CD.
5.1. Vývoj | |
Otázka: | Jak vytvořím správně patch pro MPlayer? |
Odpověď: | Sepsali jsme krátký dokument popisující všechny nezbytné detaily. Následujte tyto instrukce. |
Otázka: | Jak přeložím MPlayer do nového jazyka? |
Odpověď: | Přečtěte si translation HOWTO, to vám objasní vše. Podrobnější pomoc můžete dostat v MPlayer-translations. mailing listu. |
Otázka: | Jak mohu podpořit vývoj MPlayeru? |
Odpověď: | Rádi přijmeme vaše hardwarové a softwarové příspěvky. Ty nám pomáhají neustále vylepšovat MPlayer. |
Otázka: | Jak se mohu stát vývojářem MPlayeru? |
Odpověď: | Vždy uvítáme nové kodéry i dokumentaristy. Přečtěte si technickou dokumentaci abyste dostali obecnou představu. Pak byste se měli přihlásit do MPlayer-dev-eng mailing listu a začít psát kód. Pokud chcete pomoci s dokumentací, připojte se do MPlayer-docs mailing listu. |
Otázka: | Proč nepoužíváte autoconf/automake? |
Odpověď: | Máme modulární, ručně dělaný konfigurační a překladový systém, který odvádí docela dobrou práci, tak proč to měnit? Konec konců se nám nelíbí auto* nástroje, stejně jako ostatním lidem. |
5.2. Kompilace a instalace | |
| |
Otázka: |
Kompilace skončí s chybou a gcc vypíše nějakou
záhadnou zprávu obsahující frázi
|
Odpověď: | Právě jste narazili na chybu v gcc. Nahlaste ji prosím týmu gcc, nikoli nám. Z nějakého důvodu se zdá, že MPlayer často spouští chyby kompileru. Přesto je však nebudeme odstraňovat, ani je v našich zdrojových textech obcházet. Chcete-li se vyhnout těmto problémům, zůstaňte věrni té verzi kompileru, která je známa jako spolehlivá a stabilní, nebo často upgradujte. |
Otázka: | Existují binární (RPM/Debian) balíčky MPlayeru? |
Odpověď: | |
Otázka: | Jak mohu skompilovat 32 bitový MPlayer na 64 bitovém Athlonu? |
Odpověď: | Vyzkoušejte následující volby configure: ./configure --target=athlon_xp --cc="gcc -m32" --as="as --32" --with-extralibdir=/usr/lib
|
Otázka: | Configure skončí s následujícím textem a MPlayer se nezkompiluje! Your gcc does not support even i386 for '-march' and '-mcpu'
|
Odpověď: | Vaše gcc není správně nainstalováno, detaily naleznete v souboru configure.log. |
Otázka: |
Mám Matrox G200/G400/G450/G550, jak zkompiluji/použiji ovladač
|
Odpověď: | Přečtěte si sekci mga_vid. |
Otázka: | Během 'make', si MPlayer stěžuje na chybějící X11 knihovny. Tomu nerozumím, vždyť mám nainstalovány X11!? |
Odpověď: | ... ale nemáte nainstalován vývojářský (dev/devel) balíček pro X11. Nebo ne správně. V Red Hatu se nazývá XFree86-devel*, v Debianu Woody je to xlibs-dev, v Debianu Sarge je to libx11-dev. Také se přesvědčte, že symlinky /usr/X11 a /usr/include/X11 existují (to může být problém v systémech Mandrake). |
5.3. Obecné dotazy | |
| |
Otázka: | Existují nějaké mailing listy pro MPlayer? |
Odpověď: | Ano. Viz sekci mailing listy. |
Otázka: | Našel/našla jsem odpornou chybu když jsem chtěl(a) přehrát svůj oblíbený film! Jak mám dát zprávu? |
Odpověď: | Přečtěte si prosím postupy hlášení chyb a následujte instrukce. |
Otázka: | Mám potíže s přehráváním souborů s ... kodekem. Mohu je používat? |
Odpověď: | Prověřte stav kodeku, pokud neobsahuje váš kodek, přečtěte si kodekovou dokumentaci, zvláště codec importing HOWTO a kontaktujte nás. |
Otázka: | Při startu přehrávání dostanu následující hlášku, ale jinak vše vypadá dobře: Linux RTC init: ioctl (rtc_pie_on): Permission denied
|
Odpověď: | Potřebujete práva roota nebo speciálně nastavené jádro, abychom mohli použít nový kód časování. Detaily naleznete v RTC části dokumentace. |
Otázka: | Jak si mohu udělat snímek obrazovky? |
Odpověď: | Abyste si mohli udělat snímek, musíte použít video výstupní rozhraní, které nepoužívá překrývání. Jde to například pod X11 s -vo x11, pod Windows funguje -vo directx:noaccel.
Alternativně můžete spustit MPlayer s video filtrem
|
Otázka: | Co znamenají čísla na stavovém řádku? |
Odpověď: | Příklad: A: 2.1 V: 2.2 A-V: -0.167 ct: 0.042 57/57 41% 0% 2.6% 0 4 49% 1.00x
Většina z nich je určena pro ladění chyb. Použijte volbu -quiet, aby zmizely. U některých souborů můžete vidět, že zatížení CPU video_outem je nulové (0%). To proto, že je volán přímo video kodekem a nelze jej měřit odděleně. Pokud chcete znát rychlost video_out, porovnejte rozdíl při přehrávání souboru do -vo null a do obvyklého video výstupního zařízení. |
Otázka: | Objevuje se chybová zpráva o chybějícím souboru /usr/local/lib/codecs/ ... |
Odpověď: | Stáhněte si a nainstalujte binární kodeky z naší kodekové stránky. |
Otázka: | Jak zařídit, aby si MPlayer pamatoval volby, které používám pro konkrétní soubor, např. film.avi? |
Odpověď: | Vytvořte soubor s názvem film.avi.conf s volbami jen pro tento soubor a umístěte jej do ~/.mplayer nebo do adresáře s filmem. |
Otázka: | Titulky jsou hezké, nejkrásnější jaké jsem viděl, ale zpomalují přehrávání! Vím že je to nepravděpodobné ... |
Odpověď: |
Poté co provedete ./configure, vyeditujte config.h
a nahraďte |
Otázka: | Nemohu se dostat do GUI menu. Kliknu pravým tlačítkem, ale nemám přístup k žádné z položek! |
Odpověď: | Používáte FVWM? Zkuste následující:
|
Otázka: | Jak mohu spustit MPlayer na pozadí? |
Odpověď: | Use: mplayer
|
5.4. Potíže s přehráváním | |
| |
Otázka: | Nemohu přijít na příčinu nějakého podivného problému při přehrávání. |
Odpověď: | Máte zatoulaný soubor codecs.conf v ~/.mplayer/, /etc/, /usr/local/etc/ a podobně? Odstraňte jej, protože zastaralé codecs.conf soubory mohou způsobit obskurní potíže a jsou zamýšleny jen pro použití vývojáři pracujícími na podpoře kodeků. Tento soubor má přednost před vestavěným nastavením kodeků MPlayeru, což způsobí katastrofu, jakmile dojde k nekompatibilním změnám v nových verzích programu. Pokud není používán experty, jedná se jistou cestu do pekel, působící náhodné a těžko odhalitelné pády aplikace a problémy s přehráváním. Pokud jej tedy stále ještě někde máte, ihned se jej zbavte. |
Otázka: | Jak dostanu titulky do černých okrajů kolem filmu? |
Odpověď: |
Použijte video filtr mplayer -vf expand=0:-100:0:0 -slang de dvd://1
|
Otázka: | Jak mohu vybrat audio/titulkové stopy z DVD, OGM, Matroska nebo NUT souboru? |
Odpověď: | Musíte použít -aid (ID zvuku) nebo -alang (jazyk zvuku), -sid(ID titulků) nebo -slang (jazyk titulků), například: mplayer -alang eng -slang eng Chcete-li vědět jaké jsou k dispozici: mplayer -vo null -ao null -frames 0 -v
|
Otázka: | Zkouším přehrávat náhodný stream z internetu, ale nedaří se mi to. |
Odpověď: | Zkuste přehrávat stream s volbou -playlist. |
Otázka: | Stáhnul jsem si film přes P2P síť ale nefunguje! |
Odpověď: | Váš soubor je poškozený nebo falešný. Pokud jej máte od kámoše a jemu funguje, zkuste si porovnat md5sum hashe. |
Otázka: | Nedaří se mi přimět titulky, aby se zobrazovaly, pomoc!! |
Odpověď: |
Ujistěte se, že máte správně nainstalovány fonty. Znovu proveďte kroky v části
OSD a titulky sekce instalace.
Pokud používáte TrueType fonty, ověřte zda máte nainstalovánu
|
Otázka: | Proč MPlayer nefunguje na Fedora Core? |
Odpověď: | Ve Fedoře je špatná spolupráce mezi exec-shieldem, prelinkem a jakoukoli aplikací používající Windows DLL (tak jako MPlayer). Problém je v tom, že exec-shield znáhodní načítací adresy všech systémových knihoven. Toto znáhodnění nastane v době předlinkování (prelink time)(jednou za dva týdny). Když se MPlayer pokouší nahrát Windows DLL, chce ji umístit na specifickou adresu (0x400000). Pokud tam ale již je důležitá systémová knihovna, MPlayer zhavaruje. (Typickým projevem je segmentation fault při pokusu o přehrání Windows Media 9 souborů.) Pokud narazíte na tento problém, máte dvě možnosti:
|
Otázka: | MPlayer zhavaruje s hláškou MPlayer interrupted by signal 4 in module: decode_video nebo MPlayer přerušen signálem 4 v modulu: decode_video
|
Odpověď: | Nepoužívejte MPlayer na CPU odlišném než na jakém byl kompilován, nebo jej rekompilujte s detekcí CPU za běhu (./configure --enable-runtime-cpudetection). |
Otázka: | Když zkouším grabovat z tuneru, funguje to, ale jsou divné barvy. V jiných programech je to OK. |
Odpověď: | Pravděpodobně vaše karta hlásí některé barevné režimy jako podporované, i když je nepodporuje. Zkuste to s YUY2 místo výchozího YV12 (viz sekci TV). |
Otázka: | Dostávám podivné procentní hodnoty (příliš velké) při přehrávání na notebooku. |
Odpověď: | To je práce power managementu / systému šetřícímu energií vašeho notebooku (BIOS, nikoli jádro). Zapojte konektor vnějšího napájení před zapnutím notebooku. Můžete také zkusit zda vám pomůže cpufreq (rozhraní k SpeedStep pro Linux). |
Otázka: | Synchronizace zvuku a videa se úplně rozpadne když spustím MPlayer jako root na notebooku. Když jej spustí jako uživatel, pracuje normálně. |
Odpověď: | Toto je opět práce power managementu (viz výš). Zapněte externí napájení před zapnutím notebooku, nebo použijte volbu -nortc. |
Otázka: | Při přehrávání souboru se začne přehrávání zadrhávat a dostanu následující hlášení: Badly interleaved AVI file detected - switching to -ni mode... nebo Detekován špatně prokládaný AVI soubor – přepínám do režimu -ni...
|
Odpověď: | Špatně prokládané soubory a volba -cache nejdou moc dohromady. Zkuste -nocache. |
5.5. Potíže video/audio ovaldače (vo/ao) | |
| |
Otázka: | Když přejdu do celoobrazovkového režimu, dostanu pouze černé okraje kolem obrazu bez jeho zvětšení na celou obrazovku. |
Odpověď: |
Vaše výstupní video rozhraní nepodporuje hardwarové škálování a protože
softwarové škálování může být neskutečně pomalé, nezapíná jej
MPlayer automaticky. Pravděpodobně používáte
rozhraní |
Otázka: | Právě jsem nainstaloval MPlayer. Když chci však otevřít video soubor, nastane fatální chyba: Error opening/initializing the selected video_out (-vo) device. nebo Selhalo otevření/inicializace vybraného video_out (-vo) rozhraní. Jak mohu vyřašit své problémy? |
Odpověď: | Změňte své video výstupní zařízení. Spusťte následující příkaz, abyste dostali seznam dostupných video rozhraní: mplayer -vo help Jakmile jste si vybrali správné video výstupní rozhraní, přidejte jej do svého konfiguračního souboru. Přidejte
vo = do ~/.mplayer/config a/nebo
vo_driver = do ~/.mplayer/gui.conf. |
Otázka: |
Mám problémy s |
Odpověď: | Přečtěte si postup hlášení chyb a pošlete nám správné hlášení chyby. Rovněž zkuste experimentovat s volbou -fstype. |
Otázka: | Zvuk se během přehrávání AVI souboru rozejde s videem. |
Odpověď: | Zkuste volbu -bps nebo -nobps. Pokud se to nezlepší, přečtěte si postup hlášení chyb a nahrejte soubor na FTP. |
Otázka: | Můj počítač přehrává MS DivX AVI s rozlišeními ~ 640x300 a stereo MP3 zvukem příliš pomalu. Když použiji volbu -nosound, vše je v pořádku (jen bez zvuku). |
Odpověď: | Váš počítač je příliš pomalý, nebo máte vadný ovladač zvukové karty. Prostudujte si dokumentaci, abyste zjistili, zda nemůžete zvýšit výkon. |
Otázka: | Jak mohu použít dmix spolu s MPlayerem? |
Odpověď: | Poté co nastavíte asoundrc musíte použít -ao alsa:device=dmix. |
Otázka: | Nemám zvuk při přehrávání videa a dostanu chybovou zprávu podobnou této: AO: [oss] 44100Hz 2ch Signed 16-bit (Little-Endian) audio_setup: Nelze otevřít audio zařízení /dev/dsp: Zařízení nebo rozhraní je již používáno nelze otevřít/inicializovat audio zařízení -> BEZ ZVUKU Audio: bez zvuku!!! Začínám přehrávat...
|
Odpověď: | Máte spuštěno KDE nebo GNOME s aRts nebo ESD zvukovým démonem? Zkuste zakázat zvukový démon, nebo použijte volbu -ao arts nebo -ao esd, aby MPlayer použil aRts nebo ESD. Možná provozujete ALSA bez OSS emulace, zkuste nahrát jaderné moduly pro ALSA OSS, nebo nařiďte použití výstupního rozhraní ALSA přidáním volby -ao alsa do příkazového řádku. |
Otázka: | Pokus spustím MPlayer pod KDE, dostanu pouze černou obrazovku a nic se neděje. Asi po minutě se video spustí. |
Odpověď: | Zvukový démon KDE aRts blokuje zvukové zařízení. Buď čekejte až se video spustí, nebo zakažte démona aRts v ovládacím centru. Chcete-li použít aRts zvuk, nastavte výstup zvuku přes naše nativní aRts zvukové rozhraní (-ao arts). Pokud selže, nebo není zakompilováno, zjuste SDL (-ao sdl). Ujistěte se však, že vaše SDL umí pracovat s aRts zvukem. Další možností je spustit MPlayer s artsdsp. |
Otázka: | Mám problémy s A/V synchronizací. Některé mé AVI hrají dobře, ale některé s dvojnásobnou rychlostí! |
Odpověď: |
Máte vadnou zvukovou kartu nebo její ovladač. Nejspíš je pevně nastavena na
44100Hz a vy se pokoušíte přehrát soubor s 22050Hz zvukem. Zkuste zvukový filtr
|
Otázka: | Když přehrávám tento soubor, rozjede se mi zvuk s obrazem a/nebo MPlayer havaruje s hláškou: DEMUXER: Too many (945 in 8390980 bytes) video packets in the buffer! nebo DEMUXER: Příliš mnoho (945 v 8390980 bytech) video paketů ve vyrovnávací paměti!
|
Odpověď: | To může mít několik příčin.
|
Otázka: | Jak se zbavím A/V desynchronizace při převíjení v RealMedia proudech? |
Odpověď: | -mc 0.1 může pomoci. |
5.6. Přehrávání DVD | |
| |
Otázka: | Což takhle DVD navigace/nabídky? |
Odpověď: | MPlayer nepodporuje DVD nabídky díky závažným omezením svého návrhu znemožňujícím správné nakládání se stabilními obrázky a interaktivním obsahem. Pokud chcete mít své oblíbené nabídky (menu), budete muset použít jiný přehrávač jako xine, vlc nebo Ogle. Pokud chcete mít DVD navigaci v MPlayeru, musíte si ji naprogramovat, ale uvědomte si, že to bude velká akce. |
Otázka: | Co takhle titulky? Umí je MPlayer zobrazovat? |
Odpověď: | Ano. Viz kapitola DVD. |
Otázka: | Jak nastavím kód regionu na mé DVD mechanice? Nemám Windows! |
Odpověď: | Použijte nástroj regionset. |
Otázka: | Musím být (setuid) root, abych mohl(a) přehrávat DVD? |
Odpověď: | Ne. Ačkoli musíte mít příslušná práva k souboru DVD zařízení (v /dev/). |
Otázka: | Je možné přehrát/enkódovat pouze vybrané kapitoly? |
Odpověď: | Ano, vyzkoušejte volbu -chapter. |
Otázka: | Přehrávání DVD je zdlouhavé! |
Odpověď: | Použijte volbu -cache (popsanou v man stránce) a zkuste zapnout DMA pro DVD mechaniku pomocí nástroje hdparm (popsaného v CD kapitole). |
Otázka: | Zkopíroval(a) jsem DVD pomocí vobcopy. Jak jej mohu přehrát/enkódovat z harddisku? |
Odpověď: | Použijte volbu -dvd-device pro nastavení adresáře, které obsahují soubory:
mplayer dvd://1 -dvd-device
|
5.7. Požadavky na vlastnosti | |
Otázka: | Pokud je MPlayer v pauze a já se pokusím převíjet, nebo stisknu jakoukoli klávesu, MPlayer se odpauzuje. Rád(a) bych převíjel(a) film v pauze. |
Odpověď: | Je velmi choulostivé zavést tuto vlastnost bez ztráty A/V synchronizace. Všechny pokusy zatím selhaly, ale patche jsou vítány. |
Otázka: | Rád(a) bych převíjel(a) o +/- 1 snímek místo o 10 sekund. |
Odpověď: | Můžete se posunout o jedno pole vpřed stiskem .. Pokud není film pauzován, zapauzuje se pak (detaily viz man stránka). Krokování zpět pravděpodobně nebude v dohledné době implementováno. |
5.8. Enkódování | |
| |
Otázka: | Jak mohu enkódovat? |
Odpověď: | Přečtěte si sekci MEncoder. |
Otázka: | Jak mohu "nahrát" celý DVD titul do souboru? |
Odpověď: | Jakmile jste vybrali svůj titul a ujistili se, že jej lze dobře přehrát MPlayerem, použijte volbu -dumpstream. Například:
mplayer dvd://5 -dumpstream -dumpfile
nahraje 5. titul z DVD do souboru
|
Otázka: | Jak vytvořím (S)VCD automaticky? |
Odpověď: | Zkuste skript mencvcd z podadresáře TOOLS. Pomocí něj můžete enkódovat DVD nebo jiné filmy do VCD nebo SVCD formátu a dokonce je vypálit přímo na CD. |
Otázka: | Jak vytvořím (S)VCD? |
Odpověď: | Novější verze MEncoderu umí přímo generovat MPEG-2 soubory, které mohou být použity jako základ pro vytvoření VCD nebo SVCD a měly by být přehratelné jak jsou na všech platformách (například pro sdílení videa z digitálního kamkodéru se svými počítačově negramotnými přáteli). Více informací naleznete v sekci Použití MEncoderu pro vytvoření VCD/SVCD/DVD-kompatibilních souborů. |
Otázka: | Jak spojím dva video soubory? |
Odpověď: | MPEGy mohou být spojeny do jediného souboru s trochou štěstí přímo. Pro AVI soubory můžete využít podporu pro více souborů v MEncoderu takto: mencoder -ovc copy -oac copy -o To však bude pracovat pouze tehdy, mají-li soubory stejné rozlišení a používají stejný kodek. Také můžete zkusit avidemux a avimerge (součást sady nástrojů transcode). |
Otázka: | Jak mohu opravit AVI soubory s vadným indexem nebo prokládáním? |
Odpověď: | Abyste se zbavili nutnosti používat -idx pro zprovoznění převíjení v AVI souborech s vadným indexem nebo -ni pro přehrávání špatně prokládaných souborů, použijte příkaz mencoder který zkopíruje video a audio proudy do nového AVI souboru, přičenž vygeneruje správný index a správně uloží data (opraví proklad). Tento způsob samozřejmě nedokáže odstranit chyby ve video a/nebo audio proudech. |
Otázka: | Jak mohu opravit poměr stran videa v AVI souboru? |
Odpověď: | Poměr stran lze opravit díky volbě MEncoderu -force-avi-aspect, která přepíše poměr stran uložený v AVI OpenDML vprp hlavičce. Například: mencoder
|
Otázka: | Nemohu zakódovat DVD titulky do AVI! |
Odpověď: | Musíte správně nastavit volbu -sid. |
Otázka: | Jak mohu enkódovat pouze některé kapitoly z DVD? |
Odpověď: | Použijte správně volbu -chapter, jako: -chapter 5-7. |
Otázka: | Zkouším pracovat s 2GB+ soubory na souborovém systému VFAT. Bude to fungovat? |
Odpověď: | Ne, VFAT nepodporuje 2GB+ soubory. |
Otázka: | Jakto že je doporučený bitrate vypisovaný MEncoderem záporný? |
Odpověď: | Protože datový tok při kterém enkódujete audio je příliš velký, aby se film vešel na jakékoli CD. Ověřte si, že máte dobře nainstalovaný libmp3lame. |
Otázka: | Nemohu kompilovat ASF soubor do AVI/MPEG-4 (DivX) protože používá 1000 fps. |
Odpověď: | Protože ASF používá variabilní snímkovou rychlost zatímco AVI pevnou, musíte ji nastavit ručně pomocí volby -ofps. |
Otázka: | Jak vložím titulky do výstupního souboru? |
Odpověď: | Jen přidejte volbu -sub <soubor> (nebo obdobně volbu -sid) do příkazového řádku MEncoderu. |
Otázka: | Jak zakóduji pouze zvuk z hudebního videa? |
Odpověď: | Přímo to není možné, ale můžete zkusit toto (všimněte si & na konci příkazu mplayer):
mkfifo encode
mplayer -ao pcm -aofile encode dvd://1 &
lame Toto vám umožňuje použít jakýkoli enkodér, ne jen LAME, jen zaměňte lame svým oblíbeným enkodérem zvuku v příkazu výše. |
Otázka: | Proč přehrávače třetích stran selhávají při přehrávání MPEG-4 filmů enkódovaných MEncoderem pozdější verze než 1.0pre7? |
Odpověď: |
mencoder
Poznamenejme, že takto nastavíte FourCC na XVID spíše než DIVX.
Toto doporučujeme, protože DIVX FourCC znamená DivX4, což je velmi jednoduchý
MPEG-4 kodek, zatímco jak DX50, tak XVID jsou plnohodnotné MPEG-4 (ASP).
Takže pokud nastavíte FourCC na DIVX, nekteré špatné softwarové nebo
hardwarové přehrávače si mohou vylámat zuby na pokročilýchvlastnostech, které
|
Otázka: | Jak mohu enkódovat soubor jen se zvukem? |
Odpověď: | Použijte aconvert z podadresáře TOOLS ve zdrojových kódech MPlayeru. |
Otázka: | Jak mohu přehrát titulky zabudované v AVI? |
Odpověď: | Použijte avisubdump.c z podadresáře TOOLS, nebo si přečtěte tento dokument o extrakci/demultiplexování titulků zabudovaných v OpenDML AVI souborech. |
Otázka: | MPlayer neumí... |
Odpověď: | Proberte se podadresářem TOOLS, ve kterém naleznete řadu skriptů a udělátek. Dokumentaci k nim naleznete v souboru TOOLS/README. |
Považujeme za důležité vyjasnit všeobecný omyl. Když lidé vidí soubor s příponou .AVI, automaticky se domnívají, že to není MPEG soubor. To však není pravda. Aspoň ne úplně. Narozdíl od všeobecného mínění tyto soubory mohou obsahovat MPEG-1 video.
Jak vidíte, kodek není to samé jako nosný formát. Příklady video kodeků jsou: MPEG-1, MPEG-2, MPEG-4 (DivX), Indeo5, 3ivx. Příklady nosných formátů jsou: MPG, AVI, ASF.
Teoreticky můžete vložit OpenDivX video a MP3 audio do nosného formátu MPG. Většina přehrávačů jej však nepřehraje, jelikož zde očekávají MPEG-1 video a MP2 audio (narozdíl od AVI, MPG nemá potřebná pole k popisu svých video a audio datových proudů). Nebo můžete vložit MPEG-1 video do AVI souboru. FFmpeg a MEncoder mohou tyto soubory vytvořit.
MPEG soubory se vyskytují v různých obálkách:
Série snímků tvoří nezávislé skupiny v MPEG souborech. To znamená, že můžete MPEG soubory stříhat/spojovat pomocí standardních souborových nástrojů (jako je dd, cut) a soubor zůstává naprosto funkční.
Důležitou vlastností MPG je pole obsahující poměr stran obsaženého videa. Například SVCD mají rozlišení videa 480x480 a v hlavičce mají nastaven poměr stran na 4:3, takže jsou přehrávány na 640x480. AVI soubory toto pole neobsahují, takže musí být přeškálovány během enkódování, nebo přehrávány s volbou -aspect.
Navrženy Microsoftem, AVI (Audio Video Interleaved) je rozšířený víceúčelový formát. V současnosti je většinou používaný pro MPEG-4 (DivX, XviD, DivX4, a další) video. Má mnoho známých nedostatků a nedokonalostí (například ve streamování). Podporuje jeden video datový proud a 0 až 99 audio proudů a může být veliký až 2GB, avšak existuje rozšíření umožňující větší soubory nazývané OpenDML. V současnosti Microsoft velmi odrazuje od jeho používání a podporuje ASF/WMV. Ne že by to někoho zajímalo.
Existuje hack, který umožňuje vkládat do AVI souborů Ogg Vorbis audio proudy, ale činí je nekompatibilní se standardním AVI. MPlayer podporuje přehrávání těchto souborů. Převíjení je rovněž implementováno, ale často znemožňováno špatně enkódovanými soubory se zmatenými hlavičkami. Naneštěstí jediný enkodér schopný vytvořit tyto soubory, NanDub, má tento problém.
DV kamery vytváří surové DV datové proudy, které jsou konvertovány DV grabovacími utilitami do dvou odlišných AVI souborů. AVI pak obsahuje buď oddělené video a audio proudy které MPlayer umí přehrávat, nebo surový DV proud, jehož podpora je ve vývoji.
Známe dva druhy AVI souborů:
MPlayer podporuje dva druhy časování pro AVI soubory:
Jakýkoli audio a video kodek je povolen, ale berte na vědomí, že VBR audio není většinou přehrávačů dobře podporován. Formát souboru umožňuje použití VBR audia, ale většina přehrávačů očekává CBR zvuk, takže selžou s VBR. VBR je neobvyklé a Microsoftí AVI specifikace popisuje pouze CBR audio. Rovněž jsme si všimli, že většina AVI enkodérů/multiplexerů vytváří vadné soubory, když je použito VBR audio. Existují pouze dvě známé výjimky: NanDub a MEncoder.
ASF (Active Streaming Format) pochází z dílny Microsoftu. Tam vytvořili dvě varianty ASF, v1.0 a v2.0. v1.0 je používána jejich mediálními nástroji (Windows Media Player a Windows Media Encoder) a je přísně tajný. v2.0 je publikován a patentován :). Samozřejmě se od sebe liší a nejsou vůbec kompatibilní (je to jen další právnická hra). MPlayer podporuje pouze v1.0, protože nikdo nikdy neviděl v2.0 soubory :). Poznamenejme že ASF soubory se v těchto dnech vyskytují s příponou .WMA nebo .WMV.
Tyto formáty byly vytvořeny v Apple a mohou obsahovat jakýkoli kodek, CBR nebo VBR. Obvykle mají příponu .QT nebo .MOV. Poznamenejme, že vzhledem k tomu, že si skupina MPEG-4 vybrala QuickTime jako doporučený formát souboru pro MPEG-4, jejich MOV soubory mají příponu .MPG nebo .MP4 (Zajímavé je, že video a audio proudy v těchto souborech jsou skutečné MPG a AAC soubory. Dokonce je můžete extrahovat pomocí voleb -dumpvideo a -dumpaudio.).
Většina nových QuickTime souborů používá Sorenson video a QDesign Music audio. Viz naši sekci o kodeku Sorenson.
MPlayer šťastně demuxuje souborový formát VIVO. Největší nevýhoda tohoto formátu je, že nemá indexový blok ani pevnou délku paketu nebo synchronizační bity a mnoha souborům schází dokonce i klíčové snímky, takže zapomeňte na převíjení!
Video kodekem VIVO/1.0 souborů je standardní h.263. Video kodekem VIVO/2.0 souborů je upravený, nestandardní h.263v2. Zvuk mají stejný, může to být g.723 (standard) nebo Vivo Siren.
Instalační instrukce naleznete v sekcích VIVO video kodek a VIVO audio kodek.
FLI je velmi starý souborový formát používaný Autodesk Animatorem, ale je běžným formátem pro krátké animace na netu. MPlayer demuxuje a dekóduje FLI filmy a je dokonce schopen v nich převíjet (použitelné při přeskakování s volbou -loop). FLI soubory neobsahují klíčové snímky, takže bude obraz ještě chvíli po převíjení roztříštěný.
Ano, MPlayer umí číst (demux) RealMedia (.rm) soubory. Zde je seznam podporovaných RealVideo a RealAudio kodeků.
NuppelVideo je nástroj pro zachytávání TV (AFAIK:). MPlayer umí číst tyto .NUV soubory (pouze NuppelVideo 5.0). Tyto soubory mohou obsahovat nekomprimované YV12, YV12+RTJpeg komprimované, YV12 RTJpeg+lzo komprimované a YV12+lzo komprimované snímky. MPlayer je dekóduje (a také je enkóduje MEncoderem do MPEG-4 (DivX)/atd.!) všechny. Seeking works.
yuv4mpeg / yuv4mpeg2 je souborový formát používaný mjpegtools programy. Můžete zachytávat, vytvářet, filtrovat nebo enkódovat video v tomto formátu pomocí těchto nástrojů. Formát souboru je ve skutečnosti sekvence nekomprimovaných YUV 4:2:0 obrázků.
RoQ soubory jsou multimediální soubory používané v některých hrách od ID, jako Quake III a Return to Castle Wolfenstein.
Toto je nový souborový formát od
Xiphophorus.
Může obsahovat jakýkoli video nebo audio kodek, CBR nebo VBR. Budete potřebovat
libogg
a
libvorbis
nainstalovány před kompilací
MPlayeru, aby byl schopen je přehrávat.
SDP je IETF standardní formát pro popis video a/nebo audio RTP datových proudů. (Vyžaduje "LIVE.COM Streaming Media".)
PVA je formát podobný MPEG, používaný softwarem pro DVB TV desky (např.: MultiDec, WinTV pod Windows).
NSV (NullSoft Video) je souborový formát používaný přehrávačem Winamp pro streamování audia a videa. Video je VP3, VP5 nebo VP6, audio je MP3, AAC nebo VLB. Jen zvuková verze NSV užívá příponu .nsa. MPlayer umí přehrávat jak NSV datové proudy, tak soubory. Poznamenejme, že většina souborů ze stránek Winampu používá VLB audio, které zatím nelze dekódovat. Mimo to proudy z tohoto serveru vyžadují další depaketovací vrstvu, která ještě musí být implementována (stejně jsou ty soubory nepřehratelné, protože mají VLB audio).
Matroska je otevřený nosný (container) formát. Více se dozvíte na oficiálním serveru.
NUT je nosný formát vyvíjený týmy MPlayer a FFmpeg. Oba projekty jej podporují. Více se dozvíte na oficiálním serveru.
Formát GIF je obecný formát pro webovou
grafiku. Existují dvě verze GIF specifikace, GIF87a a GIF89a. Hlavní rozdíl
je, že GIF89a umožňuje animaci. MPlayer podporuje
oba formáty pomocí libungif
nebo
jiné libgif-kompatibilní knihovny. Neanimované GIFy budou zobrazeny jako
jednoobrázková videa. (Použijte volby -loop a
-fixed-vo pro delší zobrazení.)
MPlayer v současnosti nepodporuje převíjení v GIF souborech. GIF soubory nemusí mít nutně pevnou velikost rámce, anebo pevnou snímkovou rychlost. Spíše má každý snímek nezávislou velikost a předpokládá se jeho umístění do určitého místa v poli pevné velikosti. Snímková rychlost je ovládána volitelným blokem před každým snímkem, který udává zpoždění dalšího snímku v setinách sekundy.
Standardní GIF soubory obsahují 24-bitové RGB snímky s maximálně 8-bitovou indexovanou paletou. Snímky jsou obvykle komprimovány algoritmem LZW, ačkoli některé GIF enkodéry produkují nekomprimované snímky, aby se vyhnuly patentovým problémům s LZW kompresí.
Pokud vaše distribuce neobsahuje libungif
,
stáhněte si ji z
domácí stránky libungif
. Podrobné technické informace naleznete v
GIF89a specifikaci.
MPlayer je filmový, nikoli multimediální přehrávač, ačkoli umí přehrát některé zvukové formáty (ty jsou vyjmenovány v následujících sekcích). Toto není doporučené použití MPlayeru, raději použijte XMMS.
Můžete mít problémy s přehráním určitých MP3 souborů, které MPlayer nesprávně detekuje jako MPEGy a přehrává je nesprávně nebo vůbec. Toto nelze opravit bez vyřazení podpory pro některé poškozené MPEG soubory, proto to tak v dohledné době zůstane. Příznak -demuxer popsaný v man stránce vám pomůže v těchto případech.
MPlayer umí použít cdparanoia pro přehrávání CDDA (Audio CD). Zaměření této části nezahrnuje výčet vlastností cdparanoia.
Viz volbu -cdda v man stránce, která může být použita pro propašování voleb do cdparanoia.
MPlayer může použít vstupní pluginy pro XMMS pro přehrávání mnoha souborových formátů. Jsou to pluginy pro SNES herní melodie, SID melodie (z Commodore 64), mnoho Amiga formátů, .xm, .it, VQF, musepack, Bonk, shorten a mnoho dalších. Můžete je najít na stránce XMMS input pluginů.
Pro tuto vlastnost musíte mít XMMS a zkompilovat MPlayer s ./configure --enable-xmms. Pokud to nebude fungovat, budete muset nastavit cestu k XMMS pluginu a knihovně explicitně konfiguračními volbami --with-xmmsplugindir a --with-xmmslibdir.
Kompletní denně aktualizovaný seznam naleznete v naší stránce tabulce statutu kodeku. Docela dost kodeků si můžete stáhnout z naší domovské stránky. Odkaz najdete na stránce kodeků.
Nejdůležitější ze všech jsou:
libavcodec
, a
RealVideo 3.0 & 4.0 kodeky používající
knihovny z RealPlayeru
Pokud máte Win32 kodek, který zde není uveden a který není zatím podporován, přečtěte si codec importing HOWTO a pomozte nám přidat pro něj podporu.
Tato sekce obsahuje informace o kodecích DivX4 a DivX5 z Projektu Mayo. Jejich první dostupná alfa verze byl OpenDivX 4.0 alpha 47 a 48. Jejich podpora byla v minulosti přidána do MPlayeru a zakompilovává se automaticky. Rovněž jsme používali jejich postprocesní kód pro volitelné vylepšování kvality MPEG-1/2 filmů. Nyní již používáme naše vlastní pro všechny typy souborů.
Nová generace tohoto kodeku se nazývala DivX4 a byla schopna dokonce dekódovat
filmy vytvořené pomocí nechvalně známého DivX kodeku!
Navíc je mnohem rychlejší než nativní Win32 DivX DLL, ale pomalejší než
libavcodec
.
Proto jeho použití jako dekodéru
nedoporučujeme. Nicméně jej lze s úspěchem
používat pro enkódování. Jediná nevýhoda tohoto kodeku je, že není k dispozici
pod Open Source licencí.
DivX4 pracuje ve dvou režimech:
Režim -vc odivx bývá rychlejší, protože přenáší obrazová data ve formátu YV12 (rovinný YUV 4:2:0), který vyžaduje mnohem menší propustnost sběrnice. Pro režimy zhuštěného YUV (YUY2, UYVY) použijte režim -vc divx4. Rychlost RGB režimů je stejná, mírně se odlišuje v závislosti na vaší akuální barevné hloubce.
Pokud vaše -vo rozhraní podporuje direct rendering, pak může být -vc divx4 rychlejší, nebo dokonce nejrychlejší volbou.
Binární knihovny kodeků DivX4/5 si můžete stáhnout z avifile nebo divx.com Rozbalte je, spusťte ./install.sh jako root a nezapomeňte přidat /usr/local/lib do svého /etc/ld.so.conf a spušťte ldconfig.
CVS verzi STARÉ core OpenDivX knihovny získáte následovně:
cvs -d:pserver:anonymous@cvs.projectmayo.com:/cvsroot login
cvs -d:pserver:anonymous@cvs.projectmayo.com:/cvsroot co divxcore
Tato core knihovna je rozdělena na decore a encore knihovnu, které by se měly kompilovat odděleně. Pro kompilaci decore knihovny zadejte
cd divxcore/decore/build/linux make cp libdivxdecore.so /usr/local/lib ln -s libdivxdecore.so /usr/local/lib/libdivxdecore.so.0 cp ../../src/decore.h /usr/local/include
Bohužel encore knihovna neobsahuje Makefile pro Linux a MMX optimalizovaný kód pracuje pouze ve Windows. I přesto ji můžete skompilovat pomocí tohoto Makefile.
cd ../../../encore/build mkdir linux cd linux cp path/Makefile . make cp libdivxencore.so /usr/local/lib ln -s libdivxencore.so /usr/local/lib/libdivxencore.so.0 cp ../../src/encore.h /usr/local/include
MPlayer automaticky detekuje DivX4/DivX5, pokud jsou zprávně nainstalovány, stačí jej jen zkompilovat jako obvykle. Pokud je nedetekuje, pak jste je nenainstalovali nebo nenakonfigurovali správně.
FFmpeg obsahuje balík open source kodeků, které jsou schopny dekódovat datové proudy enkódované různými audio a video kodeky. Rovněž nabízí úctyhodný enkódovací potenciál a vyšší rychlost než Win32 kodeky nebo DivX.com DivX4/5 knihovny!
Obsahuje mnoho hezkých kodeků, zvláště důležité jsou MPEG-4 varianty: DivX3, DivX4, DivX5, Windows Media Video 7/8 (WMV1/WMV2). Rovněž velmi zajímavý je WMA dekodér.
Nejnovějším kodekem zasluhujícím uznání je kodek Sorenson 3 (SVQ3). Toto je jeho první, plně Open Source implementace. Je dokonce rychlejší než originál. Ujistěte se že preferujete tuto verzi před binárním kodekem!
Úplný seznam podporovaných kodeků naleznete na domácí stránce FFmpeg. Podporované video a audio kodeky.
Pokud používáte MPlayer z balíčku, máte již
libavcodec
zahrnutý, stačí provést kompilaci jako obvykle. Pokud používáte CVS verzi
MPlayeru, vyextrahujte si
libavcodec
z CVS stromu FFmpegu,
jelikož nová verze FFmpeg je vydávána jen zřídka. Verze z CVS je většinou
stabilní a nabízí nejvíce vlastností. Pro její získání proveďte:
cvs -d:pserver:anonymous@mplayerhq.hu:/cvsroot/ffmpeg login
cvs -z3 -d:pserver:anonymous@mplayerhq.hu:/cvsroot/ffmpeg co -P ffmpeg/libavcodec ffmpeg/libavutil
Přesuňte adresáře libavcodec a libavutil z FFmpeg do kořenového adresáře MPlayerova CVS stromu. Mělo by to vypadat asi takto: main/libavcodec main/libavutil
Symbolický link nestačí, musíte jej zkopírovat/přesunout!
Pokud chcete mít libavcodec
aktualizován vždy když aktualizujete
MPlayer z CVS, vložte do souboru
main/CVS/Entries následující řádky:
D/libavcodec////
D/libavutil////
Kompilujte. Skript configure by měl zjistit problémy před kompilací.
MPlayer z CVS obsahuje podadresář
libavcodec, ten ale
neobsahuje zdrojové kódy
libavcodec
u!
Musíte následovat výše uvedený postup, abyste získali zdrojové hódy knihovny.
S pomocí FFmpeg a mé Matrox G400, mohu sledovat DivX dokonce i v tom nejvyšším rozlišení bez zahazování snímků na své K6-2 500.
Upozorňujeme, že binární XAnim kodeky jsou baleny spolu s textem, který se tváří jako softwarová licence, která, kromě jiného, zakazuje uživateli použití kodeků ve spojení s jiným programem než XAnim. Nicméně autor XAnim dosud nepodnikl žádné právní kroky proti komukoli v souvislosti s kodeky.
INSTALACE A POUŽITÍ. MPlayer je schopen používat XAnim kodeky pro dekódování. Následující postup vám to umožní:
Stáhněte si kodeky, které chcete použít, ze stránek XAnim. Kodek 3ivx není zde, ale na stránce 3ivx.
NEBO si stáhněte balík kodeků z naší kodekové stránky.
Použijte volbu --with-xanimlibdir pro oznámení
configure kde může nalézt XAnim kodeky.
Ve výchozím stavu je hledá v
/usr/local/lib/codecs,
/usr/local/lib/xanim/mods,
/usr/lib/xanim/mods and
/usr/lib/xanim.
Alternativně můžete nastavit systémovou proměnnou
XANIM_MOD_DIR
na adresář s XAnim kodeky.
Přejmenujte/nalinkujte soubory tak, abyste odstranili část názvu s architekturou, takže dostanet názvy podobné těmto: vid_cvid.xa, vid_h263.xa, vid_iv50.xa
XAnim tvoří rodinu video kodeků xanim
, takže byste
měli použít volbu -vfm xanim, aby je
MPlayer použil kdykoli je to možné.
Mezi testované kodeky patří: Indeo 3.2, 4.1, 5.0, CVID, 3ivX, H.263.
MPlayer umí přehrávat Vivo (1.0 a 2.0) videa. Nejpoužitelnějším kodekem pro soubory verze 1.0 je H.263 dekodér z FFmpegu. Můžete jej použít pomocí volby -vc ffh263. Soubory verze 2.0 přehrávejte pomocí Win32 DLL, pomocí volby -vc vivo. Pokud nezadáte volby na příkazovém řádku, MPlayer zvolí nejlepší kodek automaticky.
MPEG-1 a MPEG-2 jsou dekódovány multiplatformní nativní knihovnou libmpeg2
, jejíž zdrojový kód je zahrnut
v MPlayeru. Chyby v MPEG-1/2 video souborech řešíme
odchytáváním Signal 11
(segmentation fault
), a rychlou reinicializací
kodeku tak, aby pokračoval tam, kde skončil.
Tato opravná technika nemá měřitelný vliv na rychlost.
MPlayer umí přehrát většinu starších kodeků
používaných v AVI a MOV souborech.
V minulosti byly dekódovány binárními Win32 kodeky, nyní však máme pro většinu
z nich nativní kodeky zahrnuté v kolekci
libavcodec
.
MPlayer podporuje dekódování všech verzí RealVidea:
libavcodec
kodeky
Stáhněte si Real kodeky z http://www.mplayerhq.hu/MPlayer/releases/codecs/ a rozbalte je do adrsáře /usr/local/lib/codecs. Pokud je chcete mít na jiném místě, zadejte skriptu configure volbu --with-reallibdir.
RealPlayer knihovny v současnosti pracují pouze v Linuxu, FreeBSD, NetBSD a Cygwin na platformách x86, Alpha a PowerPC (Linux/Alpha a Linux/PowerPC byly testovány) a v Mac OS X.
XviD je free software MPEG-4 ASP kompatibilní video kodec, jenž má podporu pro dvouprůchodové enkódování a plně podporuje MPEG-4 ASP, což jej činí mnohem efektivnějším, než je dobře známý DivX kodek. Dosahuje velmi dobré kvality videa a dobrý vákon díky CPU optimalizacím pro většinu moderních procesorů.
Jeho vývoj je odvozen od OpenDivX kodeku. To se stalo poté co ProjectMayo uzavřel zdrojový kód kodeku, vydal jej jako DivX4 (nyní DivX5) a lidé mimo ProjectMayo pracující na kodeku se naštvali a založili XviD. Oba projekty tedy mají stejný základ.
Instalace XviD
Stejně jako většina svobodného software je dostupný ve dvou verzích:
oficiálně uvolněné verzi
a verzi CVS.
V současnosti je CVS verze obvykle dostatečně stabilní pro použití, jelikož
většinou obsahuje opravy chyb, které zůstaly po vydání.
Zde uvádíme postup pro zprovoznění XviD
CVS v MEncoderu (budete potřebovat alespoň
autoconf 2.50, automake a libtool):
cvs -z3 -d:pserver:anonymous@cvs.xvid.org:/xvid login
cvs -z3 -d:pserver:anonymous@cvs.xvid.org:/xvid co xvidcore
cd xvidcore/build/generic
./bootstrap.sh
./configure
Zde můžete přidat nějaké volby (prostudujte si výstup příkazu ./configure --help).
make && make install
Pokud jste zadali --enable-divxcompat, zkopírujte ../../src/divx4.h do adresáře /usr/local/include/.
Znovu zkompilujte MPlayer s volbami
--with-xvidlibdir=/path/to/
libxvidcore.a
--with-xvidincdir=/path/to/
xvid.h
Sorenson je video kodek vyvinutý firmou Sorenson Media a licencovaný Aplu, který jej distribuuje se svým QuickTime Playerem. V současnosti jsme schopni dekódovat všechny verze Sorenson video souborů pomocí následujících dekodérů:
libavcodec
)
libavcodec
)
KOMPILACE MPLAYERU S PODPOROU QUICKTIME KNIHOVEN
V současnosti jsou podporovány pouze 32-bitové Intel kompatibilní platformy.
stáhněte si MPlayer z CVS
stáhněte si balíček QuickTime DLL z http://www.mplayerhq.hu/MPlayer/releases/codecs/
rozbalte QuickTime DLL do adresáře s Win32 kodeky (výchozí: /usr/local/lib/codecs/)
zkomilujte MPlayer
x264
je knihovna pro tvorbu
H.264 video proudů.
Není 100% dokončena, ale již má alespoň určitou podporu většiny H.264
vlastností ovlivňujících kvalitu.
Ve specifikaci H.264 je ovšem mnoho pokročilých funkcí, které nemají přímo
co do činění s kvalitou videa. Mnoho z těchto vlastností zatím není
v x264
implementováno.
Vlastnosti enkodéru
CAVLC/CABAC
Multi-reference
Intra: všechny typy makrobloků (16x16, 8x8 a 4x4 se všemi predikcemi)
Inter P: všechna rozdělení (partitiony) (od 16x16 níže až do 4x4)
Inter B: rozdělení od 16x16 níže až do 8x8 (včetně SKIP/DIRECT)
Řízení datového toku: konstantní kvantizér, konstantní datový tok nebo jedno či víceprůchodový ABR
Detekce změny scény
Adaptivní umísťování B-snímků
B-snímky jako referenční / libovolné řazení snímků
8x8 a 4x4 adaptivní prostorová transformace
Bezstrátový režim
Uživatelské kvantizační matice
Paralelní enkódování několika políček
H.264 je jeden z názvů nového kodeku digitálního videa vyvíjeného společně skupinami ITU a MPEG. Rovněž může být zprávně nazýván těžkopádně jako "ISO/IEC 14496-10" nebo "MPEG-4 Part 10". Častěji je nazýván jako "MPEG-4 AVC" nebo jen "AVC".
Ať už mu říkáte jakkoli, H.264 stojí za vyzkoušení, protože obvykle dosahuje kvality MPEG-4 ASP při datovém toku o 5%-30% nižším. Konkrétní výsledky závisí jak na zdrojovém videu, tak na enkodéru. Prospěch z použití H.264 není zadarmo: Zdá se, že dekódování H.264 datových proudů má přemrštěné nároky na CPU a paměť. Například na 1733 MHz Athlonu využije dekódování 1500kbps H.264 videa v DVD rozlišení kolem 35% CPU. Pro porovnání, dekódování 1500kbps MPEG-4 ASP proudu ve stejném rozlišení vyžaduje okolo 10% CPU. To znamená, že dekódování datových proudů je pro většinu uživatelů téměř nemožné. Rovněž to znamená, že dokonce i rozumný DVD rip se může občas zakousnout na procesorech slabších než cca 2.0 GHz.
Alespoň s x264
,
nejsou požadavky ne enkódování o mnoho větší než ty, které vyžaduje MPEG-4 ASP.
Například na 1733 MHz Athlonu poběží typické DVD enkódování při 5-15 snímků
za sekundu.
Tento dokument se nesnaží vysvětlit detaily H.264, ale pokud máte zájem o stručný přehled, přečtěte si The H.264/AVC Advanced Video Coding Standard: Overview and Introduction to the Fidelity Range Extensions.
MPlayer používá H.264 dekodér z
libavcodec
u.
libavcodec
má alespoň
minimálně použitelný H.264 dekodér již asi od července 2004,
od té doby však byly provedeny velké změny a vylepšení jak v počtu funkčností,
tak ve vylepšení použití CPU.
Pro jistotu je vždy nejlepší používat aktuální CVS verzi.
Chcete-li se snadno a rychle dozvědět o změnách v H.264 dekódování
libavcodec
u, sledujte
webové rozhraní FFmpeg CVS repozitáře.
Pokud máte nainstalován klient subversion, můžete si poslední x264 zdrojové kódy x264 opatřit tímto příkazem:
svn co svn://svn.videolan.org/x264/trunk x264
Zdrojové kódy MPlayeru jsou aktualizovány, kdykoli
nastane změna API v x264
, takže vždy
doporučujeme používat také CVS verzi MPlayeru.
Tato situace se snad změní, až x264
dospěje k "vydání".
Mezi tím by měla být x264
považována
za velmi nestabilní v tom smyslu, že se její programové rozhraní neustále
mění.
x264
je setavována a
instalována standardním postupem:
./configure && make && sudo make install
To nainstaluje libx264.a do /usr/local/lib a x264.h je umístěn do
/usr/local/include.
S knihovnou x264
a jejím hlavičkovým
souborem umístěnými na standardních místech je sestavení
MPlayeru s podporou
x264
snadné.
Stačí spustir standardní:
./configure && make && sudo make install
Skript configure automaticky detekuje, že jste splnili požadavky pro
x264
.
Nejdůležitější ze všech jsou audio kodeky:
libavcodec
)
Toto je výchozí dekodér používaný pro soubory s AC3 zvukem.
AC3 dekodér umí vytvořit zvukový výstup pro 2, 4, nebo 6 reproduktorů. Pokud je nakonfigurován na 6 kanálů, pak tento dekodér posílá všechny AC3 kanály odděleně na rozhraní ovladače zvukové karty, což umožňuje vychutnávat plně prostorový zvuk bez nutnosti mít externí AC3 dekodér nutný k použití hwac3 kodeku.
Použijte volbu -channels pro výběr počtu výstupních kanálů. Zadejte volbu -channels 2 pro mixování na stereo. Chcete-li čtyřkanálový zvuk (Levý Čelní, Pravý Čelní, Levý Surround a Pravý Surround výstup), zadejte volbu -channels 4. V tom případě bude jakýkoli středový kanál odpovídajícím způsobem namixován do čelních kanálů. Volbou -channels 6 dostanete plný počet AC3 kanálů tak jak jsou enkódovány - v pořadí Levý, Pravý, Levý Surround, Pravý Surround, Střed a LFE.
Výchozí počet výstupních kanálů jsou 2.
Chcete-li více než 2 výstupní kanály, budete potřebovat OSS, a zvukovou kartu, která podporuje požadovaný počet výstupních kanálů přes SNDCTL_DSP_CHANNELS ioctl. Příkladem použitelného ovladače je emu10k1 (používaný kartami Soundblaster Live!) ze Srpna 2001 nebo novější (ALSA z CVS bude rovněž fungovat).
Potřebujete zvukovou kartu schopnou AC3, s digitálním výstupem(S/PDIF). Ovladač karty musí správně podporovat formát AFMT_AC3 (C-Media ano). Připojte svůj AC3 dekodér na výstup S/PDIF a zadejte volbu -ac hwac3. Je to experimentální, ale víme že pracuje s C-Media kartami a Soundblaster Live! + ALSA (ale ne OSS) ovladači a dekodérovými kartami DXR3/Hollywood+ MPEG.
libmad je multiplatformní, pouze celočíselná (interně 24bitový PCM) MPEG audio dekódovací knihovna. Neumí si dobře poradit s poškozenými soubory a občas má problémy s převíjením, ale může být výkonnější na platformách bez FPU (jako je ARM) než mp3lib.
Pokud pro ni chcete podporu, předejte před kompilací skriptu configure volbu --enable-mad.
The audio kodek používaný ve VIVO souborech závisí na tom, jestli je to soubor VIVO/1.0 nebo VIVO/2.0. Soubory VIVO/1.0 mají g.723 audio, zatímco soubory VIVO/2.0 mají Vivo Siren audio. Obojí je podporováno.
MPlayer podporuje dekódování téměř všech verzí RealAudio:
liba52
Návod k instalaci knihoven RealPlayeru naleznete v sekci RealVideo.
Audio proudy QDesign (fourcc:QDMC, QDM2) lze nalézt v MOV/QT souborech. Obě verze tohoto kodeku mohou být dekódovány pomocí QuickTime knihoven. Návod k instalaci naleznete v sekci Sorenson video kodek.
Audio proudy Qualcomm (fourcc:Qclp) lze nalézt v MOV/QT souborech. Mohou být dekódovány pomocí QuickTime knihoven. Návod k instalaci naleznete v sekci Sorenson video kodek.
AAC (Advanced Audio Coding) je audio kodek, který lze občas nalézt v MOV a MP4 souborech. Open source dekodér jménem FAAD je k dispozici na http://www.audiocoding.com. MPlayer obsahuje CVS obraz libfaad 2.1 beta, takže jej nemusíte stahovat dodatečně.
Pokud používáte gcc 3.2 které nedokáže zkompilovat naši zabudovanou FAAD, nebo chcete použít externí knihovnu z jiných důvodů, stáhněte si ji z download stránky a předejte volbu --enable-external-faad skriptu configure. Pro dekódování AAC souborů nepotřebujete celou faad2, libfaad stačí. Zkompilujete ji takto:
cd faad2/ sh bootstrap ./configure cd libfaad make make install
Binárky na audiocoding.com nenajdete, ale můžete si je opatřit v balíčcích pro Debian z domácí stránky Christiana Marillata, Mandrake/Mandriva RPM z P.L.F a RedHat RPM ze stránek Grey Sector.
VFW (Video for Windows) je staré Video API pro Windows. Jeho kodeky mají příponu .DLL nebo (zřídka) .DRV. Pokud MPlayer selže při přehrávání vašeho AVI s hláškou typu:
UNKNOWN video codec: HFYU (0x55594648)
nebo česky
NEZNÁMÝ video kodek: HFYU (0x55594648)
Pak to znamená, že máte AVI enkódované kodekem, který má HFYU fourcc (HFYU = HuffYUV kodek, DIV3 = DivX Low Motion, atd). Teď když to víte, měli byste zjistit kterou DLL Windows nahrává pro přehrávání tohoto souboru. V našem případě soubor system.ini obsahuje řádek s touto informací:
VIDC.HFYU=huffyuv.dll
Potřebujete tedy soubor huffyuv.dll. Poznamenejme, že audio kodeky jsou odlišeny předponou MSACM:
msacm.l3acm=L3codeca.acm
To je kodek MP3. Nyní již máte všechny potřebné informace
(fourcc, soubor kodeku, vzorek AVI). Pošlete požadavek na podporu vašeho
kodeku mailem a nahrajte tyto soubory na FTP server:
ftp://ftp.mplayerhq.hu/MPlayer/incoming/[codecname]/
Ve Windows NT/2000/XP hledejte tyto informace v registrech, zde hledáte "VIDC.HFYU". Jak to udělat se dozvíte níže v sekci DirectShow Stará metoda.
DirectShow je novější Video API, které je ještě horší než jeho předchůdce. Pracuje se s ním hůře, protože
Nová Metoda:
Using Microsoft GraphEdit (rychlý)
Opatřete si GraphEdit buď z DirectX SDK nebo doom9
Spusťte graphedit.exe.
V menu vyberte Graph -> Insert Filters.
Vyrolujte položku DirectShow Filters
Vyberte správný název kodeku a vyrolujte položku.
Ve vstupu DisplayName
pohlédněte na text ve
dvojitých uvozovkách za zpětným lomítkem a opište si ho (pět lomítkem
oddělených bloků, GUID).
Binárka kodeku je uvedena ve vstupu Filename
.
Pokud zde není Filename
a
DisplayName
obsahuje něco jako
device:dmo
, pak se jedná o DMO-Kodek.
Stará Metoda:
Zhluboka se nadechněte a začněte prohledávat registry...
Spusťte regedit.
Stiskněte Ctrl+F, vypněte první dvě
zaškrtávací políčka a zapněte to třetí. Napište fourcc kodeku (např.
TM20
).
Měli byste uvidět pole obsahující cestu a jméno souboru (např. C:\WINDOWS\SYSTEM\TM20DEC.AX).
Teď když máme soubor, potřebujeme GUID. Zkuste hledat znovu, ale tentokrát hledáme jméno kodeku, ne fourcc. Jeho jméno můžete zjistit během přehrávání Media Playerem v menu
-> -> ( -> -> ). Pokud ne, máte smůlu. Zkoušejte to dál (např. hledejte text TrueMotion).Pokud naleznete GUID, měli byste vidět pole FriendlyName a CLSID. Opište si 16 bajtové CLSID, to je ono GUID, které potřebujeme.
Pokud vyhledávání selže, zkuste zapnout všechny zaškrtávátka. Nejspíš dostanete nesprávné výsledky, ale můžete mít štěstí...
Nyní když máte všechny potřebné informace (fourcc, GUID, soubor kodeku,
vzorek AVI), pošlete požadavek na podporu svého kodeku mailem a nahrajte
tyto soubory na FTP server:
ftp://ftp.mplayerhq.hu/MPlayer/incoming/[codecname]/
Pokud chcete přidat kodek sami, přečtěte si DOCS/tech/codecs.conf.txt.
libcaca
- Barevná ASCII Art knihovnaVELMI doporučujeme skontrolovat, zda jsou MTRR registry správně nastaveny, jelikož mohou velice zvýšit výkon.
Proveďte cat /proc/mtrr:
--($:~)--
cat /proc/mtrr
reg00: base=0xe4000000 (3648MB), size= 16MB: write-combining, count=9
reg01: base=0xd8000000 (3456MB), size= 128MB: write-combining, count=1
Takto to správně ukazuje má Matrox G400 se 16MB paměti. Provedl jsem to z XFree 4.x.x, které nastavuje MTRR registry automaticky.
Pokud nic nefunguje, budete to muset udělat ručně. Nejprve musíte najít bázovou adresu. Máte tři možnosti, jak ji zjistit:
ze startovacích informací X11, například:
(--) SVGA: PCI: Matrox MGA G400 AGP rev 4, Memory @ 0xd8000000, 0xd4000000 (--) SVGA: Linear framebuffer at 0xD8000000
z /proc/pci (použijte příkaz lspci -v ):
01:00.0 VGA compatible controller: Matrox Graphics, Inc.: Unknown device 0525 Memory at d8000000 (32-bit, prefetchable)
ze zpráv jaderného modulu mga_vid (použijte dmesg):
mga_mem_base = d8000000
Pak zjistěte velikost paměti. Je to velmi snadné, stačí převést velikost video RAM do hexadecimální soustavy, nebo použijte následující tabulku:
1 MB | 0x100000 |
2 MB | 0x200000 |
4 MB | 0x400000 |
8 MB | 0x800000 |
16 MB | 0x1000000 |
32 MB | 0x2000000 |
Pokud znáte bázovou adresu a velikost paměti, začněme nastavovat MTRR registry!
Například pro výše uvedenou kartu Matrox (base=0xd8000000
)
s 32MB RAM (size=0x2000000
) stačí spustit:
echo "base=0xd8000000 size=0x2000000 type=write-combining" >| /proc/mtrr
Ne všechny procesory mají MTRR. Například starší CPU K6-2 (okolo 266MHz, stepping 0) nemají MTRR, ale stepping 12 je mají (pro ověření spusťte cat /proc/cpuinfo).
Pod XFree86 4.0.2, nebo novějším, můžete použít hardwarové YUV rutiny karty pomocí rozšíření XVideo. Přesně toto používá volba '-vo xv'. Toto rozhraní také podporuje nastavování jasu/kontrastu/barevného tónu atd. (pokud nepoužíváte strarý, pomalý DirectShow DivX kodek, který to podporuje všude), viz man stránka.
Abyste to zprovoznili, ujistěte se o následujícím:
Musíte používat XFree86 4.0.2 nebo novější (předchozí verze nemají XVideo)
Vaše karta aktuálně podporuje hardwarovou akceleraci (moderní karty ano)
X nahrává rozšíření XVideo. Zpráva ve /var/log/XFree86.0.log vypadá asi takto:
(II) Loading extension XVideo
Takto se nahraje pouze rozšíření pro XFree86. To je v dobré instalaci nahráno vždy a neznamená to, že je načtena i podpora XVideo pro kartu!
Vaše karta má podporu Xv pod Linuxem. Abyste si to ověřili, zkuste xvinfo, které je součástí distribuce XFree86. Měl by se vypsat dlouhý text podobný tomuto:
X-Video Extension version 2.2 screen #0 Adaptor #0: "Savage Streams Engine" number of ports: 1 port base: 43 operations supported: PutImage supported visuals: depth 16, visualID 0x22 depth 16, visualID 0x23 number of attributes: 5 (...) Number of image formats: 7 id: 0x32595559 (YUY2) guid: 59555932-0000-0010-8000-00aa00389b71 bits per pixel: 16 number of planes: 1 type: YUV (packed) id: 0x32315659 (YV12) guid: 59563132-0000-0010-8000-00aa00389b71 bits per pixel: 12 number of planes: 3 type: YUV (planar) (...atd...)
Musí podporovat pixelové formáty YUY2 packed a YV12 planar, aby byla použitelná s MPlayerem.
A nakonec si ověřte, jestli byl MPlayer skompilován s podporou 'xv'. Proveďte mplayer -vo help | grep xv . Pokud byla skompilována podpora 'xv', měl by se objevi řádek podpobný tomuto:
xv X11/Xv
Starší ovladače 3dfx byly známy svými problémy s XVideo akcelerací. Nepodporovaly ani YUY2 ani YV12, atp. Ověřte, že máte XFree86 verze 4.2.0 nebo vyšší, které pracuje dobře s YV12 a YUY2. Předchozí verze, včetně 4.1.0, padá s YV12. Pokud zažívate podivné situace při používání -vo xv, zkuste SDL (má rovněž XVideo) a uvidíte, zda to pomůže. Prostudujte si sekci SDL pro více informací.
NEBO, zkuste NOVÉ -vo tdfxfb rozhraní! Viz sekce tdfxfb.
S3 Savage3D by měly fungovat dobře, ale pro Savage4 použijte XFree86 verze 4.0.3 nebo vyšší (v případě problémů s obrazem, zkuste 16bpp). Stejně ajko S3 Virge: má sice podporu xv, ale karta samotná je velmi pomalá, takže ji raději prodejte.
Zatím není jasné, kterým modelům Savage chybí podpora YV12 a konvertují ovladačem (pomalé). Pokud podezříváte kartu, opatřete si novější ovladač, nebo slušně požádejte v konferenci MPlayer-users o ovladač s MMX/3DNow!.
nVidia není vždy pod Linuxem nejlepší volbou (podle nVidie to není pravda)... Open-source ovladač v XFree86 podporuje většinu těchto karet, ale v některých případech musíte použít binární closed-source ovladač od nVidie, který je k dispozici na serveru nVidia. Tento ovladač budete potřebovat vždy, pokud zároveň chcete 3D akceleraci.
Karty Riva128 nemají podporu XVideo v nVidia ovladači z XFree86 :( Stěžujte si nVidii.
Ačkoli MPlayer obsahuje VIDIX ovladač pro většinu nVidia karet, zatím je ve stavu beta verze a má jisté nedostatky. Více informací naleznete v sekci nVidia VIDIX.
Ovladač GATOS (který byste měli použít, pokud nemáte Rage128 nebo Radeon) má zapnutý VSYNC ve výchozím stavu. To znamená, že rychlost dekódování (!) je synchronizována s obnovovacím kmitočtem monitoru. Pokud se vám zdá přehrávání pomalé, zkuste nějak vypnout VSYNC, nebo nastavte obnovovací kmitočet na n*(snímková rychlost filmu) Hz.
Radeon VE - pokud potřebujete X, použijte pro tuto kartu XFree86 4.2.0 nebo vyšší. Není zde podpora pro TV out. Samozřejmě s MPlayerem můžete mít s trochou štěstí akcelerovaný display s nebo bez TV výstupu a nepotřebujete žádné X knihovny. Přečtěte si sekci VIDIX.
Tyto karty lze nalézt v mnoha laptopech. Musíte použít XFree86 4.3.0 nebo vyšší, nebo použijte ovladače s podporou Xv od Stefana Seyfrieda. Stačí vybrat ten, který je vhodný pro vaši verzi XFree86.
XFree86 4.3.0 obsahuje podporu Xv, avšak Bohdan Horst poslal malý patch pro zdrojový kód XFree86, který zrychluje operace s framebufferem (čili XVideo) až čtyřikrát. Patch byl zařazen do XFree86 CVS a měl by být v další verzi vydané po 4.3.0.
Abyste mohli přehrávat obsah velikosti DVD, změňte svůj XF86Config takto:
Section "Device"
[...]
Driver "neomagic"
Option "OverlayMem" "829440"
[...]
EndSection
Chcete-li používat Xv s kartou Trident, což nepracuje s 4.1.0, nainstalujte si XFree 4.2.0. 4.2.0 přidává podporu pro celoobrazovkové Xv pro kartu Cyberblade XP.
Alternativně, MPlayer obsahuje VIDIX ovladač pro kartu Cyberblade/i1.
Pokud chcete používat Xv s kartou založenou na čipu Kyro (například Hercules Prophet 4000XT), měli byste si stáhnout ovladače z PowerVR serveru.
PŘEDMLUVA. Tento dokument se několika slovy snaží vysvětlit co je to DGA a co výstupní videorozhraní DGA pro MPlayer udělat může (a co ne).
CO JE DGA.
DGA je zkratka pro Direct Graphics
Access, což je program pro obejití X servru a
přímou modifikaci paměti framebufferu. Technicky to znamená mapování paměti
framebufferu do paměťového prostoru vašeho procesu.
To kernel umožňuje pouze pokud máte práva superuživatele. Ty dostanete buď
nalogováním se jako root
, nebo
nastavením SUID bitu spustitelnému souboru
MPlayeru (nedoporučujeme
).
Existují dvě verze DGA: DGA1 je používáno XFree 3.x.x a DGA2 bylo představeno v XFree 4.0.1.
DGA1 poskytuje pouze přímý přístup k framebufferu jak byl popsán výše. Chcete-li přepínat rozlišení videosignálu, musíte se spolehnout na rozšíření XVidMode.
DGA2 zahrnuje vlastnosti rozšíření XVidMode a rovněž umožňuje přepínat barevnou hloubku zobrazovače. Takže můžete jendoduše provozovat X server s hloubkou 32 bitů a přepnout na barevnou hloubku 15 bitů a naopak.
DGA má ovšem i jisté obtíže. Zdá se, že je nějak závislé na grafickém čipu, který používáte a na implementaci video ovladače X serveru, který tento čip obsluhuje. Takže nefunguje na všech systémech...
INSTALACE PODPORY DGA PRO MPLAYER. Nejprve si ověřte, že X nahrávají rozšíření DGA, viz v /var/log/XFree86.0.log:
(II) Loading extension XFree86-DGA
XFree86 4.0.x nebo vyšší je vřele doporučován! Video rozhraní DGA MPlayeru je autodetekováno ./configure, nebo jej můžete vynutit pomocí --enable-dga.
Pokud rozhraní nemůže přepnout do menšího rozlišení, experimentujte s volbami -vm (pouze s X 3.3.x), -fs, -bpp, -zoom, abyste nalezli videorežim, do kterého se video napasuje. Momentálně není žádný převodník :(
Staňte se root
em. DGA vyžaduje
práva roota, aby mohl přímo zapisovat do video paměti. Pokud jej chcete
provozovat jako uživatel, pak nainstalujte MPlayer
jako SUID root:
chown root/usr/local/bin/mplayer
chmod 750/usr/local/bin/mplayer
chmod +s/usr/local/bin/mplayer
A nyní to bude pracovat také pod obyčejným uživatelem.
Toto je velké bezpečnostní riziko! Nikdy to nedělejte na serveru nebo počítači ke kterému mohou mít přístup ostatní lidé, jelikož ti mohou získat superuživatelská práva díky SUID root MPlayeru.
Nyní použijte volbu -vo dga a je to! (doufám:) Také byste měli vyzkoušet, jestli vám pracuje volba -vo sdl:dga! Je mnohem rychlejší!
PŘEPÍNÁNÍ ROZLIŠENÍ. Rozhraní DGA umožňuje přepínání rozlišení výstupního signálu. To odstraňuje potřebu (pomalého) softwarového škálování a zároveň poskytuje obraz na celou obrazovku. Ideálně by se mělo přepnout na přesné rozlišení (s výjimkou dodržení poměru stran) video dat, ale X server umožňuje poze přepínání do rozlišení předdefinovaných v /etc/X11/XF86Config (nebo /etc/X11/XF86Config-4 pro XFree 4.X.X). Ty jsou definovány takzvanými "modelines" a závisí na schopnostech vašeho video hardwaru. X server projíždí tento konfigurační soubor při startu a zakáže režimy (modelines) nevhodné pro váš hardware. Povolené videorežimy naleznete v X11 log souboru. Tel lze nalézt zde: /var/log/XFree86.0.log.
Tyto vstupy jsou známy dobrou funkcí na Riva128 čipu, s použitím modulu ovladače nv.o X serveru.
Section "Modes" Identifier "Modes[0]" Modeline "800x600" 40 800 840 968 1056 600 601 605 628 Modeline "712x600" 35.0 712 740 850 900 400 410 412 425 Modeline "640x480" 25.175 640 664 760 800 480 491 493 525 Modeline "400x300" 20 400 416 480 528 300 301 303 314 Doublescan Modeline "352x288" 25.10 352 368 416 432 288 296 290 310 Modeline "352x240" 15.750 352 368 416 432 240 244 246 262 Doublescan Modeline "320x240" 12.588 320 336 384 400 240 245 246 262 Doublescan EndSection
DGA & MPLAYER. DGA je v MPlayeru použito na dvou místech: SDL rozhraní může být nastaveno pro jeho použití (-vo sdl:dga) a přímé DGA rozhraní (-vo dga). Výše uvedené je platné pro obě varianty; v následující sekci vysvětlíme jak pracuje DGA rozhraní MPlayeru.
VLASTNOSTI. DGA rozhraní je použito zadáním volby -vo dga na příkazovém řádku. Výchozím chováním je přepnout na rozlišení co nejbižší originálním rozměrům videa. Zcela záměrně se ignorují volby -vm a -fs (umožňující přepínání videorežimů a zobrazení na celou obrazovku) - vždy zkouší pokrýt tak velkou plochu obrazovky, jak je to jen možné pomocí přepnutí videorežimu, což nás oprostí od využívání dalších CPU cyklů pro škálování obrazu. Pokud se vám nelíbí režim, který vybere automatika, můžete ji přinutit pro výběr režimu nejblíže odpovídajícímu rozlišení, které zadáte pomocí -x a -y. Při zadání volby -v, vypíše DGA rozhraní, spolu s dalšími věcmi, seznam všech rozlišení podporovaných vašim aktuálním XF86Config souborem. Máte-li DGA2, můžete jej rovněž přinutit použít různé barevné hloubky pomocí volby -bpp. Platné barevné hloubky jsou 15, 16, 24 a 32. To jestli jsou tyto barevné hloubky nativně podporovány, nebo musí být provedena (pravděpodobně pomalá) konverze závisí na vašem hardware.
Pokud jste natolik šťastlivci, že máte dostatek volné mimoobrazové paměti, aby se zde vměstnal celý obrázek, použije DGA rozhraní dvojitou vyrovnávací paměť, což vám zajistí mnohem plynulejší přehrávání filmů. Rozhraní vás bude informovat jestli je dvojitý buffer zapnutý nebo ne.
Dvojitou vyrovnávací pamětí se rozumí to, že je další snímek vykreslován do paměti mimo zobrazovanou plochu, zatímco je zobrazován aktuální snímek. Jakmile je další snímek připraven, grafický čip je informován o pozici v paměti, kde je nový snímek a jednoduše přesune data k zobrazení odtud. Mezitím je další buffer v paměti zaplňován novými videodaty.
Dvojitá vyrovnávací paměť může být zapnuta volbou -double a vypnuta volbou -nodouble. Současná výchozí hodnota je vypnutí dvojité vyrovnávací paměti. Při použití DGA rozhraní bude display na obrazovce (OSD) pracovat pouze při zapnuté dvojité vyrovnávací paměti. Zapnutí dvojité vyrovnávací paměti však může vyústit velkou ztrátou výkonu (na mé K6-II+ 525 to použije dalších 20% CPU výkonu!) v závislosti na implementaci DGA pro váš hardware.
OTÁZKA RYCHLOSTI. Obecně by přístup přes DGA framebuffer měl být alespoň tak rychlý jako použití rozhraní X11 navíc s celoobrazovkovým režimem. Procentní hodnoty rychlosti vypisované MPlayerem byste měli brát s rezervou, jelikož například při použití X11 nezahrnují čas spotřebovaný X serverem pro vlastní vykreslování. Zavěste terminál na sériovou linku počítače a spusťte top, abyste viděli co se opravdu děje ve vašem počítači.
Obecně zrychlení použitím DGA oproti 'běžnému' X11 velmi závisí na vaší grafické kertě a jak dobře je pro ni optimalizován modul X serveru.
Pokud máte pomalý stroj, raději použijte 15 nebo 16 bitovou hloubku, jelikož vyžaduje pouze poloviční průchodnost paměti oproti 32 bitovému zobrazení.
Použití hloubky 24 bitů je dobré i v případě, že vaše karta nativně podporuje pouze barevnou hloubku 32 bitů, jelikož se přenáší o 25% méně dat oproti režimu 32/32.
Viděl jsem pár AVI souborů přehrávat na Pentiu MMX 266. Procesory AMD K6-2 pracují při 400 MHZ a výše.
ZNÁMÉ CHYBY. Podle některých vývojářů XFree je DGA zvěrstvo. Říkají, abyste je raději nepoužívali. Jeho implementace není vždy bezproblémová v každém dostupném ovladači pro XFree.
SDL (Simple Directmedia Layer) je zjednodušeně unifikované
video/audio rozhraní. Programy, které ji používají, znají pouze SDL a ne
jaký audio nebo video ovladač SDL aktuálně používá. Například klon DOOMa
může běžet na svgalib, aalib, X, fbdev a dalších. Musíte jen nastavit
(například) video ovladač pomocí proměnné prostředí
SDL_VIDEODRIVER
. Aspoň teoreticky.
V MPlayeru používáme její softwarový škálovač ovladače X11 pro karty/ovladače, které nepodporují XVideo, dokud nevytvoříme vlastní (rychlejší, hezčí) softwarový škálovač. Rovněž jsme používali její výstup na aalib, ale nyní máme vlastní, což je mnohem pohodlnější. Její DGA režim byl až doposud lepší než náš. Sledujete? :)
Rovněž pomáhá s některými chybnými ovladači/kartami, pokud je video roztřesené (nikoli problém pomalého stroje), nebo se zpožďuje zvuk.
SDL video rozhraní podporuje zobrazování titulků pod filmem, v (pokud je) černém okraji.
Pro SDL existuje několik voleb příkazového řádku:
jméno
aalib
,
dga
, x11
)
jméno
dsp
,
esd
, artsc
)
Tabulka 8.1. Klávesy pouze pro SDL
Klávesa | Akce |
---|---|
c | cykluje dostupné celoobrazovkové režimy |
n | změní režim zpět na normální |
Známé chyby:
INSTALACE. Budete muset nainstalovat svgalib i s development balíčkem, aby MPlayer vytvořil své SVGAlib rozhraní (autodetekováno, ale nelze vynutit) a nezapomeňte upravit /etc/vga/libvga.config tak, aby odpovídal vaší kartě a monitoru.
Ujistěte se, že nepoužíváte volbu -fs, jelikož zapíná použití softwarového škálování, což je pomalé. Pokud jej opravdu potřebujete, použijte volbu -sws 4, což poskytuje špatnou kvalitu, ale je o poznání rychlejší.
PODPORA EGA (4BPP). SVGAlib obsahuje EGAlib a MPlayer umí zobrazovat jakýkoli film v 16 barvách, což je vhodné v následujících konfiguracích:
Hodnota bpp (bitů na pixel) musí být nastavena na 4 ručně: -bpp 4
Obraz bude nejspíš muset být zmenšený tak, aby se vešel v EGA režimu:
-vf scale=640:350
nebo
-vf scale=320:200
Když potřebujeme rychlou, ale nekvalitní škálovací rutinu:
-sws 4
Možná bude muset být vypnuta automatická korekce poměru stran:
-noaspect
Podle mých zkušeností lze dosáhnout nejlepší kvality obrazu na EGA obrazovkách mírným snížením jasu: -vf eq=-20:0. Na svém počítači jsem rovněž musel snížit vzorkovací kmitočet zvuku, protože zvuk pří 44kHz byl vadný: -srate 22050.
Zapnout OSD a titulky můžete pouze v kombinaci s expand filtrem, viz man stránka pro přesné parametry.
Podpora pro cíl FBdev je autodetekována během ./configure. Přečtěte si dokumentaci framebufferu ve zdrojových kódech kernelu (Documentation/fb/*) pro více informací.
Pokud vaše karta nepodporuje standard VBE 2.0 (starší ISA/PCI karty, jako S3 Trio64), pouze VBE 1.2 (nebo straší?): Nuže, stále máte k dispozici VESAfb, ale budete muset nahrát SciTech Display Doctor (původně UniVBE) před startem Linuxu. Použijte bootovací disk DOSu nebo tak. A nezapoměňte si zaregistrovat svůj UniVBE ;))
Výstup FBdev přijímá několik dodatečných voleb:
Pokud se chcete přepnout do určitého režimu, pak použijte
mplayer -vm -fbmodename_of_mode
soubor
-vm samotná zvolí nejpříhodnější režim z /etc/fb.modes. Může být rovněž použita spolu s volbami -x a -y. Volba -flip je podporována pouze pokud pixelový formát filmu odpovídá pixelovému formátu videorežimu. Věnujte pozornost hodnotě bpp. Ovladač fbdev zkusí použít aktuální, nebo pokud zadáte volbu -bpp, pak tuto.
Volba -zoom není podporována (použijte -vf scale). Nelze použít režimy 8bpp (nebo nižší).
Pravděpodobně budete chtít vypnout kursor:
echo -e '\033[?25l'
nebo
setterm -cursor off
a spořič obrazovky:
setterm -blank 0
Pro opětovné zapnutí kursoru:
echo -e '\033[?25h'
nebo
setterm -cursor on
Změna videorežimu FBdev nepracuje ve VESA framebufferu a nechtějte to po nás, jelikož to není omezení MPlayeru.
Tato sekce je o podpoře Matrox G200/G400/G450/G550 BES (Back-End Scaler) jaderného modulu mga_vid. Aktivně je vyvíjena A'rpim a má hardwarovou podporu VSYNC s trojitou vyrovnávací pamětí. Pracuje jak v konzoli, tak pod X.
Toto je pouze pro Linux! Na ne-Linuxech (testováno na FreeBSD) můžete místo něj použít VIDIX.
Instalace:
Pokud jej chcete použít, nejdříve musíte sestavit mga_vid.o:
cd drivers make
Pak vytvořte zařízení /dev/mga_vid:
mknod /dev/mga_vid c 178 0
a nahrajte ovladač pomocí
insmod mga_vid.o
Měli byste ověřit velikost detekované paměti pomocí příkazu dmesg. Pokud je špatná, použijte volbu mga_ram_size (nejdřív rmmod mga_vid), nastavte velikost paměti karty v MB:
insmod mga_vid.o mga_ram_size=16
Aby se nahrával/odstraňoval automaticky podle potřeby, nejdříve přidejte následující řádek na konec /etc/modules.conf:
alias char-major-178 mga_vid
Pak zkopírujte modul mga_vid.o na vhodné místo
pod /lib/modules/verze jádra
/někde
.
Pak spusťte
depmod -a
Teď budete muset (pře)kompilovat MPlayer, ./configure zdetekuje /dev/mga_vid a zakompiluje 'mga' rozhraní. V MPlayeru se používá pomocí -vo mga pokud máte matroxfb konzoli, nebo -vo xmga pod XFree86 3.x.x nebo 4.x.x.
Ovladač mga_vid spolupracuje s Xv.
Určité informace lze přečíst z /dev/mga_vid zařízení, například pomocí
cat /dev/mga_vid
a může do něj být zapsána změna jasu:
echo "brightness=120" > /dev/mga_vid
Tento ovladač používá ovladač framebufferu tdfx z jádra pro přehrávání filmů s YUV akcelerací. Budete potřebovat jádro s podporou tdfxfb a rekompilovat s
./configure --enable-tdfxfb
MPlayer podporuje zobrazování filmů pomocí OpenGL, ale pokud vaše platforma/ovladač podporuje xv což by měl být případ PC s Linuxem, použijte raději xv, jelikož výkon OpenGL je o poznání horší. Pokud máte X11 implementaci bez podpory xv, je OpenGL slušná alternativa.
Naneštěstí ne všechny ovladače tuto vlastnost podporují. Ovladače Utah-GLX (pro XFree86 3.3.6) ji podporují pro všechny karty. Viz http://utah-glx.sf.net pro detaily jak je nainstalovat.
XFree86(DRI) 4.0.3 nebo pozdější podporují OpenGL s kartami Matrox a Radeon, 4.2.0 a pozdější podporují Rage128. Viz http://dri.sf.net pro stažení a instalační instrukce.
Rada od jednoho z uživatelů: GL video výstup lze použít pro dosažení vertikálně synchronizovaného TV výstupu. Budete muset nastavit proměnnou prostředí (aspoň na nVidii):
export $__GL_SYNC_TO_VBLANK=1
AAlib je knihovna pro zobrazování grafiky v textovém režimu pomocí výkonného ASCII renderovače. Existuje spousta programů, ktaré ji již podporují, jako DOOM, Quake, atd. MPlayer pro ni obsahuje šikovné rozhraní. Pokud ./configure zjistí nainstalovanou aalib, sestaví se aalib libvo rozhraní.
Můžete použít některé klávesy v AA okně pro změnu renderovacích voleb:
Klávesa | Akce |
---|---|
1 | sníží kontrast |
2 | zvýší kontrast |
3 | sníží jas |
4 | zvýší jas |
5 | vypíná/zapíná rychlé renderování |
6 | nastaví rozhodovací režim (žádný, error distribution, Floyd Steinberg) |
7 | inverze obrazu |
8 | přepíná mezi ovládáním aa a MPlayeru |
Můžete použít následující volby příkazového řádku:
V
změna barvy OSD
V
změna barvy titulků
kde V
může být:
0
(normální),
1
(tmavé),
2
(tučné),
3
(polotučný font),
4
(reverz),
5
(speciální).
AAlib samotná poskytuje velké množství voleb. Zde je několik důležitých:
Renderování je velmi náročné na CPU, zvlášť při použití AA-na-X (aalib na X) a nejméně náročné je na standardní neframebuferované konzoli. Použijte SVGATextMode pro nastavení velkého textového režimu a užijte si! (secondary head Hercules cards rock :)) (ale IMHO můžete použít volbu -vf 1bpp pro grafiku na hgafb:)
Použijte volbu -framedrop, pokud váš počítač není dostatečně rychlý pro renderování všech snímků!
Při přehrávání na terminálu dosáhnete lepší rychlosti i kvality použitím
ovladače Linux, bez curses (-aadriver linux). Ale pak budete
potřebovat práva k zápisu do
/dev/vcsa<terminal>
!
Aalib to nedetekuje, ale vo_aa zkouší najít nejlepší režim.
Pro více ladících možností viz http://aa-project.sf.net/tune.
Knihovna libcaca
je grafická knihovna produkující text místo pixelů, takže může fungovat na
starších video kartách a textových terminálech. Není nepodobná známé knihovně
AAlib
.
libcaca
vyžaduje k činnosti terminál,
takže by měla fungovat na všech Unixových systémech (včetně Mac OS X) pomocí buď
knihovny slang
nebo knihovny
ncurses
, pod DOSem pomocí knihovny
conio.h
a na systémech Windows
pomocí buď slang
nebo
ncurses
(pomocí emulace Cygwin) nebo
conio.h
. Pokud
./configure
detekuje libcaca
, bude sestaveno
rozhraní caca libvo.
Odlišnosti od AAlib
jsou:
Ale libcaca
má také následující
omezení:
V caca okně můžete použít některé klávesy pro změnu renderovacích volby:
Klávesa | Akce |
---|---|
d |
Přepíná metody rozhodování v libcaca .
|
a |
Přepíná vyhlazování v libcaca .
|
b |
Přepíná pozadí v libcaca .
|
libcaca
také respektuje některé
proměnné prostředí:
Použijte volbu -framedrop, pokud váš počítač není dost rychlý pro renderování všech snímků.
Tento ovladač byl navržen a představen jako obecný ovladač pro jakoukoli video kartu, která má VESA VBE 2.0 kompatibilní BIOS. Další výhodou tohoto ovladače je, že zkouší vynutit zapnutí výstupu na TV. VESA BIOS EXTENSION (VBE) Version 3.0 Date: September 16, 1998 (Strana 70) uvádí:
Karty Dual-Controller. VBE 3.0 podporuje karty s dual-controllerem za předpokladu že, jelikož jsou typicky oba controllery vybaveny stejným OEM a nastavovány jedinou BIOS ROM na stejné grafické kartě, je možné skrýt před aplikací přítomnost dvou controllerů. To omezuje nezávislé použití jednotlivých controllerů, ale umožňuje aplikacím vydaným před VBE 3.0 pracovat normálně. VBE funkce 00h (Návrat informací o controlleru) vrací kombinované informace obou conrollerů, včetně kombinovaného seznamu platných režimů. Příslušný controller je aktivován jakmile aplikace vybere režim. Všechny ostatní VBE funkce pak pracují s aktivním controllerem.
Máte tedy možnost s tímto rozhraním dostat funkční TV výstup. (Soudím že TV výstup má velmi často samostatnou jednotku, nebo aspoň samostatný výstup.)
VÝHODY
int 10h
handler, takže není
emulátorem – volá skutečné věci
skutečného BIOSu v reálném režimu
(ve skutečnosti v režimu vm86).
NEVÝHODY
root
.
Nepoužívejte toto rozhraní s GCC 2.96! Nefunguje!
VOLBY PŘÍKAZOVÉHO ŘÁDKU DOSTUPNÉ PRO VESA
volby
dga
pro vynucení dga režimu a
nodga
pro jeho potlačení. V režimu dga můžete zapnout
dvojitou vyrovnávací paměť pomocí volby -double.
Poznámka: Tyto volby můžete vynechat, abyste zapli
autodetekci dga režimu.
ZNÁMÉ PROBLÉMY A KLIČKY
Pokud možno se mu vyhněte. Posílá obraz do X11 (používá rozšíření sdílená paměť) bez jakékoli hardwarové akcelerace. Podporuje (MMX/3DNow/SSE akcelerované, ale přesto pomalé) softwarové škálování. Použijte volby -fs -zoom. Většina karet má hardwarovou podporu škálování, použijte pro ně volbu -vo xv, nebo -vo xmga pro karty Matrox.
Problém je, že většina karet nepodporuje hardwarovou akceleraci na sekundárním výstupu/TV. V těchto případech uvidíte místo filmu zelenou/modrou obrazovku. Teď se hodí toto rozhraní, ale potřebujete silný procesor pro použití softwarového škálování. Nepoužívejte SDL softwarový výstup a škálování, má horší kvalitu obrazu!
Softwarové škálování je velmi pomalé, zkuste raději měnit videorežimy. Je to jednoduché. Viz modelines v DGA sekci a přidejte je do svého XF86Config.
Pokud nemůžete najír rozlišení, která jste vložili, pročtěte si výstup XFree86. Některé ovladače nezvládnou nízké bodové kmitočty potřebné pro režimy s nízkým rozlišením videa.
PŘEDMLUVA. VIDIX je zkratka pro VIDeo Interface for *niX (video rozhraní pro *nix). VIDIX bylo navrženo a představeno jako rozhraní pro rychlé uživatelské ovladače dosahujících video výkonu jako dosahuje mga_vid na kartách Matrox. Je rovněž dobře přenositelné.
Toto rozhraní bylo navrženo jako pokus napasovat existující video akcelerující rozhraní (známé jako mga_vid, rage128_vid, radeon_vid, pm3_vid) do pevného schéma. Poskytuje vysokoúrovňové rozhraní k čipům známým jako BES (BackEnd scalers) nebo OV (Video Overlays). Neposkytuje nízkoúrovňové rozhraní k věcem známým jako grafické servery. (Nechci konkurovat X11 týmu v přepínání grafických režimů). Čili hlavním cílem tohoto rozhraní je maximalizace rychlosti přehrávání videa.
POUŽITÍ
Nezáleží na tom, které video výstupní rozhraní je použito s VIDIX.
POŽADAVKY
METODY POUŽITÍ. Když použijete VIDIX jako subdevice (-vo vesa:vidix), pak je konfigurace video režimu je provedeno výstupním video rozhraním (zkrátka vo_serverem). Takže můžete zadat na příkazovém řádku MPlayeru stejné volby jako pro vo_server. Návdavkem rozeznává volbu -double jako globální parametr. (Doporučuji použít tuto volbu s VIDIX aspoň pro ATI kartu). Stejně jako -vo xvidix, dosud zná následující volby: -fs -zoom -x -y -double.
Rovněž můžete uvést VIDIXový ovladač jako třetí podvolbu na příkazovém řádku:
mplayer -vo xvidix:mga_vid.so -fs -zoom -double soubor.avi
nebo
mplayer -vo vesa:vidix:radeon_vid.so -fs -zoom -double -bpp 32 soubor.avi
Ale je to nebezpečné a neměli byste to dělat. V tomto případě bude zadaný ovladač vynucen a výsledek je nepředvídatelný (může vám zatuhnout počítač). Měli byste to použít POUZE pokud jste si absolutně jistí, že to bude fungovat a MPlayer to neudělá automaticky. Řekněte o tom prosím vývojářům. Správný způsob je použití VIDIX bez argumentů, aby proběhla autodetekce.
VIDIX je nová technologie a je extrémně možné, že na vašem systému nebude pracovat. V tom případě je jediným řešením ji portovat (hlavně libdha). Ale je šance, že bude pracovat na systémech, kde funguje X11.
Jelikož VIDIX vyžaduje přímý přístup k hardware, můžete jej buď spustit jako root, nebo nastavit SETUID bit binárce MPlayeru (Varování: Toto je bezpečnostní risk!). Alternativně můžete použít speciální jaderný modul, například:
Stáhněte si vývojovou verzi svgalib (například 1.9.17), NEBO si stáhněte verzi vatvořenou Alexem speciálně pro použití s MPlayerem (ke kompilaci nepotřebuje zdrojový kód svgalib) odtud.
Skompilujte modul v adresáři svgalib_helper (naleznete ji v svgalib-1.9.17/kernel/, pokud jste si stáhli zdrojový kód ze serveru svgalib) a nahrajte (insmod) jej.
Pro vytvoření potřebných zařízení v adresáři /dev proveďte jako root
make device
v adresáři svgalib_helper.
Přesuňte adresář svgalib_helper do mplayer/main/libdha/svgalib_helper.
Pokud jste si stáhli zdroj ze stránek svgalib, musíte odkomentovat řádek CFLAGS obsahující text "svgalib_helper" v souboru libdha/Makefile.
Překompilujte a nainstalujte libdha.
V současnosti je většina ATI karet podporována nativně od Mach64 až po nejnovější Radeony.
Existují dvě skompilované binárky: radeon_vid pro Radeony a rage128_vid pro karty Rage 128. Můžete některou vynutit, nebo nechat VIDIX rozhraní autodetekovat všechny dostupné ovladače.
Matrox G200, G400, G450 a G550 jsou hlášeny jako funkční.
Ovladač podporuje video ekvalizéry a měl by být téměř tak rychlý jako Matrox framebuffer
Existuje ovladač pro čipset Trident Cyberblade/i1, který lze nalézt na motherboardech VIA Epia.
Ovladač byl napsán a je udržován Alastairem M. Robinsonem
Ačkoli existuje ovladač pro čipy 3DLabs GLINT R3 a Permedia3, nikdo je netestoval, takže hlášení vítáme.
Existuje relativně nová ovladač pro nVidie o kterém je známo, že pracuje s čipsety Riva 128, TNT a GeForce2 a některé další byly rovněž hlášeny jako funkční.
OMEZENÍ
Doporučujeme použití binárních nVidia ovladačů pro X přednostně před tímto VIDIX ovladačem, protože některé registry, které je nutné nastavit nebyly dosud oběveny, takže pravděpodobně selže s Open Source XFree86 ovladačem nv.o.
V současnosti mohou s tímto ovladačem pracovat pouze kodeky schopné výstupu
v barevném prostoru UYVY. Naneštěstí to vylučuje všechny dekodéry z rodiny
libavcodec
. Takže zůstávají
následující použitelné populární kodeky:
cvid, divxds, xvid, divx4, wmv7, wmv8
a některé
další. Mějte však prosím na paměti, že to je pouze dočasná obtíž.
Syntaxe pro použití je následující:
mplayer -vf format=uyvy -vc divxds divx3soubor.avi
Unikátní vlastností ovladače nvidia_vid je jeho schopnost zobrazit video na jednoduché, čisté, pouze textové konzoli – bez framebufferu nebo nějaké X magie. Pro tento účel budete muset použít video rozhraní cvidix, jak to ukazuje následující příklad:
mplayer -vf format=uyvy -vc divxds -vo cvidix příklad.avi
Hlášení očekávána!
"DirectFB je grafická knihovna navržená se zřetelem na vestavěné systémy. Nabízí maximálně hardwarově akcelerovaný výkon při minimální spotřebě zdrojů a zatížení." – citováno z http://www.directfb.org
Vlastnosti DirectFB v této sekci vynechám.
Ačkoli MPlayer není podporován jako "video provider" v DirectFB, toto video rozhraní umožní přehrávání videa přes DirectFB. Bude to samozřejmě akcelerované. Na mém Matroxu G400 byla rychlost DirectFB stejná jako XVideo.
Vždy se snažte používat nejnovější verzi DirectFB. Můžete nastavovat volby pro DirectFB na příkazovém řádku pomocí volby -dfbopts. Volbu vrstvy lze provést metodou podzařízení, např.: -vo directfb:2 (výchozí je vrstva -1: autodetekce)
Přečtěte si prosím hlavní DirectFB sekci pro obecné informaci.
Toto video výstupní zařízení zapne CRTC2 (na sekundárním výstupu) na kartách Matrox G400/G450/G550, takže zobrazuje video nezávisle na hlavním výstupu.
Ville Syrjala's má README a HOWTO na své domácí stránce, kde vysvětluje, jak rozběhnout DirectFB TV výstup na kartách Matrox.
MPlayer podporuje karty s čipsetem Siemens DVB od výrobců jako Siemens, Technotrend, Galaxis nebo Hauppauge. Poslední DVB ovladače jsou dostupné na Linux TV stránkách. Pokud chcete provádět softwarové transkódování, měli byste mít aspoň 1GHz CPU.
Configure by měl detekovat vaši DVB kartu. Pokud ne, vynuťte detekci pomocí
./configure --enable-dvb
Pokud máte ost hlavičky na nestandardním místě, nastavte cestu pomocí
./configure --with-extraincdir=zdrojový adresář DVB
/ost/include
Pak kompilujte a instalujte obvyklým způsobem.
POUŽITÍ. Hardwarové dekódování (přehrávání standardních MPEG-1/2 souborů) lze provést tímto příkazem:
mplayer -ao mpegpes -vo mpegpes soubor.mpg|vob
Softwarového dekódování nebo transkódování odlišných formátů do MPEG-1 můžete dosáhnout příkazem podobným tomuto:
mplayer -ao mpegpes -vo mpegpesváš_soubor.ext
mplayer -ao mpegpes -vo mpegpes -vf expandváš_soubor.ext
Pamatujte, že DVB karty podporují pouze výšky 288 a 576 pro PAL nebo 240 a 480 pro NTSC. Jiné výšky musíte přeškálovat přidáním scale=šířka:výška s šířkou a výškou, které chcete do volby -vf. DVB karty akceptují různé šířka jako 720, 704, 640, 512, 480, 352 atd, ale neprovádí žádné vodorovné hardwarové škálování, takže ve většině případů nemusíte vodorovně škálovat. Pro 512x384 (poměr stran 4:3) MPEG-4 (DivX) zkuste:
mplayer -ao mpegpes -vo mpegpes -vf scale=512:576
Pokud máte širokoúhlý film a nechcete jej škálovat na plnou výšku, můžete použít filtr expand=š:v pro přidání černých okrajů. Pro promítání 640x384 MPEG-4 (DivX), zkuste:
mplayer -ao mpegpes -vo mpegpes -vf expand=640:576 soubor.avi
Pokud je váš procesor příliš slabý pro 720x576 MPEG-4 (DivX), zkuste podškálovat:
mplayer -ao mpegpes -vo mpegpes -vf scale=352:576 soubor.avi
Pokud se rychlost nezlepší, zkuste podškálovat i výšku:
mplayer -ao mpegpes -vo mpegpes -vf scale=352:288 soubor.avi
Pro OSD a titulky použijte OSD vlastnost expand filtru. Takže místo expand=š:v nebo expand=š:v:x:y, použijte expand=š:v:x:y:1 (pátý parametr :1 na konci zapne renderování OSD). Možná byste měli trochu posunout obraz nahoru, abyste měli větší černý okraj pro titulky. Rovněž byste měli posunout nahoru titulky, pokud jsou mimo TV obrazovku. Použijte volbu -subpos <0-100> pro toto nastavení (-subpos 80 je dobrá volba).
Chcete-li přehrávat filmy s jinou snímkovou rychlostí než 25 fps na PAL TV, nebo na pomalém CPU, přidejte volbu -framedrop.
Chcete-li zachovat poměr stran MPEG-4 (DivX) souborů a dosáhnout optimálních škálovacích parametrů (hardwarové horizontální škálování a softwarové vertikální škálování zatímco zachováte správný poměr stran), použijte filtr dvbscale:
pro 4:3 TV: -vf dvbscale,scale=-1:0,expand=-1:576:-1:-1:1 pro 16:9 TV: -vf dvbscale=1024,scale=-1:0,expand=-1:576:-1:-1:1
Digitální TV (vstupní DVB modul). Můžete použít svou DVB kartu pro sledování Digitální TV.
Měli byste mít nainstalovány programy scan a szap/tzap/czap/azap; všechny jsou zařazeny v balíčku ovladačů.
Ověřte si, zda vaše ovladače pracují správně s progamy jako je dvbstream (to je základ vstupního DVB modulu).
Nyní byste měli skompilovat soubor ~/.mplayer/channels.conf, se syntaxí akceptovanou szap/tzap/czap/azap, nebo nechat scan, aby jej skompiloval.
Pokud máte více než jeden typ karty (Např. Satellitar, Terrestrial, Cable a ATSC) můžete si uložit své channels soubory podle typu jako ~/.mplayer/channels.conf.sat, ~/.mplayer/channels.conf.ter, ~/.mplayer/channels.conf.cbl, a ~/.mplayer/channels.conf.atsc, kdy MPlayer použije tyto soubory spíše než ~/.mplayer/channels.conf, a vy musíte pouze nastavit, kterou kartu použít.
Ujistěte se, že máte pouze nekódované kanály ve svém channels.conf souboru, jinak se MPlayer pokusí přeladit na nejbližší zobrazitelný, ale to může trvat dlouho, pokud je zde mnoho po sobě jdoucích šifrovaných kanálů.
V polích audio a video můžete použít rozšířenou syntaxi: ...:pid[+pid]:... (maximálně 6 pidů každé); v tom případě zahrne MPlayer do datového proudu všechny zadané pidy plus pid 0 (který obsahuje PAT). Doporučujeme zahrnout do každého řádku PMT pid pro odpovídající kanál (pokud jej znáte) Další možná použití jsou: televideo pid, druhá audio stopa, atd.
Pro zobrazení prvního z kanálů uvedeného v seznamu, spusťte
mplayer dvb://
Pokud chcete sledovat určitý kanál, například R1, spusťte
mplayer dvb://R1
Pokud máte více než jednu kartu, musíte rovněž uvést číslo karty, na které lze kanál sledovat (např. 2). Syntyxe je:
mplayer dvb://2@R1
Pro změnu kanálu stiskněte klávesu h (další) a k (předchozí), nebo použijte OSD menu (vyžaduje funkční OSD subsystém).
Pokud váš ~/.mplayer/menu.conf obsahuje řádek
<dvbsel>
podobný tomu v ukázkovém souboru
etc/dvb-menu.conf (který můžete použít k přepsání
~/.mplayer/menu.conf), bude v hlavním menu podseznam,
kde si budete moci zvolit kanál ze svého channels.conf.
Může mu případně předcházet menu se seznamem dostupných karet, pokud máte
více než jednu použitelnou MPlayerem.
Pokud si chcete uložit program na disk, můžete použít
mplayer -dumpfile r1.ts -dumpstream dvb://R1
Pokud jej chcete zaznamenat v odlišném formátu (reenkódovat jej), spusťte místo toho příkaz podobný následujícímu
mencoder -o r1.avi -ovc xvid -xvidencopts bitrate=800 -oac mp3lame -lameopts cbr:br=128 -pp=ci dvb://R1
Přečtěte si man stránku pro seznam voleb, které můžete předat vstupnímu DVB modulu.
BUDOUCNOST. Máte-li otázky, nebo chcete dostávat oznámení o nových vlastnostech a zapojit se do diskuse o těchto věcech, připojte se k naší MPlayer-DVB e-mailové konferenci. Pamatujte prosím, že jazykem konference je angličtina.
V budoucnu můžete očekávat schopnost zobrazovat OSD a titulky pomocí nativní podpory OSD v DVB kartách, stejně jako plynulejší přehrávání filmů s jinou snímkovou rychlostí, než 25 fps a transkódování MPEG-2 na MPEG-4 v reálném čase (částečná dekomprese).
MPlayer podporuje hardwarově akcelerované přehrávání pomocí karty Creative DXR2.
Nejdříve musíte mít správně nainstalované DXR2 ovladače. Ovladače a návod k jejich instalaci naleznete na stránkách DXR2 Resource Center.
POUŽITÍ
zapíná TV výstup
zapíná Overlay výstup v X11
Tato volba je použita k ovládání DXR2 ovladače.
Overlay čipset použitý v DXR2 má mizernou kvalitu, ale výchozí nastavení pracuje vždy. OSD lze použít spolu s overlay (ne na TV) při jeho vykreslení v klíčovací barvě. S výchozím nastavením klíčovací barvy můžete dosáhnout různých výsledků, obvykle uvidíte klíčovací barvu kolem znaků nebo jiné srandovní věci. Pokud ale vhodně upravíte klíčování, můžete dosáhnout použitelných výsledků.
Prostudujte si prosím man stránku pro dostupné volby.
MPlayer podporuje hardwarově akcelerované přehrávání videa pomocí karet Creative DXR3 a Sigma Designs Hollywood Plus. Obě tyto karty používají MPEG dekodér em8300 od Sigma Designs.
Nejprve budete potřebovat správně nainstalované DXR3/H+ ovladače verze 0.12.0 nebo pozdější. Ovladače a návod na jejich instalaci naleznete na stránkách DXR3 & Hollywood Plus for Linux. configure by mělo automaticky detekovat vaši kartu a kompilace by se měla obejít bez potíží.
POUŽITÍ
zařízení
overlay aktivuje overlay místo TVOut. Pro správnou funkci
vyžaduje, abyste měli správně nakonfigurované nastavení overlay. Nejjednodužší
způsob nastavení overlay, je spuštění autocal. Pak spusťte MPlayer s video
výstupem nastaveným na dxr3 s vypnutým overlay, spusťte dxr3view. V dxr3view
si můžete hrát s nastavením overlay a pozorovat změny v reálném čase. Snad bude
tato funkce časem dostupná z GUI MPlayeru. Jakmile
máte správně nastaveno overlay, není již nutné používat dxr3view.
prebuf zapíná prebuffering. Prebuffering je vlastnost čipu
em8300, terá mu umožňuje podržet si více než jeden videosnímek v daném čase.
To znamená, že pokud jej máte zapnutý, snaží se MPlayer
udržet vyrovnávací paměť videa (buffer) naplněný daty. Pokud jej provozujete na
pomalém stroji, použije MPlayer téměř nebo přesně
100% výkonu CPU. To je zvlášť časté, pokud přehráváte čisté MPEG datové proudy
(jako DVD, SVCD atp.) jelikož je MPlayer nemusí
převádět do MPEG, naplní buffer velmi rychle.
S prebufferingem je přehrávání videa mnohem
méně citlivé na zaměstnávání CPU jinými programy. Nebudou zahozeny snímky, pokud
si aplikace neuzme CPU na dlouhou dobu.
Pokud přehráváte bez prebufferingu, je em8300 mnohem citlivější na vytížení CPU,
takže doporučujeme zapnout MPlayerovu volbu
-framedrop pro zachování synchronizace.
sync zapíná nový sync-engine. To je zatím experimentální
vlastnost. Se zaplým sync budou vnitřní hodiny em8300 neustále sledovány a
pokud se začnou rozcházet s časovačem MPlayeru,
budou resetovány, což způsobí, že em8300 zahodí veškeré snímky, které čekají ve
frontě.
norm=x nastaví TV normu DXR3 karty bez nutnosti externího
nástroje jako em8300setup. Platné normy jsou 5 = NTSC, 4 = PAL-60,
3 = PAL. Zvláštní normy jsou 2 (automaticné nastavení s použitím PAL/PAL-60) a
1 (automatické nastavení s použitím PAL/NTSC), jelikož ty určí použitou normu
podle snímkové rychlosti filmu. norm = 0 (výchozí) nezmění aktuální normu.
device
= číslo zařízení, které se
má použít, pokud máte více než jednu em8300 kartu.
Jakoukoli z těchto voleb můžete vynechat.
Volby :prebuf:sync zdá se pracují skvěle při přehrávání filmů
v MPEG-4 (DivX). Lidé však hlásili potíže s volbou prebuf při přehrávání souborů
v MPEG-1/2. Měli byste je nejprve zkusit přehrát bez dodatečných voleb a pokud
narazíte na potíže se synchronizací nebo DVD titulky, zkuste to s volbou
:sync.
X
Pro zvukový výstup, kde X
je číslo zařízení
(0 máte-li jen jednu kartu).
xxxxx
Čip em8300 neumí přehrávat signál vzorkovaný méně než 44100Hz. Pokud je vzorkovací kmitočet pod 44100Hz, zvolte buď 44100Hz nebo 48000Hz podle toho, násobek kterého je blíž. Čili pokud má film zvuk 22050Hz použijte 44100Hz, jelikož 44100 / 2 = 22050, pokud jej má 24000Hz použijte 48000Hz jelikož 48000 / 2 = 24000 a tak dále. S výstupem digitálního audia to nefunguje (-ac hwac3).
Pro přehrávání ne-MPEG obsahu na em8300 (např. MPEG-4 (DivX) nebo RealVideo)
musíte nastavit MPEG-1 video filtr jako
libavcodec
(lavc) nebo
libfame
(fame). V tuto chvíli
je lavc jak rychlejší, tak poskytuje lepší kvalitu obrazu, takže vám radíme jej
používat, pokud s ním nemáte potáže. Prostudujte si v man stránce dodatečné
informace o -vf lavc/fame.
Použití lavc silně doporučujeme. Zatím nelze nastavit snímkovou rychlost em8300,
takže je pevně nastavena na 30000/1001 fps. Z toho důvodu doporučujeme,
abyste použili -vf lavc=quality
:25
zvlášť pokud používáte prebuffering. Proč tedy 25 a ne 30000/1001? Nu, důvodem
je, že pokud zadáte 30000/1001, začne obraz trochu poskakovat. Důvod tohoto
jevu nám není znám. Pokud to nastavíte někdemezi 25 a 27, obraz se ustálí.
Pro tuto chvíli se to dá pouze uznat jako fakt.
Ačkoli DXR3 ovladač umí dodat OSD do MPEG-1/2/4 videa, má to mnohem nižší kvalitu než tradiční OSD MPlayeru a má i různé problémy s obnovováním. Výše uvedený příkazový řádek nejprve převede vstupní video do MPEG-4 (je to nutné, sorry), pak aplikuje filtr expand, který však nic neexpanduje (-1: výchozí), ale doplní normální OSD do obrazu (na to je ta "1" na konci).
Čip em8300 podporuje přehrávání zvuku v AC3 (prostorový zvuk) přes digitální audio výstup na kartě. Viz výš volbu -ao oss. Ta musí být použita pro nastavení výstupu do DXR3 místo zvukové karty.
Toto je zobrazovací rozhraní (-vo zr) pro mnoho MJPEG
zachytávacích/přehrávacích karet (testováno na DC10+ a Buz a mělo by pracovat
i s LML33, tedy DC10). Rozhraní pracuje tak, že snímek zakóduje do JPEG a pak
jej pošle do karty. Pro enkódování do JPEG se používá
libavcodec
a je pro ně nezbytný.
Ve speciálním cinerama režimu můžete sledovat filmy
v pravém širokoúhlém formátu, kterého je dosaženo tak, že máte dvě promítačky
a dvě MJPEG karty. V závislosti na rozlišení a nastavení kvality může toto
rozhraní vyžadovat spoustu výkonu CPU. Nezapomeňte zadat
-framedrop, pokud je váš počítač příliš pomalý.
Poznámka: Můj AMD K6-2 350MHz je (s -framedrop) vcelku
adekvátní pro sledování materiálu o rozměru VCD a podškálovaných filmů.
Toto rozhraní komunikuje s jaderným modulem dostupným na http://mjpeg.sf.net, takže jej nejdříve musíte zprovoznit. Přítomnost MJPEG karty je autodetekována skriptem configure. Pokud detekce selže, vynuťte ji pomocí
./configure --enable-zr
Výstup může být ovlivňován několika volbami. Obšírný výklad těchto voleb naleznete v man stránce, krátký přehled obržíte spuštěním
mplayer -zrhelp
Věci jako škálování a OSD (display na obrazovce) nejsou tímto rozhraním pokryty, ale lze jich dosáhnout pomocí video filtrů. Například mějte video o rozlišení 512x272 a chcete jej přehrávat na celé obrazovce přes DC10+, pak máte tři základní možnosti, jak to udělat. Můžete škálovat video na šířku 768, 384 nebo 192. Z důvodu výkonu a kvality si zvolíte škálování filmu na 384x204 pomocí bilineárního softwarového škálovače. Příkazový řádek je pak
mplayer -vo zr -sws 0 -vf scale=384:204 film.avi
Ořezání lze provést crop filtrem a samotným rozhraním. Řekněme, že film je příliš široký pro promítání na vaší Buz a proto chcete použít -zrcrop pro zůžení filmu, pak byste měli použít následující příkaz
mplayer -vo zr -zrcrop 720x320+80+0 benhur.avi
chcete-li použít filtr crop, proveďte
mplayer -vo zr -vf crop=720:320:80:0 benhur.avi
Zvláštní případy -zrcrop vyvolá režim cinerama, takže rozprostřete film na několik televizí nebo promítaček, čímž se vytvoří větší obraz. Předpokládejme, že máte dvě promítačky. Levá je připojena k vaší Buz na /dev/video1 a pravý je připojen do vaší DC10+ na /dev/video0. Film má rozlišení 704x288. Předpokládejme rovněž, že pravá promítačka je černobílá a levá umí JPEG snímky s kvalitou 10, pak byste měli použít následující příkaz
mplayer -vo zr -zrdev /dev/video0 -zrcrop 352x288+352+0 -zrxdoff 0 -zrbw \
-zrcrop 352x288+0+0 -zrdev /dev/video1 -zrquality 10 \
movie.avi
Jak vidíte, volby uvedené před druhým -zrcrop jsou předány pouze do DC10+ a volby za druhým -zrcrop do Buz. Maximální počet MJPEG karet zahrnutých do cinerama režimu jsou čtyři, takže můžete sestavit zobrazovací stěnu 2x2.
Nakonec důležité upozornění: Nespouštějte ani nezastavujte XawTV na přehrávacím zařízení během přehrávání, zhavaru je vám počítač. Můžete však NEJDŘÍV spustit XawTV a PAK spustit MPlayer, počkat až MPlayer skončí a PAK zastavit XawTV.
Toto rozhraní je schopno přehrávání pomocí Blinkenlights UDP protokolu. Pokud nevíte co je Blinkenlights nebo jeho nástupce Arcade, zjistěte si to. Ačkoli je to dost možná nejméně používané video výstupní rozhraní, bezpochyby je tím nejlepším, co může MPlayer nabídnout. Stačí shlédnout některá z Blinkenlights dokumentačních videí. Na Arcade video můžete vidět výstupní rozhraní Blinkenlights v akci v 00:07:50.
Pod Linuxem máte dva způsoby jak zprovoznit TV výstup na G400:
pro instrukce k TV výstupu na Matrox G450/G550 si prostudujte textovou část!
Pomocí ovladače a HAL modulu dostupného na stránkách Matrox. Takto dostanete X na TV.
Tato metoda vám neposkytne akcelerované přehrávání jako pod Windows! Sekundární jednotka má pouze YUV framebuffer, BES (Back End Scaler, YUV škálovač na kartách G200/G400/G450/G550) na něm nepracuje! Ovladač pro Windows to nějak obchází, pravděpodobně použitím 3D jednotky pro zoom a YUV framebufferu pro zobrazení zoomovaného obrazu. Pokud opravdu chcete použít X, použijte volby -vo x11 -fs -zoom, ale bude to POMALÉ a bude zapnuta ochrana proti kopírování Macrovision (Macrovision můžete obejít pomocí tohoto perlového skriptu).
Pomocí matroxfb modulů v jádrech řady 2.4. Jádra 2.2 v nich neobsahují podporu pro TV, takže jsou pro tento účel nepoužitelná. Měli byste povolit VŠECHNY matroxfb-specifické vlastnosti během kompilace (vyjma MultiHead) a zakompilovat je do modulů! Rovněž potřebujete zapnuté I2C.
Vstupte do TVout a zadejte
./compile.sh. Nainstalujte
TVout/matroxset/matroxset
někde do cesty PATH
.
Nemáte-li nainstalován fbset, vložte
TVout/fbset/fbset
někde do cesty PATH
.
Nemáte-li nainstalován con2fb, vložte
TVout/con2fb/con2fb
někde do cesty PATH
.
Pak vstupte do adresáře TVout/ ve zdrojovém adresáři MPlayeru a spusťte ./modules jako root. Vaše textová konzole přejde do režimu framebuffer (není cesta zpět!).
Dále EDITUJTE a spusťte skript ./matroxtv. Objeví se vám velmi jednoduché menu. Stiskněte 2 a Enter. Nyní byste měli mít stejný obraz na svém monitoru i TV. Pokud má obraz na TV (výchozí je PAL) nějaké podivné šrámy, nebyl skript schopen nastavit správně rozlišení (na výchozích 640x512). Zkuste jiná rozlišení z menu a/nebo experimentujte s fbset.
Jo. Dalším úkolem je nechat zmizet kurzor z tty1 (nebo odjinud) a vypnout mazání obrazovky. Spusťe následující příkazy:
echo -e '\033[?25l' setterm -blank 0
nebo
setterm -cursor off setterm -blank 0
Předchozí nejspíš bude lepší umístit do skriptu a také vyčistit obrazovku. Pro zpětné zapnutí kurzoru:
echo -e '\033[?25h'
nebo
setterm -cursor on
A jasně. Spusťte přehrávání filmu:
mplayer -vo mga -fs -screenw 640 -screenh 512 soubor
(Pokud používáte X, přepněte se nyní do matroxfb pomocí například
Ctrl+Alt+F1.)
Změňte 640
a 512
pokud máte
nastaveno jiné rozlišení...
Užijte si ultra-rychlý ultra-vybavený Matrox TV výstup (lepší než Xv)!
Výroba kabelu pro Matrox TV-out. Zříkáme se jakékoli odpovědnosti nebo záruky za jakékoli poškození způsobené touto dokumentací.
Kabel pro G400. Na čtvrtém pinu CRTC2 konektoru je kompozitní video signál. Zem je na šestém, sedmém a osmém pinu. (informaci poskytl Balázs Rácz)
Kabel pro G450. Kompozitní video signál je na pinu jedna. Zem je na pátém, šestém, sedmém a patnáctém (5, 6, 7, 15) pinu. (informaci poskytl Balázs Kerekes)
Podpora TV výstupu pro tyto karty byla přidána teprve nedávno a dosud není v ostré verzi jádra. V současnosti nelze (aspoň pokud vím) použít modul mga_vid, protože ovladač G450/G550 pracuje pouze v jedné konfiguraci: první CRTC čip (s mnohem více schopnostmi) na první displej a druhá CRTC (žádné BES – pro popis BES viz sekci G400 výše) na TV. Takže v současnosti můžete použít pouze MPlayerovo fbdev výstupní rozhraní.
První CRTC nemůže být v současnosti přesměrována na sekundární výstup. Autor jaderného ovladače matroxfb – Petr Vandrovec – pro to snad vyrobí podporu pomocí zobrazení výstupu prvního CRTC na oba výstupy najednou, což se pro tuto chvíli doporučuje pro G400, viz předchozí sekce.
Potřebnou záplatu jádra a podrobné HOWTO lze stáhnout z http://www.bglug.ca/matrox_tvout/
ÚVOD. V současnosti nechce ATI podporovat žádný ze svých TV-out čipů pod Linuxem z důvodu jejich licencované technologii Macrovision.
STATUS TV VÝSTUPU NA KARTÁCH ATI POD LINUXEM
Ne ostatních kartách prostě použijte rozhraní VESA bez VIDIX. Vyžaduje to výkoný CPU.
Jediné co musíte, je mít TV konektor zapojený před zapnutím PC jelikož video BIOS se inicializuje pouze jednou během POST procedury.
Shlédněte tuto URL.
Nejprve si MUSÍTE stáhnout closed-source ovladače z http://nvidia.com. Nebudu zde popisovat instalaci a konfiguraci, jelikož je to mimo rámec této dokumentace.
Jakmile je funkční XFree86, XVideo a 3D akcelerace, editujte sekci Device v souboru XF86Config, podle následujícího příkladu (upravte si to pro svou kartu/TV):
Section "Device" Identifier "GeForce" VendorName "ASUS" BoardName "nVidia GeForce2/MX 400" Driver "nvidia" #Option "NvAGP" "1" Option "NoLogo" Option "CursorShadow" "on" Option "TwinView" Option "TwinViewOrientation" "Clone" Option "MetaModes" "1024x768,640x480" Option "ConnectedMonitor" "CRT, TV" Option "TVStandard" "PAL-B" Option "TVOutFormat" "Composite" EndSection
Samozřejmě je nejdůležitější část TwinView.
Čip NeoMagic lze nalézt v různých laptopech. Některé z nich jsou vybaveny jednoduchým analogovým TV enkodérem, některé jej mají mnohem pokročilejší.
Analogový enkodér: Testováno na Toshibě Tecra 8000. Její čip pro TV výstup je mizerný křáp. Pokud možno se mu obloukem vyhněte.
Musíte použít -vo vesa. Testovaný čip umí jen poměr stran 1.333333, takže se ujistěte, že používáte volby -x, -y a/nebo filtry -vf scale,crop,expand, pokud počítač neumožní TV výstup. Maximální rozlišení je 720*576 v 16bpp.
Známá omezení: pouze VESA, omezení poměru stran 1.33333, obraz není vždy vycentrován, barevná hloubka filmu se každých 10 minut změní na 4bpp a zůstane tak. Často zatuhává, problémy se zobrazováním na LCD.
Chrontel 70xx enkodér: Nalezen v IBM Thinkpad 390E a bude pravděpodobně i ostatních Thinkpadech nebo noteboocích.
Musíte použít -vo vesa:neotv_pal pro PAL nebo -vo vesa:neotv_ntsc pro NTSC. To vám zpřístupní funkci TV výstupu v následujících 16 bpp a 8 bpp režimech:
Režim 512x384 není podporován BIOSem. Musíte obraz škálovat do jiného rozlišení pro aktivaci TV výstupu. Pokud vidíte obraz na obrazovce v 640x480 nebo v 800x600, ale ne v 320x240 nebo jiném menším rozlišení, musíte nahradit dvě tabulky ve vbelib.c. Viz funkci vbeSetTV pro více informací. V tomto případě prosím kontaktujte autora.
Známá omezení: pouze VESA, žádné další ovládací prvky jako jas, kontrast, úroveň černé, filtrace blikání nejsou implementovány.
Linuxové ovladače zvukových karet mají problémy s kompatibilitou. Proto MPlayer spoléhá na vestavěnou vlastnost správně naprogramovaných ovladačů zvukových karet, která umožňuje udržet audio a video synchronizované. Bohužel, někteří autoři ovladačů nezakódovávají tuto vlastnost, protože není nutná pro přehrávání MP3 nebo zvukové efekty.
Ostatní přehrávače médií jako je aviplay nebo xine pravděpodobně fungují s těmito ovladači jak jsou, protože používají "jednoduché" metody s interním časováním. Měření prokázalo, že jejich metody nejsou tak výkonné jako ty z MPlayeru.
Při použití MPlayeru s dobře napsanými audio ovladači nebudete mít nikdy potíže s rozcházením zvuku s videem v závislosti na zvuku. Výjimkou jsou pouze velmi špatně vytvořené soubory (prostudujte si man stránku jak to obejít).
Pokud se stalo, že máte špatný zvukový ovladač, zkuste volbu -autosync, ta by měla vyřešit vaše problémy. Podrobné informace viz man stránka.
Několik poznámek:
Pokud máte ALSA verze 0.5, pak budete téměř vždy použít -ao alsa5, jelikož ALSA 0.5 má vadný kód OSS emulace a zhavaruje MPlayer se zprávou podobnou této:
DEMUXER: Příliš mnoho (945 ve 8390980 bajtech) video paketů v bufferu!
Pokud vám zvuk klape při přehrávání z CD-ROM, zapněte odmaskování IRQ tak, jak je to popsáno v sekci CD-ROM.
Tato sekce je zaměřena na zpřístupnění sledování/grabování z V4L kompatibilního TV tuneru . Popis voleb k TV a ovládání z klávesnice naleznete v man stránce.
Zaprvé musíte rekompilovat. ./configure zdetekuje v4l hlavičkové soubory kernelu a existenci zařízení /dev/video*. Pokud existují, bude zabudována podpora pro TV (viz výstup z ./configure).
Ujistěte se, že váš tuner pracuje s jiným Linuxovým TV softwarem, například XawTV.
Úplný seznam voleb je dostupný v manuálové stránce. Zde je jen několik typů:
Použijte volbu channels. Příklad:
-tv channels=26-MTV1,23-TV2
Vysvětlení: použití této volby, použitelné budou pouze kanály 26 a 23 a bude zde rovněž krásný OSD text po přepnutí kanálů, zobrazující jméno kanálu. Mezery ve jméně kanálu musí být nahrazeny znakem "_".
Zvolte rozumné rozměry obrazu. Rozměry výsledného obrazu by měly být bezezbytku dělitelné 16.
Pokud zachytáváte video se svislým rozlišením vyšším než polovina plného rozlišení (čili 288 pro PAL nebo 240 pro NTSC), pak 'snímky', které dostanete, budou ve skutečnosti prokládané páry půlsnímků. V závislosti na tom, co chcete s videem dělat, je můžete nechat jak jsou, destruktivně odstranit proklad, nebo rozdělit páry do individuálních políček.
Jinak bude získaný snímek roztřepený během rychlých scén a regulátor datového toku nebude pravděpodobně schopen ani udržet nastavený datový tok, vzhledem k tomu, že prokladové artefakty produkují velké množství detailů, což spotřebovává velké přenosové pásmo. Odstraňování prokladu můžete zapnout pomocí volby -vf pp=DEINT_TYPE. Dobrou práci obvykle odvede pp=lb, ale záleží na osobních preferencích. Prostudujte si ostatní možnosti odstraňování prokladu v manuálu a vyzkoušejte je.
Odstřihněte mrtvý prostor. Když zachytáváte video, oblasti na okrajích jsou obvykle černé, nebo obsahují nějaký šum. Což opět zbytečně spotřebovává přenosové pásmo. Přesněji to nejsou samotné černé oblasti, ale ostrý přechod mezi černou a světlejším videem, ale to teď není důležité. Než začnete zachytávat, nastavte parametry volby crop tak, aby byl veškerý binec na okrajích odstřižen. Opět se snažte zachovat rozumné rozměry výsledného obrazu.
Sledujte zatížení CPU. Většinu času by nemělo překročit hranici 90%. Pokud máte velkou vyrovnávací paměť pro zachytávání, dokáže MEncoder přežít několikasekundové přetížení, ale nic víc. Raději vypněte 3D OpenGL spořiče obrazovky a podobné věci.
Nehrajte si se systémovými hodinami. MEncoder používá systémové hodiny pro A/V synchronizaci. Pokud přestavíte systémové hodiny (zvlášť nazpět), MEncoder bude zmaten a vy přijdete o snímky. To je velmi důležité pokud jste připojeni k síti a používáte nějaký časový synchronizační software jako je NTP. Musíte vypnout NTP během zachytávání, pokud chcete spolehlivě zachytávat.
Neměňte outfmt pokud nevíte co děláte, nebo vaše
karta/ovladač opravdu nepodporuje výchozí (YV12 barevný prostor).
Ve starší verzi MPlayeru/
MEncoderu bylo nutné nastavit výstupní formát.
Tento problém by měl být v současných verzích vyřešen,
outfmt již není nadále potřeba a výchozí hodnoty vyhovují
pro většinu případů. Například pokud zachytáváte do DivX pomocí
libavcodec
u a uvedete
outfmt=RGB24 pro zvýšení kvality zachytávaných snímků,
stejně budou tyto snímky později konvertovány zpět na YV12, takže jediné co
tím získáte je spousta vyplýtvaného výkonu CPU.
Chcete-li nastavit barevný prostor I420 (outfmt=i420), musíte přidat i volbu -vc rawi420 kvůli konfliktu fourcc Intel Indeo video kodekem.
Existuje několik cest, jak zachytávat zvuk. Můžete nahrát zvuk buď pomocí zvukové karty pomocí externího propojení mezi video kartou a linkovým vstupem, nebo použitím vestavěného ADC v čipu bt878. Ve druhém případě musíte načíst ovladač btaudio. Přečtěte si soubor linux/Documentation/sound/btaudio (ve zdrojácích kernelu, nikoli MPlayeru) pro několik instrukcí jak použít tento ovladač.
Pokud MEncoder nedokáže otevřít audio zařízení, ujistěte se, že je opravdu k dispozici. Můžete mít potíže se zvukovými servery jako aRts (KDE) nebo ESD (GNOME). Pokud máte plně duplexní zvukovou kartu (téměř každá slušná karta to již podporuje) a používáte KDE, zkuste zaškrtnout volbu "full duplex" v menu nastavení zvukového serveru.
Modelový výstup do AAlib :)
mplayer -tv driver=dummy:width=640:height=480 -vo aa tv://
Vstup ze standardního V4L:
mplayer -tv driver=v4l:width=640:height=480:outfmt=i420 -vc rawi420 -vo xv tv://
Mnohem sofistikovanější příklad. Zde MEncoder zachytává obraz v plném PALu, ořízne okraje a odstraní proklad obrazu pomocí lineárního směšovacího algoritmu. Zvuk je komprimován konstantním datovým tokem 64kbps LAME kodekem. Toto nastavení je vhodné pro zachytávání filmů.
mencoder -tv driver=v4l:width=768:height=576 \
-ovc lavc -lavcopts vcodec=mpeg4:vbitrate=900 \
-oac mp3lame -lameopts cbr:br=64 \
-vf crop=720:544:24:16,pp=lb -o výstupní.avi
tv://
Toto navíc přeškáluje video na 384x288 a zkomprimuje jej s datovým tokem 350kbps v režimu vysoké kvality. Volba vqmax uvolňuje kvantizer a umožní video kompresoru podržet takto nízký datový tok i za cenu snížení kvality. To lze použít pro záznam dlouhých TV seriálů, kde kvalita obrazu není až tolik důležitá.
mencoder -tv driver=v4l:width=768:height=576 \
-ovc lavc -lavcopts vcodec=mpeg4:vbitrate=350:vhq:vqmax=31:keyint=300 \
-oac mp3lame -lameopts cbr:br=48 \
-vf crop=720:540:24:18,pp=lb,scale=384:288 -sws 1 -o výstupní.avi
tv://
Rovněž můžete nastavit menší rozměry obrazu ve volbě -tv a vyhnout se tak softwarovému škálování, ale tento přístup vyžaduje maximální množství informací a je trochu odolnější proti šumu. Čipy bt8x8 umí průměrování pixelů pouze ve svislém směru díky hardwarovým omezením.
Hlavní vývojovou platformou je Linux na x86, ačkoli MPlayer pracuje na mnoha jiných portech Linuxu. Binární balíčky MPlayeru jsou dostupné z několika zdrojů. Nicméně není žádný z těchto balíčků podporován. Hlaste tedy problémy jejich autorům, nikoli nám.
Pro vytvoření balíčku pro Debian spusťte následující příkaz v adresáři se zdrojovým kódem MPlayeru:
fakeroot debian/rules binary
Pokud chcete předat nějaké volby pro configure, můžete nastavit proměnnou
prostředí DEB_BUILD_OPTIONS
. Například, pokud chcete GUI a
podporu OSD menu, měli byste použít:
DEB_BUILD_OPTIONS="--enable-gui --enable-menu" fakeroot debian/rules binary
Rovněž můžete předat některé proměnné do Makefile. Například, pokud chcete kompilovat pomocí gcc 3.4 i v případě, že to není výchozí kompilátor:
CC=gcc-3.4 DEB_BUILD_OPTIONS="--enable-gui" fakeroot debian/rules binary
K vyčistění zdrojového stromu spusťte následující příkaz:
fakeroot debian/rules clean
Jako root můžete nainstalovat .deb balíček obvyklým způsobem:
dpkg -i ../mplayer_version
.deb
Christian Marillat vytvářel jistou dobu neoficiální Debianí balíčky MPlayeru, MEncoderu a našich bitmapových fontů, můžete si je stáhnout (apt-get) z jeho domácí stránky.
Dominik Mierzejewski vytvořil a udržuje oficiální RPM balíčky MPlayeru pro Red Hat a Fedora Core. Ty jsou dostupné z jeho repozitáře.
RPM balíčky pro Mandrake/Mandriva jsou dostupné z P.L.F.. SuSE zařadilo do své distribuce zmrzačenou verzi MPlayeru. V posledních verzích ji odstranili. Funkční RPM naleznete na links2linux.de.
MPlayer pracuje na Linuxových PDA s ARM CPU např.
Sharp Zaurus, Compaq Ipaq. Nejjednodušší způsob jak si opatřit
MPlayer je, stáhnout si jej z některého
OpenZaurus balíčkového kanálu.
Pokud si jej chcete skompilovat sami, měli byste nahlédnout do adresáře
mplayer
a
libavcodec
v buildroot OpenZaurus distribuce. Zde mají vždy poslední Makefile a patche používané
pro sestavení CVS verze MPlayeru s
libavcodec
em.
Pokud potřebujete GUI rozhraní, můžete použít xmms-embedded.
MPlayer běží na všech známých BSD verzích. Existují portované/pkgsrc/fink/atd verze MPlayeru, které lze pravděpodobně snadněji použít, než naše surové zdrojové kódy.
K sestavení MPlayeru budete potřebovat GNU make (gmake - nativní BSD make nebude pracovat) a současnou verzi binutils.
Pokud si MPlayer stěžuje, že nemůže najít /dev/cdrom nebo /dev/dvd, vytvořte příslušný symbolický link:
ln -s /dev/vaše_cdrom_zařízení
/dev/cdrom
Chcete-li používat Win32 DLL v MPlayeru, budete muset
rekompilovat jádro s volbou "USER_LDT
"
(pokud nepoužíváte FreeBSD-CURRENT, kde je to výchozí).
Pokud váš procesor má SSE, rekompilujte jádro s volbami
"CPU_ENABLE_SSE
" (vyžaduje FreeBSD-STABLE nebo patche
do jádra).
Vzhledem k omezením v různých verzích gas (GNU assembleru – pozn. překl.)
(relokace vs MMX), budete muset kompilovat ve dvou krocích:
Nejprve se ujistěte že je nenativní as jako první ve vaší $PATH
a proveďte gmake -k, pak zajistěte, aby se použila nativní
verze a proveďte gmake.
Od OpenBSD 3.4 není již výše uvedená metoda potřeba.
Viz sekce Mac OS.
MPlayer byl portován na mnoho komerčních variant Unixu. Jelikož vývojová prostředí na těchto systémech bývají odlišná od těch na svobodných Unixech, budete muset provést ruční úpravy, aby se kompilace povedla.
MPlayer by měl běžet na Solarisu 2.6 nebo novějším. Použijte SUN audio rozhraní pomocí volby -ao sun pro přehrávání zvuku.
Na UltraSPARCích, MPlayer
využívá jejich rozšíření VIS
(ekvivalentní MMX), zatím jen v
libmpeg2
,
libvo
a libavcodec
, ale nikoli v
mp3lib
. Můžete přehrávat VOB soubor
na 400MHz CPU. Budete k tomu potřebovat nainstalovanou
mLib
.
Pro kompilaci balíku budete potřebovat GNU make (gmake, /opt/sfw/gmake), jelikož nativní make Solarisu nebude pracovat. Typickou chybou kompilace s make Solarisu namísto GNU make je:
% /usr/ccs/bin/make make: Fatal error in reader: Makefile, line 25: Unexpected end of line seen
Na Solarisu SPARC, potřebujete GNU C/C++ Compiler; nezáleží na tom, zda je GNU C/C++ compiler konfigurován s nebo bez GNU assembleru.
Na Solarisu x86, potřebujete GNU assembler a GNU C/C++ compiler, konfigurovaný pro použití GNU assembleru! Kód MPlayeru na platformě x86 intenzivně používá MMX, SSE a 3DNOW! instrukce, které nemůže být kompilovány Sun assemblerem /usr/ccs/bin/as.
Skript configure zkouší zjistit, který assembler je použitý
vaším příkazem "gcc" (v případě že autodetekce selže, použijte volbu
--as=/kdekoli/máte/nainstalován/gnu-as
pro nastavení configure skriptu tak, aby našel GNU
"as" na vašem systému).
Chybová zpráva z configure na systému Solaris x86 s použitím GCC bez GNU assembleru:
% configure ... Checking assembler (/usr/ccs/bin/as) ... , failed Please upgrade(downgrade) binutils to 2.10.1...
(Řešení: Nainstalujte a použijte gcc konfigurovaný s --with-as=gas)
Typická chyba, kterou dostanete při kompilaci pomocí GNU C kompilátoru, který nepoužívá 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 ...
Díky chybám v Solarisu 8, nemůžete přehrávat DVD disky větší než 4 GB:
Ovladač sd(7D) na Solarisu 8 x86 má chybu v přístupu k diskovému bloku >4GB na zařízeních, které mají logical blocksize != DEV_BSIZE (čili CD-ROM a DVD média). Díky 32Bit int overflow, dostanete přístupovou diskovou adresu modulo 4GB (http://groups.yahoo.com/group/solarisonintel/message/22516). Tento problém neexistuje ve SPARC verzi Solarisu 8.
Podobná chyba je i v kódu systému souborů hsfs(7FS) (AKA ISO9660), hsfs nemusí podporovat oddíly/disky větší než 4GB, ke všem datům je přistupováno modulo 4GB (http://groups.yahoo.com/group/solarisonintel/message/22592). Problém hsfs může být odstraněn nainstalováním patche 109764-04 (sparc) / 109765-04 (x86).
You can either try to install the GNU install program, and (if you did not put it in your global path) then point to the location with:
./configure --with-install=/path/and/name/of/install
Or you can use the default install delivered with IRIX 6.5 in which case you will have to edit the Makefile by hand a little bit. Change the following two lines:
$(INSTALL) -c -m 644 DOCS/mplayer.1 $(MANDIR)/man1/mplayer.1 $(INSTALL) -c -m 644 etc/codecs.conf $(CONFDIR)/codecs.conf
to:
$(INSTALL) -m 644 mplayer.1 $(MANDIR)/man1/ $(INSTALL) -m 644 codecs.conf $(CONFDIR)/
And then do (from within the MPlayer source dir):
cp DOCS/mplayer.1 . ; cp etc/codecs.conf .
and then go on with building and installing.
Joe Page hosts a detailed HP-UX MPlayer HOWTO by Martin Gansser on his homepage. With these instructions the build should work out of the box. The following information is taken from this HOWTO.
You need GCC 3.4.0 or later, GNU make 3.80 or later and SDL 1.2.7 or later. HP cc will not produce a working program, prior GCC versions are buggy. For OpenGL functionality you need to install Mesa and the gl and gl2 video output drivers should work, speed may be very bad, depending on the CPU speed, though. A good replacement for the rather poor native HP-UX sound system is GNU esound.
Create the DVD device scan the SCSI bus with:
# ioscan -fn Class I H/W Path Driver S/W State H/W Type Description ... ext_bus 1 8/16/5 c720 CLAIMED INTERFACE Built-in SCSI target 3 8/16/5.2 tgt CLAIMED DEVICE disk 4 8/16/5.2.0 sdisk CLAIMED DEVICE PIONEER DVD-ROM DVD-305 /dev/dsk/c1t2d0 /dev/rdsk/c1t2d0 target 4 8/16/5.7 tgt CLAIMED DEVICE ctl 1 8/16/5.7.0 sctl CLAIMED DEVICE Initiator /dev/rscsi/c1t7d0 /dev/rscsi/c1t7l0 /dev/scsi/c1t7l0 ...
The screen output shows a Pioneer DVD-ROM at SCSI address 2. The card instance for hardware path 8/16 is 1.
Create a link from the raw device to the DVD device.
# ln -s /dev/rdsk/c<SCSI bus instance>
t<SCSI target ID>
d<LUN>
/dev/<device>
Example:
# ln -s /dev/rdsk/c1t2d0 /dev/dvd
Below are solutions for some common problems:
Crash at Start with the following error message:
/usr/lib/dld.sl: Unresolved symbol: finite (code) from /usr/local/lib/gcc-lib/hppa2.0n-hp-hpux11.00/3.2/../../../libGL.sl
This means that the function .finite().
is not
available in the standard HP-UX math library.
Instead there is .isfinite().
.
Solution: Use the latest Mesa depot file.
Crash at playback with the following error message:
/usr/lib/dld.sl: Unresolved symbol: sem_init (code) from /usr/local/lib/libSDL-1.2.sl.0
Solution: Use the extralibdir option of configure --with-extralibdir="/usr/lib -lrt"
MPlayer segfaults with a message like this:
Pid 10166 received a SIGSEGV for stack growth failure. Possible causes: insufficient memory or swap space, or stack size exceeded maxssiz. Segmentation fault
Solution:
The HP-UX kernel has a default stack size of 8MB(?) per process.(11.0 and
newer 10.20 patches let you increase maxssiz
up to
350MB for 32-bit programs). You need to extend maxssiz
and recompile the kernel (and reboot). You can use SAM to do this. (While at
it, check out the maxdsiz
parameter for the maximum
amount of data a program can use. It depends on your applications, if the
default of 64MB is enough or not.)
Yes, MPlayer runs on Windows under Cygwin and MinGW. It does not have an official GUI yet, but the command line version is completely functional. You should check out the MPlayer-cygwin mailing list for help and latest information. Official Windows binaries can be found on the download page. Installer packages and simple GUI frontends are available from external sources, we have collected then in the Windows section of our projects page.
If you wish to avoid using the command line, a simple trick is to put a shortcut on your desktop that contains something like the following in the execute section:
c:\path\to\
mplayer.exe %1
This will make MPlayer play any movie that is dropped on the shortcut. Add -fs for fullscreen mode.
Best results are achieved with the native DirectX video output driver (-vo directx). Alternatives are OpenGL and SDL, but OpenGL performance varies greatly between systems and SDL is known to distort video or crash on some systems. If the image is distorted, try turning off hardware acceleration with -vo directx:noaccel. Download DirectX 7 header files to compile the DirectX video output driver. Furthermore you need to have DirectX 7 or later installed for the DirectX video output driver to work.
VIDIX now works under Windows as -vo winvidix, although it is still experimental and needs a bit of manual setup. Download dhahelper.sys or dhahelper.sys (with MTRR support) and copy it to the libdha/dhahelperwin directory in your MPlayer source tree. Open a console and change to that directory. Then type
gcc -o dhasetup.exe dhasetup.c
and execute
dhasetup.exe install
as Administrator. After that you will have to reboot. When you are
done, copy the .so
files from
vidix/drivers to the
mplayer/vidix directory
relative to your mplayer.exe.
For best results MPlayer should use a colorspace that your video card supports in hardware. Unfortunately many Windows graphics drivers wrongly report some colorspaces as supported in hardware. To find out which, try
mplayer -benchmark -nosound -frames 100 -vf format=colorspace
movie
where colorspace
can be any colorspace
printed by the -vf format=fmt=help option. If you
find a colorspace your card handles particularly bad
-vf noformat=colorspace
will keep it from being used. Add this to your config file to permanently
keep it from being used.
There are special codec packages for Windows available on our
codecs page
to allow playing formats for which there is no native support yet.
Put the codecs somewhere in your path or pass
--with-codecsdir=c:/path/to/your/codecs
(alternatively
--with-codecsdir=/path/to/your/codecs
only on Cygwin) to configure.
We have had some reports that Real DLLs need to be writable by the user
running MPlayer, but only on some systems (NT4).
Try making them writable if you have problems.
You can play VCDs by playing the .DAT or .MPG files that Windows exposes on VCDs. It works like this (adjust for the drive letter of your CD-ROM):
mplayer d:/mpegav/avseq01.dat
DVDs also work, adjust -dvd-device for the drive letter of your DVD-ROM:
mplayer dvd://<title>
-dvd-deviced
:
The Cygwin/MinGW console is rather slow. Redirecting output or using the -quiet option has been reported to improve performance on some systems. Direct rendering (-dr) may also help. If playback is jerky, try -autosync 100. If some of these options help you, you may want to put them in your config file.
On Windows the runtime CPU detection disables SSE support because of recurring and hard-to-trace SSE-related crashes. If you wish to have SSE support under Windows, you will have to compile without runtime CPU-detection.
If you have a Pentium 4 and are experiencing a crash using the RealPlayer codecs, you may need to disable hyperthreading support.
You need to run Cygwin 1.5.0 or later in order to compile MPlayer.
DirectX header files need to be extracted to /usr/include/ or /usr/local/include/.
Instructions and files for making SDL run under Cygwin can be found on the libsdl site.
Installing a version of MinGW that could compile MPlayer used to be quite tricky, but it works out of the box now. Just install MinGW 3.1.0 or later and MSYS 1.0.9 or later and tell the MSYS postinstall that MinGW is installed.
Extract DirectX header files to /mingw/include/.
MOV compressed header support requires zlib, which MinGW does not provide by default. Configure it with --prefix=/mingw and install it before compiling MPlayer.
Complete instructions for building MPlayer and necessary libraries can be found in the MPlayer MinGW HOWTO.
MPlayer does not work on Mac OS versions before 10, but should compile out-of-the-box on Mac OS X 10.2 and up. The preferred compiler is the Apple version of GCC 3.x or later. If you have Mac OS X 10.3.9 or later and QuickTime 7 you can use the macosx video output driver.
You can get a native GUI for MPlayer together with precompiled MPlayer binaries for Mac OS X from the MPlayerOSX project, but be warned: that project is not active anymore.
Fortunately, MPlayerOSX has been taken over by a member of the MPlayer team. Preview releases are available from our download page and an official release should arrive soon.
In order to build MPlayerOSX from source
yourself, you need the mplayerosx
, the
main
and a copy of the
main
CVS module named
main_noaltivec
.
mplayerosx
is the GUI frontend,
main
is MPlayer and
main_noaltivec
is MPlayer built without AltiVec
support.
To check out CVS modules use:
cvs -d:pserver:anonymous@mplayerhq.hu:/cvsroot/mplayer login cvs -z3 -d:pserver:anonymous@mplayerhq.hu:/cvsroot/mplayer co -P mplayerosx cvs -z3 -d:pserver:anonymous@mplayerhq.hu:/cvsroot/mplayer co -P main
In order to build MPlayerOSX you will need to set up something like this:
MPlayer_source_directory | |--->main (MPlayer CVS source) | |--->main_noaltivec (MPlayer CVS source configured with --disable-altivec) | |--->mplayerosx (MPlayer OS X CVS source)
You first need to build main and main_noaltivec.
Next, set a global variable:
export MACOSX_DEPLOYMENT_TARGET=10.3
Then, configure:
If you configure for a G4 or later CPU with AltiVec support, do as follows:
./configure --with-termcaplib=ncurses.5 --disable-gl --disable-x11
If you configure for a G3-powered machine without AltiVec, use:
./configure --with-termcaplib=ncurses.5 --disable-gl --disable-x11 --disable-altivec
You may need to edit config.mak and change
-mcpu
and -mtune
from 74XX
to G3
.
Continue with
make
then go to the mplayerosx directory and type
make dist
This will create a compressed .dmg
archive
with the ready to use binary.
You can also use the Xcode 2.1 project; the old project for Xcode 1.x does not work anymore.
MPlayer runs on a number of exotic platforms, but most of the platform-specific changes from those systems have not been merged back into the main source tree. For build instructions you should refer to the system-specific documentation.
You'll need to download and install SDL for QNX. Then run MPlayer with -vo sdl:photon and -ao sdl:nto options, it should be fast.
The -vo x11 output will be even slower than on Linux, since QNX has only X emulation which is very slow.
The people over at www.amigasoft.net make current MPlayer and MEncoder packages.
Nicholas Det at Genesi has done a big and powerful port of MPlayer for MorphOS. Sadly it's based on the 0.90 series.
Get if from MorphZone:
Úplný seznam dostupných voleb a příkladů pro MEncoder naleznete v man stránce. Řadu užitečných příkladů a podrobných návodů pro použití mnoha enkódovacích voleb naleznete v tipech pro enkódování, které byly získány z několika diskusí v konferenci MPlayer-users. Prohledejte archivy, chcete-li bohatost diskusí o všech aspektech a problémech vztažených k enkódování MEncoderem.
Audio a video kodeky pro enkódování jsou vybírány příslušnými volbami -oac a -ovc options. Napište například:
mencoder -ovc help
pro seznam video kodeků podporovaných verzí programu MEncoder na vašem počítači. Dostupné jsou následující možnosti:
Audio (zvukové) kodeky:
Jméno audio kodeku | Popis |
---|---|
mp3lame | Enkóduje do VBR, ABR nebo CBR MP3 pomocí LAME |
lavc | Použije se některý z
libavcodec audio kodeků
|
faac | FAAC AAC audio enkodér |
toolame | Enkodér MPEG Audio Layer 2 |
twolame | Enkodér MPEG Audio Layer 2 založený na tooLAME |
pcm | Nekomprimovaný PCM zvuk |
copy | Nereenkóduje, pouze kopíruje komprimované vzorky |
Video kodeky:
Jméno video kodeku | Popis |
---|---|
lavc | Použije se některý z
libavcodec video kodeků
|
xvid | XviD, MPEG-4 Advanced Simple Profile (ASP) kodek |
x264 | x264, MPEG-4 Advanced Video Coding (AVC), alias H.264 kodek |
nuv | nuppel video, používaný některými realtime aplikacemi |
raw | Nekomprimované videosnímky |
copy | Nereenkóduje, pouze kopíruje komprimované snímky |
frameno | Použité pro 3-průchodové enkódování (nedoporučujeme) |
Výstupní nosný formát je vybírán volbou -of. Zadejte:
mencoder -of help
pro seznam všech nosných formátů podporovaných verzí programu MEncoder na vašem počítači. Dostupné jsou následující možnosti:
Nosné formáty:
Název nosného formátu | Popis |
---|---|
lavf | Jeden z nosných formátů podporovaných
libavformat |
avi | Audio-Video Interleaved (Prokládané audio s videem) |
mpeg | MPEG-1 a MPEG-2 PS |
rawvideo | surový (raw) video datový proud (žádný muxing – pouze jeden video proud) |
rawaudio | surový (raw) audio datový proud (žádný muxing – pouze jeden audio proud) |
Nosný formát AVI je nativním nosným formátem MEncoderu, což znamená, že je tím, který je nejlépe zpracován a pro nějž byl MEncoder navržen. Jak bylo zmíněno, ostatní nosné formáty jsou použitelné, ale můžete při jejich použití narazit na problémy.
Nosné formáty libavformat
:
Pokud jste si zvolili libavformat
pro provádění muxování výstupního souboru (pomocí -of lavf),
příslušný nosný formát bude určen z přípony výstupního souboru.
Můžete vynutit určitý nosný formát pomocí parametru format
knihovny libavformat
.
Název libavformat nosného formátu | Popis |
---|---|
mpg | MPEG-1 a MPEG-2 PS |
asf | Advanced Streaming Format |
avi | Audio-Video Interleaved |
wav | Waveform Audio |
swf | Macromedia Flash |
flv | Macromedia Flash video |
rm | RealMedia |
au | SUN AU |
nut | otevřený nosný formát NUT (experimentální a dosud neslučitelný se specifikací) |
mov | QuickTime |
mp4 | formát MPEG-4 |
dv | Sony Digital Video |
Jak vidíte, libavformat
umožňuje MEncoderu muxovat do velkého množství
nosných formátů.
Naneštěstí, jelikož MEncoder nebyl od počátku
navržen pro podporu jiných nosných formátů než AVI, měli byste být
paranoidní ve vstahu k výstupnímu souboru.
Ověřte si prosím pro jistotu, že audio/video synchronizace je OK
a soubor lze správně přehrát i jinými přehrávači, než
MPlayer.
Příklad:
Vytvoření Macromedia Flash videa vhodného pro přehrávání ve webovém prohlížeči pomocí Macromedia Flash pluginu:
mencodervstupní.avi
-ovýstupní.flv
-of lavf -oac mp3lame -lameopts abr:br=56 -ovc lavc \ -lavcopts vcodec=flv:vbitrate=500:mbd=2:mv0:trell:v4mv:cbp:last_pred=3 \ -srate 22050
MEncoder umí enkódovat ze souborů nebo přímo z
DVD či VCD disku.
Vložte na příkazovém řádku jméno souboru pro enkódování souboru,
nebo dvd://číslo_titulu
nebo
vcd://číslo_stopy
pro enkódování
DVD titulu či VCD stopy.
Máte-li již zkopírováno DVD na hard disk (k tomu můžete použít nástroj jako
dvdbackup, dostupný na mnoha systémech),
a chcete enkódovat z kopie, měli byste i zde použít syntaxi
dvd:// ve spojení s volbou -dvd-device
následovanou cestou do kořenového adresáře skopírovaného DVD.
Volby -dvd-device a -cdrom-device
lze rovněž použít k přenastavení cest k souborům zařízení pro přímé
čtení disků, pokud výchozí
/dev/dvd a /dev/cdrom na vašem
systému nepracují.
Enkódujete-li z DVD, je často vhodné vybrat kapitolu nebo rozsah
kapitol k enkódování.
Pro tento účel můžete použít volbu -chapter.
Například s volbou -chapter 1-4
se budou z DVD enkódovat pouze kapitoly 1 až 4.
To se zvlášť hodí, pokud budete enkódovat film na velikost 1400 MB
určený pro dvě CD, jelikož budete mít jistotu, že zlom nastane přesně
na hranici kapitol místo uprostřed scény.
Pokud máte podporovanou TV zachytávací kartu, můžete rovněž enkódovat ze
zařízení TV vstupu.
Použijte tv://číslo_kanálu
jako
jméno souboru a volbu -tv pro konfiguraci různých nastavení
zachytávání.
Vstup z DVB pracuje obdobně.
Název vychází z faktu, že soubor je enkódován dvakrát. První enkódování (dubbed pass) vytvoří dočasné soubory (*.log) velikosti několika megabajtů, které zatím nemažte (můžete smazat AVI, nebo raději žádné nevytvářejte a přesměrujte je do /dev/null). Ve druhém průchodu je vytvořen dvouprůchodový výstupní soubor s použitím řízení datového toku z dočasných souborů. Výsledný soubor bude mít lepší kvalitu obrazu. Pokud jste o tom teď slyšeli poprvé, měli byste si prostudovat některé návody dostupné na netu.
Příklad 12.1. Kopírování zvukové stopy
Dvouprůchodové enkódování druhé stopy z DVD do MPEG-4 ("DivX") AVI zatímco se zvuk pouze zkopíruje.
mencoder dvd://2 -ovc lavc -lavcopts vcodec=mpeg4:vpass=1 -oac copy -o /dev/null
mencoder dvd://2 -ovc lavc -lavcopts vcodec=mpeg4:vpass=2 -oac copy -o výstup.avi
Příklad 12.2. Enkódování zvukové stopy
Dvouprůchodové enkódování DVD do MPEG-4 ("DivX") AVI a současně enkódování zvukové stopy do MP3. Při této metodě buďte opatrní, jelikož v některých případech může vést k rozjetí zvuku s videem.
mencoder dvd://2 -ovc lavc -lavcopts vcodec=mpeg4:vpass=1 -oac mp3lame -lameopts vbr=3 -o /dev/null
mencoder dvd://2 -ovc lavc -lavcopts vcodec=mpeg4:vpass=2 -oac mp3lame -lameopts vbr=3 -o výstup.avi
MEncoder umí vytvořit výstupní soubor formátu MPEG (MPEG-PS). Pokud používáte MPEG-1 nebo MPEG-2 video, obvykle je to proto, že enkódujete pro omezený formát jako je SVCD, VCD nebo DVD. Konkrétní požadavky těchto formátů jsou objasněny v sekci návod pro vytvoření VCD a DVD.
Výstupní souborový formát MEncoderu změníte použitím volby -of mpeg.
Příklad:
mencodervstup.avi
-of mpeg -ovc lavc -lavcopts vcodec=mpeg1video -oac copydalší_volby
-ovýstup.mpg
Vytvoření MPEG-1 souboru vhodného pro přehrávání na systémech s minimální podporou multimédií, jako je výchozí instalace Windows:
mencodervstup.avi
-of mpeg -mpegopts format=mpeg1:tsaf:muxrate=2000 -ovýstup.mpg
-oac lavc -ovc lavc \ -lavcopts acodec=mp2:abitrate=224:vcodec=mpeg1video:vbitrate=1152:keyint=15:mbd=2:aspect=4/3
Často potřebujeme změnit velikost obrázků ve filmu a to z mnoha důvodů: zmenšení souboru, zátěže sítě atd. Mnoho lidí dokonce mění velikost při převodu DVD nebo SVCD do DivX AVI. Pokud si přejete video přeškálovat, přečtěte si sekci Zachování poměru stran.
Samotný proces škálování je prováděn video filtrem scale
:
-vf scale=šířka
:výška
.
Jeho kvalita může být nastavena volbou -sws.
Pokud ji neuvedete, MEncoder použije 2: bikubickou.
Použití:
mencodervstup.mpg
-ovc lavc -lavcopts vcodec=mpeg4 -vf scale=640:480 -ovýstup.avi
MEncoder může zpracovat vstupní datové proudy dvěma způsoby: enkóduje je, nebo je kopíruje. Tato část je o kopírování.
Video proud (volba -ovc copy): můžete dělat pěkné věci :) Jako umístění (nikoli konverze!) FLI nebo VIVO nebo MPEG-1 videa do AVI souboru! Samozřejmě takové soubory přehraje pouze MPlayer :) A proto to nejspíš nemá žádnou rozumnou hodnotu. A teď vážně: kopírování video proudu může být užitečné například tehdy, když má být enkódován pouze zvuk (např. nekomprimovaný PCM do MP3).
Audio proud (volba -oac copy):
jednoduché. Je možné vzít externí zvukový soubor (MP3, WAV) a namultiplexovat
jej do výstupního proudu. K tomu použijte volbu
-audiofile soubor
.
Použití -oac copy pro kopírování z jednoho nosného fomátu do jiného může vyžadovat použití -fafmttag pro zachování příznaku formátu zvuku původního souboru. Například pokud konvertujete NSV soubor a AAC zvukem do nosného formátu AVI, bude příznak formátu zvuku nesprávný a bude jej nutno změnit. Seznam příznaků audio formátu naleznete v souboru codecs.conf.
Example:
mencodervstupní.nsv
-oac copy -fafmttag 0x706D -ovc lavc -lavcopts vcodec=mpeg4 -ovýstupní.avi
MEncoder je schopen vytvořit film z jednoho nebo více JPEG, PNG nebo TGA souborů. Pomocí jednoduchého snímkového kopírování může vytvořit MJPEG (Motion JPEG), MPNG (Motion PNG) nebo MTGA (Motion TGA) soubory.
Vysvětlení procesu:
MEncoder dekóduje vstupní
soubor(y) pomocí knihovny libjpeg
(když dekóduje PNG, použije libpng
).
Potom MEncoder nakrmí dekódovaný snímek do zvoleného video kompresoru (DivX4, XviD, FFmpeg msmpeg4, atd).
Příklady. Vysvětlení volby -mf je v man stránce.
Vytvoření MPEG-4 souboru ze všech JPEG souborů v aktuálním adresáři:
mencoder mf://*.jpg -mf w=800:h=600:fps=25:type=jpg -ovc lavc -lavcopts vcodec=mpeg4 -oac copy -o výstup.avi
Vytvoření MPEG-4 souboru z některých JPEG souborů v aktuálním adresáři:
mencoder mf://snímek001.jpg,snímek002.jpg
-mf w=800:h=600:fps=25:type=jpg -ovc lavc -lavcopts vcodec=mpeg4 -oac copy -ovýstup.avi
Vytvoření MPEG-4 souboru ze seznamu vyjmenovaných JPEG souborů (seznam.txt v aktuálním adresáři obsahuje seznam souborů k použití jako zdroj, každý soubor na samostatném řádku):
mencoder mf://@seznam.txt
-mf w=800:h=600:fps=25:type=jpg \ -ovc lavc -lavcopts vcodec=mpeg4:mbd=2:trell -oac copy -ovýstup.avi
Vytvoření Motion JPEG (MJPEG) souboru ze všech JPEG souborů v aktuálním adresáři:
mencoder mf://*.jpg -mf w=800:h=600:fps=25:type=jpg -ovc copy -oac copy -o výstup.avi
Vytvoření nekomprimovaného souboru ze všech PNG souborů v aktuálním adresáři:
mencoder mf://*.png -mf w=800:h=600:fps=25:type=png -ovc raw -oac copy -o výstup.avi
Šířka musí být celé číslo násobek 4, to je dáno omezením RAW RGB AVI formátu.
Vytvoření Motion PNG (MPNG) souboru ze všech PNG souborů v aktuálním adresáři:
mencoder mf://*.png -mf w=800:h=600:fps=25:type=png -ovc copy -oac copy -o výstup.avi
Vytvoření Motion TGA (MTGA) souboru ze všech TGA souborů v aktuálním adresáři:
mencoder mf://*.tga -mf w=800:h=600:fps=25:type=tga -ovc copy -oac copy -o výstup.avi
MEncoder je schopen vyextrahovat titulky z DVD do VOBsub formátovaných souborů. Ty sestávají ze dvou souborů zakončených .idx a .sub a jsou obvykle zabaleny v jediném .rar archivu. MPlayer je umí přehrávat s pomocí voleb -vobsub a -vobsubid.
Zadejte základní jméno (čili bez přípony .idx nebo .sub) výstupních souborů pomocí volby -vobsubout a index pro tyto titulky ve zbývajících souborech pomocí -vobsuboutindex.
Pokud není vstup z DVD, měli byste použít -ifo pro indikaci .ifo souboru nutného k vytvoření výsledného .idx souboru.
Pokud vstup není z DVD a nemáte .ifo soubor, budete muset použít volbu -vobsubid k nastavení, pro které id jazyka se má vytvořit .idx soubor.
Každým spuštěním se přidají běžící titulky pokud soubory .idx a .sub již existují. Takže byste je měli všechny odstranit dříve než začnete.
Příklad 12.3. Kopírování dvojích titulků z DVD během dvouprůchodového enkódování
rm titulky.idx titulky.sub mencoder dvd://1 -oac copy -ovc lavc -lavcopts vcodec=mpeg4:vpass=1 -vobsubout titulky -vobsuboutindex 0 -sid 2 mencoder dvd://1 -oac copy -ovc lavc -lavcopts vcodec=mpeg4:vpass=2 -vobsubout titulky -vobsuboutindex 1 -sid 5
DVD a SVCD (čili MPEG-1/2) soubory obsahují hodnotu poměru stran, popisující, jak by měl přehrávač škálovat video proud, takže lidé nebudou mít šišaté hlavy (př.: 480x480 + 4:3 = 640x480). Pokud ovšem enkódujeme do AVI (DivX) souborů, mějte na paměti, že AVI hlavičky neukládají tuto hodnotu. Přeškálování videa je odporné a časově náročné, takže musí být lepší způsob!
A zde jej máte
MPEG-4 má unikátní vlastnost: video proud může obsahovat svůj požadovaný poměr stran. Ano, přesně jako MPEG-1/2 (DVD, SVCD) a H.263 soubory. Naneštěstí, žádný video přehrávač nepodporuje tento atribut MPEG-4, s výjimkou MPlayeru.
Tato vlastnost může být použita pouze s kodekem mpeg4
z
libavcodec
u.
Mějte na paměti: ačkoli
MPlayer korektně přehraje vytvořený soubor, ostatní
přehrávače použijí špatný poměr stran.
Opravdu byste měli oříznout černé okraje nad a pod filmem.
Nastudujte si použití filtrů cropdetect
a
crop
v man stránce.
Použití
mencodervzorové-svcd.mpg
-ovc lavc -lavcopts vcodec=mpeg4:autoaspect -vf crop=714:548:0:14 -oac copy -ovýstup.avi
libavcodec
XviD
x264
kodekemVelmi častou otázkou je "Jak mohu vytvořit rip v nejvyšší možné kvalitě pro danou velikost?". Další otázkou je "Jak vytvořím DVD rip v nejvyšší možné kvalitě? Velikost souboru mě nezajímá, chci tu nejvyšší kvalitu."
Druhá otázka je poněkud špatně položená. Konec konců, pokud je vám lhostejná velikost souboru, proč prostě nezkopírujete celý MPEG-2 video proud z DVD? Jistěže vaše AVI bude mít kolem 5 GB, ale pokud chcete nejvyšší kvalitu a na velikosti nezáleží, je to jistě nejlepší volba.
Ve skutečnosti, důvodem převodu DVD do MPEG-4 je právě to, že vám na velikosti souboru záleží.
Je těžké nabídnout kuchařku jak vytvořit DVD rip ve velmi vysoké kvalitě. Je
nutné uvážit množství faktorů a měli byste rozumět těmto detailům, jinak
budete asi zklamáni výsledkem. Níže prozkoumáme některé z těchto věcí a
pak se podíváme na příklad. Předpokládáme, že použijete
libavcodec
pro enkódování videa,
ačkoli teorie je stejná i pro ostatní kodeky.
Pokud je toho na vás moc, asi byste měli použít některý z pěkných frontendů, které jsou zmíněny v sekci MEncoder na naší stránce odvozených projektů. Takto budete schopni dosahovat vysoce kvalitních ripů bez velkého přemýšlení, protože většina těchto nástrojů je navržena tak, aby dělala vhodná rozhodnutí za vás.
Předtím než i jen pomyslíte na enkódování filmu, budete muset učinit několik přípravných kroků.
Prvním a nejdůležitějším krokem před enkódováním by mělo být zjištění druhu obsahu se kterým máte co do činění. Pokud vaše zdrojové video pochází z DVD nebo veřejné/kabelové/satelitní TV, bude uložen v jednom ze dvou formátů: NTSC v Severní Americe a Japonsku, PAL v Euvropě, atd. Je ovšem důležité si uvědomit, že to je pouze formátování pro prezentaci v televizi a často neodpovídá originálnímu formátu filmu. Zkušenosti ukazují, že NTSC materiál je mnohem těžší enkódovat, jelikož musíme identifikovat více věcí ve zdrojovém videu. Abyste dosáhli uspokojivého výsledku, musíte znát původní formát. Nevezmete-li to správně v potaz, dostanete obraz plný nejrůznějších vad, včetně ošklivých kombinačních (proklad) artefaktů a zdvojených nebo dokonce zahozených snímků. Kromě toho, že budete mít nekvalitní obraz, artefakty rovněž snižují efektivitu kódování: Dosáhnete horší kvalitu na jednotku datového toku.
Zde máte seznam běžných typů zdrojového materiálu, kde na který nejspíš narazíte a jejich volby:
Standardní film: Vytvořený pro promítání v kině při 24fps.
PAL video: Zaznamenáno PAL video kamerou s rychlostí 50 půlsnímků za sekundu. Půlsnímek sestává jen z lichých nebo sudých řádků daného snímku. Televize je navržena pro jejich střídavé zobrazování jako laciná forma analogové komprese. Lidské oko to pravděpodobně vykompenzuje, ale jakmile porozumíte prokládání, naučíte se jej vidět i v TV a už si ji neužijete. Dva půlsnímky netvoří úplný snímek, protože jsou zaznamenány s časovou odchylkou 1/50 sekundy a proto se nekryjí, dokud je zde pohyb.
NTSC Video: Zaznamenáno NTSC video kamerou s rychlostí 60000/1001 půlsnímků za sekundu, nebo 60 půlsnímků za sekundu v době před barevnou televizí. Jinak obdobné PAL.
Animovaný film: Obvykle kreslený při 24 snímcích za sekundu, ale rovněž bývá v některé variantě prměnné snímkové rychlosti.
Počítačová grafika (CG): Může mít jakoukoli snímkovou rychlost, ale některé jsou častější než jiné; 24 a 30 snímků za sekundu jsou typické pro NTSC a 25 snímků za sekundu zase pro PAL.
Starý film: Různé nižší snímkové rychlosti.
Filmy sestávající ze snímků jsou nazývány progresivní, zatímco ty složené z nezávislých půlsnímků buď prokládané, nebo jen video – ačkoli druhý termín je zavádějící.
Abychom to ještě zkomplikovali, některé filmy mohou být směsí všeho výše uvedeného.
Nejdůležitějším rozdílem mezi všemi těmito formáty je to, že základem některých jsou snímky a jiných půlsnímky. Vždy, když je film připravován pro promítání v televizi (včetně DVD), je převeden na půlsnímky. Různé metody jak toho lze dosáhnout jsou souhrnně nazývány "pulldown" a nechvalně známé NTSC "3:2 telecine" je jednou z variant. Pokud nebyl základ vašeho filmu rovněž půlsnímkový (se stejnou půlsnímkovou rychlostí), máte film v jiném formátu, než byl původně.
Zde je několik běžných typů pulldown:
PAL 2:2 pulldown: Je nejhezčí z nich. Každý snímek je zobrazován po dobu dvou půlsnímků tak, že se oddělí liché a sudé řádky a zobrazují se střídavě. Pokud měl originál 24 snímků za sekundu, zrychlí se film o 4%.
PAL 2:2:2:2:2:2:2:2:2:2:2:3 pulldown: Každý 12 snímek je zobrazen po dobu tří půlsnímků, místo dvou. To odstraní nevýhodu 4% zrychlení, ale znesnadní obrácený proces. Obvykle je používán pouze u hudební produkce, jelikož zde by 4% zrychlení znatelně poškodilo hudební zážitek.
NTSC 3:2 telecine: Snímky jsou zobrazovány po dobu 2 nebo 3 půlsnímků, čímž je dosaženo 2.5 krát vyšší půlsnímkové rychlosti, než je originální snímková rychlost. Výsledek je dále velmi mírně spomalen ze 60 půlsnímků za sekundu na 60000/1001 půlsnímků za sekundu, aby se dosáhlo NTSC půlsnímkové rychlosti.
NTSC 2:2 pulldown: Používá se pro promítání 30fps materiálu na NTSC. Pěkné, stejně jako 2:2 PAL pulldown.
Existují rovněž metody pro konverzi mezi NTSC a PAL vieem, ale to již je nad rámec této příručky. Pokud se setkáte s takovým filmem a budete jej chtít enkódovat, bude pro vás nejlepší opatřit si jej v originálním formátu. Konverze mezi těmito formáty je vysoce destruktivní a nelze ji čistě zvrátit, takže výsledek velmi utrpí, pokud je vytvořen z konvertovaného materiálu.
Když je video ukládáno na DVD, po sobě jdoucí páry půlsnímků jsou seskupovány do snímků, dokonce i když nejsou určeny pro zobrazení ve stejném okamžiku. Standard MPEG-2 použitý na DVD a digitální televizi poskytuje možnost jak pro enkódování originálních progresivních snímků, tak pro uložení informací do hlavičky snímku o počtu půlsnímků, po jejichž dobu by měl být daný snímek zobrazován. Pokud je použita tato metoda, film bývá často označen jako "soft-telecined", jelikož proces pouze řídí DVD přehrávač pro aplikaci pulldown na film spíše než že mění samotný film. Tento případ je velmi upřednostňován, jalikož může být snadno zvrácen (ve skutečnosti ignorován) enkodérem a proto poskytuje maximální kvalitu. Mnoho DVD a televizních produkčních společností však nepoužívá vhodné enkódovací techniky, ale místo toho produkují filmy s "hard telecine", kdy jsou ve skutečnosti půlsnímky duplikovány ve výsledném MPEG-2.
Postupy pro tyto případy budou uvedeny později v této příručce. Prozatím si řekneme několik návodů pro identifikaci o jaký typ materiálu jde:
NTSC regiony:
Pokud MPlayer při přehrávání vypíše, že se snímková rychlost změnila na 24000/1001 a již se to nezmění, pak se nejspíš jedná o progresivní obsah, který byl "soft telecinován".
Pokud MPlayer ukazuje, že se snímková rychlost mění tam a zpět mezi 24000/1001 a 30000/1001 a někdy vidíte "combing", pak je zde několik možností. Segmenty 24000/1001 fps mají téměř jistě "soft telecinovaný" progresivní obsah, ale 30000/1001 fps části mohou mít buď hard-telecined 24000/1001 fps obsah, nobo se jedná o 60000/1001 půlsnímků za sekundu NTSC video. Použijte stejný postup jako v následujících dvou případech pro určení který z nich to je.
Pokud MPlayer neukáže změnu snímkové rychlosti a všechny snímky jsou zubaté, je váš film ve formátu NTSC video s 60000/1001 půlsnímky za sekundu.
Pokud MPlayer neukáže změnu snímkové rychlosti a dva snímky z pěti vypadají zubatě, má vaše video "hard telecinovaný" 24000/1001fps obsah.
PAL regiony:
Pokud není nikde vidět žádné zubatění, je váš film 2:2 pulldown.
Pokud vidíte jak se objevuje a mizí zubatění každou půlsekundu, pak je váš film 2:2:2:2:2:2:2:2:2:2:2:3 pulldown.
Pokud je zubatění vidět stále, je to PAL video s 50 půlsnímky za sekundu.
MPlayer umí spomalit přehrávání videa pomocí volby -speed. Zkuste použít -speed 0.2 pro velmi pomalé přehrávání a najděte vzor, pokud jej nevidíte při plné rychlosti.
Enkódování vašeho videa je možné provést v široké škále kvality. S moderními video enkodéry a trochou předkodekové komprese (zmenšení a odšumování) je možné dosáhnout velmi dobré kvality v 700 MB, pro 90-110 minut dlouhé širokoúhlé video. Jinak lze všechna videa, snad kromě těch nejdelších, enkódovat v téměř perfektní kvalitě do 1400 MB.
Jsou tři přístupy k enkódování videa: pevný datový tok (CBR), pevný kvantizer a víceprůchodový (ABR, neboli průměrovaný datový tok).
Komplexnost snímků ve filmu, a tím i počet bitů potřebných pro jejich komprimaci, se může velmi lišit od scény ke scéně. Moderní enkodéry se umí přizpůsobit těmto potřebám změnou datového toku. V jednoduchých režiměch, jako je CBR, však enkodéry neznají nároky na datový tok budoucích scén a tak nemohou překročit požadovaný střední datový tok na dlouhou dobu. Pokročilejší režimy, jako je víceprůchodové enkódování, umí vzít v potaz statistiky z předchozích režimů, což odstraní výše zmíněný problém.
Většina kodeků, které podporují ABR enkódování, podporují pouze dvouprůchodové
enkódování, zatímco ostatní jako x264
,
XviD
a libavcodec
podporují víceprůchodové
enkódování, které s každým průchodem trochu zlepší kvalitu, ačkoli toto
zlepšení již není viditelné, nebo měřitelné po asi čtvrtém průchodu.
V této sekci budeme považovat dvouprůchodové a víceprůchodové
enkódování za shodné.
V každém z těchto režimů video kodek (jako je
libavcodec
)
rozbije videosnímek na makrobloky 16x16 pixelů a potom na každý makroblok
aplikuje kvantizer. Čím je nižší kvantizer, tím je vyšší kvalita a datový tok.
Metoda, kterou enkodér filmu používá pro
určení jaký kvantizer použít pro daný makroblok, se liší a je vysoce
ovlivnitelná. (Toto je extrémní zjednodušení daného procesu, ale je vhodné
rozumět základnímu principu.)
Pokud nastavíte konstantní datový tok, bude videokodek enkódovat video tak,
že zahodí
detaily podle potřeby a jen tolik, aby se udržel pod zadaným datovým tokem.
Pokud je vám opravdu lhostejná velikost souboru, můžete také použít CBR a
nastavit datový tok na nekonečno. (V praxi to znamená nastavit hodnotu tak
vysoko, aby nijak neomezovala, jako 10000 Kbitů.) Bez reálného omezení
datového toku použije kodek
nejnižší možný kvantizer pro každý makroblok (ten je nastaven pomocí
vqmin pro libavcodec
,
kde je výchozí 2). Jakmile nastavíte dostatečně nižší
datový tok, takže je kodek
přinucen použít vyšší kvantizer, pak téměř jistě snížíte kvalitu svého videa.
Abyste se tomu vyhnuli, měli byste zvážit zmenšení videa podle postupu
popsaného později v této příručce.
Při konstantním kvantizeru kodek
používá kvantizer nastavený volbou vqscale (pro
libavcodec
) na každý makroblok.
Pokud chcete maximálně kvalitní rip, opět bez ohledu na datový tok, můžete
použít vqscale=2. To povede ke stejnému datovému toku a PSNR
(odstup signál – šum) jako CBR s vbitrate=infinity a
výchozím vqmin rovným 2.
Problém s konstantní kvantizací je ten, že používá zadaný kvantizer ať to daný makroblok potřebuje či nikoli. Je totiž možné použít vyšší kvantizer na makroblok bez obětování viditelné kvality. Proč tedy plýtvat bity s nemístně nízkým kvantizerem? Váše CPU má tolik cyklů, kolik máte času, ale na harddisku máte jen určitý počet bitů.
Při dvouprůchodovém enkódování se v prvním průchodu projde film jakoby měl být CBR, ale vlastnosti každého snímku se zaznamenají do logu. Tato data jsou pak použita při druhém průchodu pro inteligentní stanovení použitého kvantizeru. V rychlých scénách nebo scénách s malým počtem detailů budou častěji používány vyšší kvantizery a v pomalých nebo detailních scénách zase nižší kvantizery.
Pokud použijete vqscale=2, plýtváte bity. Pokud použijete vqscale=3, pak nedostanete nejkvalitnější možný rip. Dejme tomu, že ripujete DVD při vqscale=3 a výsledkem je 1800Kbit. Pokud provedete dvouprůchodové enkódování s vbitrate=1800, výsledné video bude mít vyšší kvalitu při stejném datovém toku.
Jelikož jsme vás nyní přesvědčili, že dvouprůchodový režim je správná volba, skutečnou otázkou je, jaký datový tok použít? Odpověď je, že není jediná odpověď. Ideálně byste měli zvolit takový datový tok, který zajistí nejlepší rovnováhu mezi kvalitou a velikostí souboru. Ten bude pokaždé jiný v závislosti na zdrojovém videu.
Pokud na velikosti souboru nezáleží, pak je dobrý startovní můstek pro rip s velmi vysokou kvalitou je kolem 2000 Kbitů plus-mínus 200 Kbitů. Pro rychlé akční nebo vysoce detailní zdrojové video, nebo máte-li velmi kritické oko, se budete rozhodovat mezi 2400 nebo 2600. U některých DVD nepoznáte rozdíl při 1400 Kbitech. Je vhodné experimentovat se scénami při různých datových tocích, abyste pro to dostali cit.
Pokud se snažíte o určitou velikost, budete muset nějak spočítat datový tok.
Ale ještě předtím musíte zjistit, kolik místa byste měli rezervovat pro
zvukové(ou) stopy(u), takže byste si
je měli ripnout jako první.
Můžete si pak spočítat datový tok pomocí následující rovnice:
datový_tok = (požadovaná_velikost_v_Mbajtech - velikost_zvuku_v_Mbajtech) *
1024 * 1024 / délka_v_sek * 8 / 1000
Například abyste nacpali dvouhodinový film na 702MB CD, se 60MB zvukovou
stopou, bude muset být datový tok videa:
(702 - 60) * 1024 * 1024 / (120*60) * 8 / 1000
= 740kbps (kilobitů za sekundu)
Ze samé podstaty komprese typu MPEG vyplývají určitá omezení, která byste měli ctít, pokud chcete maximální kvalitu. MPEG rozdělí video na čtverce 16x16 nazývané makrobloky, které se skládají ze čtyř bloků 8x8 jasové (luma) složky a dvou bloků 8x8 barevné (chroma) složky v polovičním rozlišení (jeden pro osu červená-cyan (modrozelená) a druhý pro osu modrá-žlutá). Dokonce i když šířka a výška vašeho videa nejsou násobky 16, použije enkodér dostatek 16x16 makrobloků, aby pokryl celou oblast obrazu a zabere místo navíc, které přijde vniveč. Takže chcete-li maximalizovat kvalitu při dané velikosti souboru, není dobrý nápad používat rozměry které nejsou násobky 16.
Většina DVD má také různě velké černé okraje videa. Ponechání těchto ploch může různým způsobem snížit kvalitu.
Komprese typu MPEG je rovněž velmi závislá na plošných frekvenčních transformacích, konkrétně Diskrétní Kosinové Transformaci (DCT), která se podobá Fourierově transformaci. Tento druh enkódování je efektivní na reprezentaci opakujících se vzorů a pozvolné přechody, ale má potíže s ostrými přechody. Chcete-li je enkódovat, musíte použít mnoho bitů, jinak se objeví artefakty známé jako kroužkování.
Frekvenční transformace (DCT) je provedena zvlášť pro každý makroblok (ve skutečnosti na každý blok), takže problém nastane pouze tehdy, je-li ostrý přechod uvnitř bloku. Pokud vaše černé okraje začínají přesně na hranicích násobků 16 pixelů, pak to není problém. Černé okraje jsou však na DVD jen málokdy pěkně umístěny, takže je v praxi budete muset vždy odstranit, abyste se vyhnuli tomuto problému.
Navíc k plošně frekvenčním transformacím používá komprese typu MPEG vektory pohybu k popisu změn od jednoho snímku ke druhému. Vektory pohybu přirozeně pracují méně efektivně s novým obsahem přicházejícím zpoza okrajů snímku, protože ten nebyl přítomen na předchozím snímku. Dokud se obraz rozšiřuje směrem k okrajům snímku, nemají s tím vektory pohybu žádný problém, ale jsou-li zde černé okraje, může problém nastat:
Komprese typu MPEG ukládá pro každý makroblok vektor, identifikující která část předchozího obrázku by měla být zkopírována onoho makrobloku jako základ pro predikci následujícího snímku. Pouze zbývající odlišnosti musí být enkódovány. Pokud makroblok přesahuje okraj obrázku a obsahuje část černého okraje, vektory pohybu z ostatních částí obrázku přepíší černý okraj. To znamená mnoho bitů spotřebovaných buď na znovuzačernění, nebo se (spíš) vektory pohybu nepoužijí vůbec a všechny změny v tomto makrobloku se budou kódovat přímo. Jinými slovy se velmi sníží efektivita enkódování.
Tento problém nastává opět jen v případě, že černé okraje nezačínají na lince jejíž pozice je násobkem 16.
Nakonec zde máme makroblok uvnitř obrázku do nějž se posunuje objekt z okraje obrázku. Kódování typu MPEG neumí říct "zkopíruj to co je na obrázku, ale ne černý okraj." Takže se zkopíruje i černý okraj a spotřebuje se spousta bitů na enkódování té části obrázku, která tu měla být.
Pokud se obrázek dostane úplně ven z enkódované oblasti, má MPEG speciální optimalizace pro opakované kopírování pixelů na okraj obrázku pokud přijde vektor pohybu zvenčí enkódované oblasti. Tato vlastnost bude k ničemu, pokud má film černé okraje. Na rozdíl od problémů 1 a 2 zde umístění okrajů na násobky 16 nepomůže.
Navzdory tomu, že okraje jsou úplně černé a nikdy se nemění, je zde vždy alespoň minimální datový tok spotřebovaný na větší množství makrobloků.
Ze všech těchto důvodů doporučujeme zcela odstranit černé okraje. Dále, pokud je na okraji obrázku oblast se šumem/zkreslením, jejím odstřižením se ještě zvýší efektivita enkódování. Videofilní puristé, kteří chtějí zůstat tak blízko originálu, jak je to jen možné, mohou protestovat proti tomuto ořezání, ale pokud nehodláte enkódovat s konstantním kvantizerem, kvalita kterou dostanete díky ořezání znatelně převýší množství ztracených informací na okrajích.
Připomeňme z předchozí části, že konečná velikost obrázku by měla mít jak šířku, tak výšku beze zbytku dělitelnou 16, čehož můžete dosáhnout pomocí ořezání, škálování, nebo kombinací obou.
Při ořezávání byste se měli držet několika zásad, abyste předešli poškození svého filmu. Normální YUV formát 4:2:0, ukládá barvonosnou (chroma) informaci podvzorkovanou, čili hustota vzorkování barvy je poloviční oproti jasové (černobílé) složce v obou směrech. Prohlédněte si tento diagram, kde L označuje vzorkovací body jasu a C barvy.
L | L | L | L | L | L | L | L |
C | C | C | C | ||||
L | L | L | L | L | L | L | L |
L | L | L | L | L | L | L | L |
C | C | C | C | ||||
L | L | L | L | L | L | L | L |
Jak vidíte, řádky i sloupce obrázku se přirozeně párují. Při ořezávání tedy musí být hodnoty odsazení i rozměrů sudá čísla. Pokud nejsou, nebude se barvonosná informace zprávně krýt s jasovou. Teoreticky lze stříhat s lichým odsazením, ale to vyžaduje převzorkování barvy, což je potenciálně ztrátový úkon a není podporován filtrem crop.
Dále, prokládané video je vzorkováno takto:
Horní půlsnímek | Spodní půlsnímek | ||||||||||||||
L | L | L | L | L | L | L | L | ||||||||
C | C | C | C | ||||||||||||
L | L | L | L | L | L | L | L | ||||||||
L | L | L | L | L | L | L | L | ||||||||
C | C | C | C | ||||||||||||
L | L | L | L | L | L | L | L | ||||||||
L | L | L | L | L | L | L | L | ||||||||
C | C | C | C | ||||||||||||
L | L | L | L | L | L | L | L | ||||||||
L | L | L | L | L | L | L | L | ||||||||
C | C | C | C | ||||||||||||
L | L | L | L | L | L | L | L |
Jak vidíte, tak se vzor opakuje každé 4 řádky, takže při ořezu prokládaného videa musí být odsazení v ose y a výška beze zbytku delitelné 4.
Nativní DVD rozlišení je 720x480 pro NTSC a 720x576 pro PAL, ale je zde ještě příznak poměru stran, který udává, zda se jedná o obrazovku (full-screen)(4:3), nebo širokoúhlý film (wide-screen)(16:9). Mnoho (jestli ne většina) širokoúhlých DVD není přesně 16:9, ale bude buď 1.85:1 anebo 2.35:1 (cinescope). To znamená, že zde budou ve videu černé okraje, které bude nutné odstřihnout.
MPlayer poskytuje filtr pro detekci potřebného ořezu, který stanoví ořezový obdélník (-vf cropdetect). Spusťte MPlayer s volbou -vf cropdetect a on vám vypíše nastavení filtru crop pro ořezání okrajů. Měli byste nechat běžet film tak dlouho, dokud není použita celá plocha obrázku, abyste dostali správné hodnoty crop.
Pak otestujte získané hodnoty z příkazového řádku MPlayeru vypisované cropdetectem a upravte obdélník podle potřeby. V tom vám pomůže filtr rectangle, který umožňuje interaktivně nastavit obdélník pro váš film. Nezapomeňte zachovat výše uvedená doporučení, abyste nepoškodili barevnou mapu.
Škálování je obvykle nevhodné. Škálování prokládaného videa je obtížné a pokud chcete zachovat prokládání, měli byste se mu úplně vyhnout. Pokud mebudete škálovat, ale budete chtít používat rozměry v násobcích 16, budete muset oříznout i část obrazu. Neponechávejte ani malé černé okraje, jelikož se velmi špatně kódují!
Protože MPEG-4 používá makrobloky 16x16, měli byste se ujistit, že oba rozměry videa jsou násobkem 16, jinak snížíte kvalitu, zvlášť při nízkých datových tocích. Můžete to zajistit zaokrouhlením šířky a výšky ořezového obdélníku dolů na nejbližší násobek 16. Jak jsme již řekli, měli byste při ořezávání zvýšit odsazení (offset) v ose y o polovinu rozdílu mezi starou a novou výškou, takže bude výsledné video bráno ze středu snímku. Z důvodu principu vzorkování DVD videa se ujistěte, že je odsazení sudé číslo. (Popravdě, přijměte jako pravidlo, nikdy nepoužívat liché hodnoty pro jakýkoli z parametrů při ořezávání a škálování videa.) Pokud nechcete zahodit těch několik pixelů navíc, můžete místo toho raději změnit velikost videa (škálovat). Na to se podíváme v příkladu níže. V praxi můžete nechat filtr cropdetect udělat všechnu práci zmíněnou výše, jelikož má volitelný parametr round (zaokrouhlení), jehož výchozí hodnota je 16.
Rovněž buďte opatrní na "napůl černé" pixely na okrajích. Vždy je rovněž odstřihněte, jinak zde budete plýtvat bity, které můžete použít jinde.
Poté co provedete vše, co jsme si doposud řekli, budete mít video, které asi
nebude právě 1.85:1 nebo 2.35:1, ale někde poblíž. Můžete spočítat nový poměr
stran ručně, ale MEncoder nabízí volbu pro
libavcodec
nazývanou autoaspect,
která to za vás udělá. Nezvětšujte video jen proto, abyste dosáhli čtvercových
pixelů, pokud je vám milé místo na disku. Škálování by mělo být provedeno při
přehrávání, kdy přehrávač použije poměr stran uložený v AVI pro zajištění
správného rozlišení.
Naneštěstí ne všechny přehrávače uplatňují tuto autoškálovací informaci,
takže můžete přece jen chtít škálovat.
Pokud nebudete enkódovat v režimu konstantního kvantizeru, musíte zvolit velikost datového toku. Koncepce datového toku je velmi jednoduchá. Je to (průměrný) počet bitů spotřebovaný na jednu sekundu filmu. Normálně se datový tok udává v kilobitech (1000 bitů) za sekundu. Velikost vašeho filmu je pak datový tok násobený délkou filmu, plus malá režie (viz například sekci kontejner AVI). Ostatní parametry jako je škálování, ořezání atd. nezmění velikost souboru, pokud zároveň nezměníte datový tok!
Datový tok se nemění proporcionálně k rozlišení. Jinými slovy, soubor 320x240 při 200 kbit/sek nebude mít stejnou kvalitu jako ten samý film při 640x480 a 800 kbitech/sek! Jsou pro to dva důvody:
Dojem: MPEG artefakty jsou patrné tím více, čím jsou více zvětšené! Artefakty se objevují ve velikosti bloků (8x8). Vaše oko neodhalí chyby ve 4800 malých blocích tak snadno jako ve 1200 velkých (předpokládáme, že oboje budete škálovat na celou obrazovku).
Teoretický: Když zmenšíte obrázek, ale stále použijete stejnou velikost bloků (8x8) pro frekvenční prostorovou transformaci, přesunete více dat do oblasti vyšších frekvencí. Zjednodušeně řečeno, každý pixel nyní obsahuje více detailů, než předtím. Dokonce i když připustíme, že jste zmenšili obraz obsahující 1/4 informací o daném prostoru, stále může obsahovat mnoho detailů v daném frekvenčním pásmu (předpokládáme, že vysoké frekvence byly v originálním 640x480 snímku ořezány).
Dřívější návody doporučovaly volit datový tok a rozlišení rozpočítáním bitů na pixely, ale to obvykle není správně díky ze zmíněných důvodů. Mnohem lepším se zdá odhad, že je datový tok úměrný čtverci rozlišení, takže 320x240 při 400 kbit/sek by mělo být srovnatelné s 640x480 při 800 kbit/sek. Tato úměra však nebyla ověřena teoreticky ani empiricky. Navíc, vezmeme-li v úvahu to, že se filmy velmi liší šumem, počtem detailů, množstvím pohybu atd, je beznadějné vytvořit obecná doporučení pro počet bitů na délku diagonály (analogie bitů na pixel, avšak používá plochu obrazu).
Tolik k obtížnosti volby datového toku a rozlišení.
Následující kroky vás provedou výpočty rozlišení výsledného filmu tak,
abyste příliš nesnížili kvalitu videa s přihlédnutím k několika typům
informací o zdrojovém videu.
Nejdřív byste si měli spočítat enkódovaný poměr stran:
PSo = (Šo x (PSa / PRdvd )) / Vo
kde:
Šo a Vo jsou šířka a výška ořezaného videa,
PSa je zobrazovaný poměr stran, jež je obvykle 4/3 nebo 16/9,
PRdvd je poměr pixelů v DVD, který je roven 1.25=(720/576) pro DVD v PALu a 1.5=(720/480) pro DVD v NTSC,
Pak si můžete spočítat rozlišení X a Y podle určitého faktoru kvality komprese
(CQ):
RozY = INT(SQRT( 1000*Datový_tok/25/PSo/CQ )/16) * 16
a
RozX = INT( RozY * PSo / 16) * 16
Dobře, ale co je ten CQ? CQ odpovídá počtu bitů na pixel a na snímek v zakódování. Jinými slovy, čím vyšší je CQ, tím nižší je šance uvidět enkódovací artefakty. Pokud ovšem máte cílový rozměr vašeho filmu (1 nebo 2 CD například), máte jen omezené množství bitů, které můžete spotřebovat; takže je nutné najít vhodný kompromis mezi komprimovatelností a kvalitou.
CQ závisí na datovém toku, efektivitě video kodeku a na rozlišení filmu.
Abyste zvýšili CQ, obvykle zmenšíte daný film, takže je datový tok spočítán
ve funkci cílové velikosti a délky filmu, které jsou konstantní.
S MPEG-4 ASP kodeky jako jsou XviD
a libavcodec
, vede CQ pod 0.18
obvykle k velmi čtverečkovanému obrázku, protože není dostatek bitů pro
zakódování informací každého makrobloku. (MPEG4, stejně jako mnoho
jiných kodeků seskupuje pixely do bloků při komprimaci obrázku; pokud není
dostatek bitů, jsou viditelné hranice těchto bloků.)
Proto je rozumné volit CQ v rozmezí 0.20 až 0.22 pro rip na 1 CD a
0.26 až 0.28 pro rip na 2 CD při standardních enkódovacích volbách.
Pokročilejší volby podobné těm zmiňovaným zde pro
libavcodec
a
XviD
by měly umožnit dosažení stejné kvality při CQ v rozsahu od
0.18 do 0.20 pro rip na 1 CD a 0.24 až 0.26 pro rip na 2 CD.
S MPEG-4 ASP kodeky jako je x264
,
můžete použít CQ v rozmezí 0.14 až 0.16 při standardních enkódovacích volbách
a měli byste být schopni jít až na nízký od 0.10 do 0.12 s pokročilými
x264
enkódovacími volbami.
Prosíme berte v potaz, že CQ je jen informační pomůcka závisející na enkódovaném obsahu. CQ okolo 0.18 může být dostatečně dobrý pro Bergmana, na rozdíl od filmu jako je Matrix, který obsahuje mnoho rychlých scén. Na druhou stranu je zbytečné zvyšovat CQ výš než 0.30, jelikož budete plýtvat bity za minimální zisk kvality. Také berte v potaz, jak jsme již řekli, že videa s nízkým rozlišením vyžadují vyšší CQ (v porovnání s např. DVD rozlišením), aby vypadala dobře.
Naučit se používat video filtry MEncoderu je základem pro produkci dobrých videí. Veškeré úpravy videa jsou prováděny pomocí filtrů -- ořezání, škálování, úprava barev, odstranění šumu, zaostření, odstranění prokladu, telecinování, inverzní telecine a deblokování, abychom jmenovali alespoň některé. Spolu s vyčerpávajícím počtem podporovaných vstupních formátů je nabídka dostupných filtrů v MEncoderu jednou z jeho hlavních výhod oproti podobným aplikacím.
Filtry jsou nahrávány v řadě za použití volby -vf :
-vf filtr1=volby,filtr2=volby,...
Většina filtrů přebírá několik číselných voleb oddělených dvojtečkou, ale syntaxe voleb se liší od filtru k filtru, takže si přečtěte manuál pro více informací o filtru který chcete použít.
Filtry zpracovávají video v pořadí, v jakém jsou načteny. Například následující řada:
-vf crop=688:464:12:4,scale=640:464
nejprve vyřízne z obrázku oblast 688x464 s levým horním rohem v bodě (12,4) a výsledek pak zmenší na 640x464.
Určité filtry potřebují být nahrány na začátku, nebo co nejblíž začátku řetězu filtrů, aby mohly využívat informace z video dekodéru, které budou ztraceny nebo znehodnoceny ostatními filtry. Nejdůležitější příklady jsou pp (postprocesing, pouze pokud provádí deblok nebo dering operace), spp (další postprocesor pro odstranění MPEG artefaktů), pullup (inverzní telecine) a softpulldown (pro konverzi soft telecine na hard telecine).
Všeobecně byste měli filtrovat co nejméně je to možné, abyste zůstali co nejblíže DVD originálu. Ořezání je často nutné (vysvětleno výše), ale vyhněte se škálování videa. Ačkoli je zmenšení občas preferováno před použitím vyšších kvantizérů. My se musíme vyvarovat obou těchto případů: pamatujte, že jsme se již na začátku rozhodli obětovat bity za kvalitu.
Rovněž neupravujte gamu, kontrast, jas, atd. Co vypadá dobře na vaší obrazovce, nemusí vypadat dobře na ostatních. Tyto korekce by měly být prováděny výhradně při přehrávání.
Jednu věc byste však udělat mohli, a to protáhnout video velmi lehkým odšumovacím filtrem, jako je -vf hqdn3d=2:1:2. Zde je opět důvodem využití bitů k lepšímu účelu: proč jimi plýtvat na enkódování šumu, když si můžete šum přidat až při přehrávání? Zvýšením parametrů pro hqdn3d dále zvýší komprimovatelnost, ale pokud zvýšíte hodnoty příliš, riskujete zhoršení viditelnosti obrazu. Výše zmíněné hodnoty (2:1:2) jsou dost konzervativní; měli byste si zaexperimentovat s vyššími hodnotami a zhodnotit výsledky sami.
Téměř veškeré filmy jsou natáčeny při 24 snímcích/s. Jelikož NTSC má snímkovou rychlost 30000/1001 snímků/s, je třeba provést úpravu těchto 24 snímků/s videí, aby měly správnou NTSC snímkovou rychlost. Tato úprava se jmenuje 3:2 pulldown a obecně je známa jako telecine (protože je pulldown často prováděn během přenosu filmu na video) a, jednoduše řečeno, pracuje tak, že se film zpomalí na 24000/1001 snímků/s a každý čtvrtý snímek se zopakuje.
Naopak žádné speciální úpravy se neprovádějí videu pro PAL DVD, která běží při 25 snímcích/s. (Technicky lze na PAL provést telecine, tzv. 2:2 pulldown, ale v praxi se nepoužívá.) Film s 24 snímky/s je jednoduše přehráván rychlostí 25 snímků/s. Výsledkem je, že video běží o něco rychleji, ale pokud nejste vetřelec, tak si rozdílu ani nevšimnete. Většina filmů má navíc výškově korigovaný zvuk, takže při přehrávání 25 snímků/s vše zní jak má i přesto, že zvuk (a proto i celé video) má o 4% kratší dobu přehrávání než NTSC DVD.
Jelikož video na PAL DVD nebylo upravováno, nemusíte si dělat starosti s jeho snímkovou rychlostí. Zdroj má 25 snímků/s, váš rip také. Pokud ovšem ripujete NTSC DVD film, musíte provést inverzní telecine.
Filmy točené rychlostí 24 snímků/s jsou na NTSC DVD uloženy buď jako 30000/1001 po telecine, nebo jako progresivní (neprokládaný) se snímkovou 24000/1001 snímků/s, na kterých by měl provést telecine DVD přehrávač za letu. Není to ale zákon: některé TV série jsou prokládané (např. Buffy Lovec upírů), zatímco jiné jsou porůznu neprokládané nebo prokládané (např. Anděl, nebo 24 hodin).
Doporučujeme, abyste si přečetli sekci o tom Jak si poradit s telecine a prokladem na NTSC DVD a naučili se jak využít různé možnosti.
Pokud ovšem většinou ripujete pouze filmy, nejspíš se setkáváte s neprokládaným nebo prokládaným videem 24 snímků/s. V tom případě můžete použít pullup filtr -vf pullup,softskip.
Pokud je film, který chcete enkódovat, prokládaný (NTSC video nebo PAL video), budete si muset vybrat, zda jej chcete "odproložit" nebo ne. Zatímco odstranění prokladu učiní váš film použitelným na progresivně vykreslovaných zobrazovačích jako jsou počítačové monitory a projektory. Cenou za to je, snížení rychlosti z 50 nebo 60000/1001 půlsnímků za sekundu na 25 nebo 30000/1001 snímků za sekundu a zhruba polovina informací bude z vašeho filmu ztracena ve scénách s významným množstvím pohybu.
Proto pokud enkódujete ve vysoké kvalitě pro archivační účely, doporučujeme ponechat film prokládaný. Vždy můžete provést odstranění prokladu při přehrávání pokud zobrazujete na progresivním zařízení a přehrávače v budoucnosti budou schopny odstraňovat proklad v plné půlsnímkové rychlosti, čili odvozovat 50 nebo 60000/1001 úplných snímků za sekundu z prokládaného videa.
Když pracujete s prokládaným videem, musíte zvláště dbát na:
Výška a svislé odsazení pro ořezání musí být násobkem 4.
Jakékoli svislé škálování musí být provedeno v prokládaném režimu.
Postprocesní a odšumovací filtry nemusí pracovat podle očekávání, dokud nezařídíte, aby zpracovávaly najednou pouze jeden půlsnímek a mohou vám poškodit video při nesprávném použití.
S vědomím těchto souvislostí vám předkládáme první příklad:
mencoder capture.avi
-mc 0 -oac lavc -ovc lavc -lavcopts \
vcodec=mpeg2video:vbitrate=6000:ilme:ildct:acodec=mp2:abitrate=224
Povšimněte si voleb ilme a ildct.
MEncoderovy audio/video synchronizační
algoritmy byly navrženy se záměrem obnovy souborů s vadnou synchronizací.
V některých případech však můžou působit zbytečné zahazování a duplikaci snímků
a možná mírnou A/V desynchronizaci při použití s bezvadným vstupem
(přirozeně tyto A/V synchronizační omezení projeví pouze pokud kopírujete
zvukovou stopu při překódovávání videa, což je velmi doporučováno).
Můžete však přepnout do základní A/V synchronizace s volbou
-mc 0, nebo ji přidejte do svého konfiguračního souboru
~/.mplayer/mencoder
config file, aspoň pokud pracujete
pouze s kvalitními zdroji (DVD, zachytávaná TV, vysoce kvalitní MPEG-4 ripy,
atd) ale nikoli s vadnými ASF/RM/MOV soubory.
Chcete-li si dále pohlídat podivné zahazování snímků a duplikaci, můžete použít -mc 0 spolu s -noskip. To zamezí veškeré A/V synchronizaci a snímky se skopírují jedna k jedné, takže to nelze použít ve spojení s filtry, které v nestřženém okamžiku přidají nebo zahodí snímky, nebo pokud zdrojové video má proměnnou snímkovou rychlost! V tom případě není použití -noskip obecně doporučováno.
O takzvaném "tříprůchodovém" enkódování zvuku podporované MEncoderem bylo hlášeno, že způsobuje A/V desynchronizaci. To nastává tehdy, pokud je použito v kombinaci s některými filtry, takže není v tuto chvíli doporučováno používat tříprůchodové enkódování zvuku. Tato vlastnost je zachována pouze z důvodu kompatibility a pro expertní uživatele, kteří vědí, kdy je bezpečné ji použít a kdy ne. Pokud jste o tomto režimu nikdy předtím neslyšeli, zapoměňte, že jsme se o něm vůbec zmínili!
Existují rovněž hlášení o A/V desynchronizaci při enkódování ze stdin MEncoderem. Nedělejte to! Vždy použijte jako zdroj soubor nebo CD/DVD/atd zařízení.
Výběr vhodného video kodeku k použití závisí na několika faktorech. Některé z nich jsou čistě věcí osobního vkusu, některé závisí na technických omezeních.
Účinost komprimace:
Jednoduše můžeme říct, že novější generace kodeků jsou vytvořeny
tak, aby dosahovaly vyšší kvality obrazu než ty předchozí.
Proto neuděláte chybu,
[1]
když zvolíte MPEG-4 AVC kodeky, jako
x264
místo MPEG-4 ASP kodeků
jako jsou libavcodec
MPEG-4, nebo
XviD
.
(Pro lepší představu o fundamentálních rozdílech mezi
MPEG-4 ASP a MPEG-4 AVC si můžete přečíst článek
"15 důvodů proč mě štve MPEG4"
z blogu Michaela Niedermayera.)
Podobně dosáhnete lepší kvality použitím MPEG-4 ASP místo
MPEG-2 kodeků.
Novější kodeky, které jsou v rozsáhlém vývoji, mohou obsahovat chyby, kterých si dosud nikdo nevšiml a které mohou zničit výsledek. To je daň za použití nejnovější technologie.
Navíc, v začátku používání nového kodeku se budete muset strávit nějaký čas seznámením se s jeho volbami, abyste se dověděli co kde nastavit pro dosažení požadované kvality obrazu.
Hardwarová kompatibilita: Obvykle trvá dlouhou dobu, než začnou stolní video přehrávače podporovat nejnovější videokodeky. Výsledkem toho je, že většina z nich podporuje pouze kodeky MPEG-2 a MPEG-4 ASP (Pozor: obvykle nejsou podporovány všechny vlastnosti (features) MPEG-4 ASP). Nahlédněte prosím do technických specifikací vašeho přehrávače (pokud jsou), nebo si vygooglete více informací.
Nejlepší kvalita na enkódovací čas:
Kodeky, které již jsou zde nějakou dobu (jako
libavcodec
MPEG-4 a
XviD
), jsou obvykle vysoce
optimalizovány všemi druhy chytrých algoritmů a SIMD assembly kódem.
Proto mají snahu dosahovat nejlepší poměr kvality na enkódovací čas.
Mohou však mít některé velmi pokročilé volby, které, pokud jsou zapnuty,
velmi spomalí enkódování při mizivém zisku.
Pokud vám jde o rychlost, měli byste se držet výchozího nastavení video kodeku (což neznamená, že byste neměli experimentovat s některými volbami zmíněnými v ostatních částech této příručky).
Rovněž můžete zvážit použití kodeku, který umí vícevláknové zpracování.
libavcodec
MPEG-4 to umožňuje.
Získáte tím malý nárůst rychlosti za cenu nižší kvality obrazu.
XviD
má k dispozici některé
experimentální záplaty pro zrychlení rychlosti enkódování, obvykle
o 40–60%, s nízkým zhoršením obrazu.
x264
rovněž umožňuje vícevláknové
enkódování, které v současnosti zrychluje enkódování asi o 15–30%
ale sníží PSNR o 0.05dB.
Osobní vkus:
Zde jsme v rovině téměř iracionální: Ze stejného důvodu, pro který někteří
setrvávali léta u DivX 3 i když novější kodeky již dělaly zázraky,
preferují někteří lidé XviD
nebo libavcodec
MPEG-4 před
x264
.
Posuďte to sami a ne vždy poslouchejte to, co vám někteří lidé budou říkat, že máte dělat nebo myslet: Nejlepší kodek je ten, který nejlépe ovládáte a který se pro vás vypadá nejlépe na vaší obrazovce [2]!
Seznam podporovaných kodeků najdete v sekci výběr kodeků a nosných formátů.
Zvuk je mnohem jednodušší problém k řešení: pokud prahnete po kvalitě, prostě jej nechte jak je. Dokonce i AC3 5.1 datové proudy mají nanejvýš 448Kbitů/s a stojí za každý bit. Možná jste v pokušení převést zvuk do Ogg Vorbis při vysoké kvalitě, ale jen proto, že dnes nemáte A/V receiver pro hardwarové dekódování AC3 neznamená, že jej nebudete mít zítra. Připravte své DVD ripy na budoucnost zachováním AC3 datových proudů. Datový proud AC3 můžete zachovat buď jeho zkopírováním přímo do video proudu během enkódování. Také můžete extrahovat AC3 proud, abyste jej pak namixovali do nosičů jako je NUT nebo Matroska.
mplayerzdrojový_soubor.vob
-aid 129 -dumpaudio -dumpfilezvuk.ac3
vytáhne do souboru zvuk.ac3
zvukovou stopu
číslo 129 ze souboru zdrojový_soubor.vob
(NB: DVD
VOB soubory obvykle používají odlišné číslování audia,
což znamená, že VOB zvuková stopa 120 je druhou zvukovou stopou v souboru).
Někdy ovšem opravdu nemáte jinou možnost než dále zkomprimovat zvuk, aby vám zbylo více bitů na video. Většina lidí volí komprimaci buď pomocí MP3 nebo Vorbis audio kodeků. Zatímco ten druhý je efektivnější z prostorového hlediska, MP3 je lépe podporován hardwarovými přehrávači, ačkoli časy se mění.
Nepoužívejte -nosound, enkódujete-li soubor se zvukem, dokonce i v tom případě, že budete enkódovat a muxovat zvuk samostatně později. Ačkoli to může v ideálním případě fungovat, použití -nosound spíše skryje určité problémy v nastaveních enkódování na příkazovém řádku. Jinými slovy vám přítomnost zvukové stopy zajistí, pokud neuvidíte hlášky typu „Příliš mnoho audio paketů ve vyrovnávací paměti“, že budete schopni dosáhnout správné synchronizace.
Musíte nechat MEncoder zpracovat zvuk. Můžete například skopírovat originální zvukovou stopu během enkódování pomocí -oac copy, nebo jej převést na "tenký" 4 kHz mono WAV PCM pomocí -oac pcm -channels 1 -srate 4000. Jinak v některých případech vytvoříte video soubor, který nebude synchronní se zvukem. Tyto případy nastávají tehdy, když počet videosnímků ve zdroji neodpovídá celkové délce zvukových vzorků, nebo pokud je zvuk přerušovaný či překrývaný díky chybějícím či nadbývajícím audio vzorkům. Správným způsobem jak toto řešit, je vložení ticha nebo odstřižení zvuku na těchto místech. MPlayer to však neumí, takže pokud demuxujete AC3 zvuk a enkódujete jej zvláštní aplikací (nebo jej dumpnete do PCM MPlayerem), zůstanou zmíněné vady jak jsou a jediný způsob jak je opravit je zahodit/namnožit video snímky v těchto místech. Dokud MEncoder sleduje zvuk při enkódování videa, může provádět toto zahazování/duplikování (což je obvykle OK, jelikož nastává při černé obrazovce/změně scény, ale pokud MEncoder nevidí zvuk, zpracuje snímky jak jsou a ty pak nepasují na konečnou zvukovou stopu když například spojíte svou video a zvukovou stopu do Matroska souboru.
Nejdříve ze všeho budete muset převést DVD zvuk do WAV souboru, který pak použije zvukový kodek jako vstup. Například:
mplayerzdrojový_soubor.vob
-ao pcm:file=výsledný_zvuk.wav
-vc dummy -aid 1 -vo null
vylije druhou zvukovou stopu ze souboru
zdrojový_soubor.vob
do souboru
výsledný_zvuk.wav
.
Měli byste normalizovat zvuk před enkódováním, protože DVD zvukové stopy jsou
obvykle nahrávány při nízkých hlasitostech.
Můžete například použít nástroj normalize, který je
k dispozici ve většině distribucí.
Pokud používáte Windows, stejnou práci udělá nástroj jako
BeSweet.
Komprimovat budete buď ve Vorbisu nebo MP3.
Například:
oggenc -q1 cílový_zvuk.wav
provede enkódování cílového_zvuku.wav
s kvalitou 1,
která přibližně odpovídá 80Kb/s a je to minimální kvalita na kterou byste měli
enkódovat, pokud vám záleží na kvalitě.
Poznamenejme, že MEncoder v současnosti neumí
muxovat Vorbis zvukové stopy do výstupního souboru, protože podporuje pouze
AVI a MPEG kontejnery jako výstup. Pro oba platí, že některé přehrávače mohou
mít problémy s udržením audio/video synchronizace, pokud je přítomen VBR zvuk
jako je Vorbis.
Nemějte obavy, v tomto dokumentu vám ukážeme, jak to lze udělat pomocí
programů třetích stran.
Nyní, když máte své video enkódované, budete jej nejspíš chtít muxovat s jedním nebo více zvukovými stopami do nosného filmového formátu, jako je AVI, MPEG, Matroska nebo NUT. MEncoder je zatím schopen nativně zapracovat zvuk a video pouze do nosných formátů MPEG a AVI. Například:
mencoder -oac copy -ovc copy -ovýstupní_film.avi
-audiofilevstupní_audio.mp2
vstupní_video.avi
To by mělo sloučit video soubor vstupní_video.avi
a zvukový soubor vstupní_audio.mp2
do AVI souboru výstupní_film.avi
.
Tento příkaz pracuje s MPEG-1 layer I, II a III (známým jako MP3) zvukem,
WAV a také několika dalšími formáty zvuku.
MEncoder obsahuje experimentální podporu pro
libavformat
, což je knihovna
z projektu FFmpeg, která podporuje muxování a demuxování celé řady nosných
formátů.
Například:
mencoder -oac copy -ovc copy -ovýstupní_film.asf
-audiofilevstupní_audio.mp2
vstupní_video.avi
-of lavf -lavfopts format=asf
To provede stejnou činnost jako předchozí příklad, avšak výstupním formátem
bude ASF.
Prosím berte na vědomí, že tato podpora je velmi experimentální (ale de ode
dne lepší) a bude funkční pouze pokud jste zkompilovali
MPlayer s podporou pro
libavformat
(což znamená, že
předkompilovaná binární verze nebude většinou fungovat).
Můžete se dostat do vážných problémů s A/V sychronizací, pokud se snažíte muxovat video a některé zvukové stopy, kdy bez ohledu na nastavení zpoždění zvuku nedosáhnete správné synchronizace. To může nastat, pokud použijete některé video filtry, které zahodí nebo zdvojí některé snímky, jako jsou filtry pro inverzi telecine. Velmi doporučujeme přidat videofiltr harddup na samý konec řetězu videofiltrů pro potlačení tohoto problému.
Bez harddup, pokud chce MEncoder duplikovat snímek, závisí na muxeru, aby vložil značku do nosiče, takže bude poslední snímek zobrazen znovu, aby se dosáhlo synchronizace, přičemž se nezapíše žádný snímek. S harddup, MEncoder pustí poslední zobrazený snímek znovu do řetězu filtrů. To znamená, že enkodér obdrží stejný snímek dvakrát a comprimuje ho. To povede k o něco většímu souboru, ale nezpůsobí problémy při demuxování nebo remuxování do jiného nosného formátu.
Rovněž nemáte jinou možnost než použít harddup s těmi
nosnými formáty, které nejsou těsně spjaty s
MEncoderem, jako jsou ty, které jsou podporovány
přes libavformat
, které nemusí
podporovat duplikaci na úrovni nosného formátu.
Ačkoli je to po MPEG-1 nejpodporovanější nosný formát, má AVI i jisté zásadní nedostatky. Snad nejviditelnější je režie. Na každý chunk AVI souboru je 24 bajtů ztraceno na hlavičky a index. To se projeví asi 5 MP na hodinu, neboli 1-2.5% prodloužení 700 MB filmu. Nevypadá to jako mnoho, ale může to znamenat rozdíl mezi možností použít video při 700 kbitech/s nebo 714 kbitech/s a tady se každý bit projeví na kvalitě.
Navíc k této neefektivitě má AVI také následující hlavní omezení:
Může být uchováván pouze obsah s konstantní snímkovou rychlostí. To je zvláště omezující, když má původní materiál, který chcete enkódovat, smíšený obsah. Například směs NTSC videa a filmového materiálu. Jistěže jsou zde cestičky, které umožní uložit obsah se smíšenou snímkovou rychlostí v AVI, ale ty zvyšují (již tak velkou) režii pětinásobně nebo víc, proto nejsou praktické.
Zvuk v AVI musí mít buď konstantní datový tok (CBR) nebo konstantní velikost rámce (čili všechny rámce se dekódují na stejný počet vzorků). Naneštěstí ten nejefektivnější kodek, Vorbis, nesplňuje ani jeden z těchto požadavků. Pokud tedy plánujete uložit svůj film do AVI, budete muset použít méně efektivní kodek, jako MP3 nebo AC3.
Z výše uvedených důvodů MEncoder zatím nepodporuje proměnnou snímkovou rychlost ani enkódování do Vorbisu. Nemusíte to však považovat za omezení, jestliže je MEncoder jediným nástrojem pro vaše enkódování. Nakonec je možné použít MEncoder pouze pro enkódování videa a pak použít externí nástroje pro enkódování zvuku a namuxování do jiného nosného formátu.
Matroska je svobodný a otevřený standard nosného formátu, zaměřený na nabídku mnoha pokročilých vlastností, které starší nosné formáty, jako AVI, nemohou poskytnout. Například Matroska podporuje zvuk s proměnným datovým tokem (VBR), proměnné snímkové rychlosti (VFR), kapitoly, přílohy souborů, kód pro detekci chyb (EDC) a moderní A/V kodeky jako "Advanced Audio Coding" (AAC), "Vorbis" nebo "MPEG-4 AVC" (H.264), z nichž žádný nelze použít v AVI.
Nástroje pro vytváření Matroska souborů jsou souhrnně nazvány mkvtoolnix a jsou dostupné pro většinu Unixových platforem a stejně tak Windows. Protože je Matroska otevřený standard, můžete najít jiné nástroje, které vám lépe padnou, ale protože mkvtoolnix je nejrozšířenější a je podporován přímo Matroska týmem, pokryjeme jen jejich použití.
Asi nejsnazší způsob, jak začít s Matroskou je použít MMG, grafickou nadstavbu dodávanou s mkvtoolnix a řídit se návodem k mkvmerge GUI (mmg)
Můžete rovněž muxovat zvukové a video soubory z příkazového řádku:
mkvmerge -ovýstup.mkv
vstupní_video.avi
vstupní_audio1.mp3
vstupní_audio2.ac3
To spojí video soubor vstupní_video.avi
a dva zvukové soubory vstupní_audio1.mp3
a vstupní_audio2.ac3
do Matroska souboru
výstup.mkv
.
Matroska, jak jsme již řekli, umí mnohem víc než to, jako více zvukových stop
(včetně doladění audio/video synchronizace), kapitoly, titulky, stříhání,
atd...
Detaily naleznete v dokumentaci k těmto aplikacím.
Co je to telecine? Pokud moc nerozumíte tomu, co je napsáno v tomto dokumentu, doporučujeme navštívit tuto stránku: http://www.divx.com/support/guides/guide.php?gid=10 Na této adrese je srozumitelný a rozumně vyčerpávající popis co je to telecine.
Poznámka k číslům. Mnoho dokumentů, včetně výše odkazované příručky, udává hodnotu půlsnímků za sekundu NTSC videa jako 59.94 a odpovídající snímky za sekundu jako 29.97 (pro telecinované a prokládané video) a 23.976 (pro neprokládané). Pro jednoduchost některé dokumenty zaokrouhlují tyto hodnoty na 60, 30 a 24.
Přesně řečeno jsou všechny tyto čísla přibližná. Černobílé NTSC video mělo přesně 60 půlsnímků za sekundu, ale později byla zvolena hodnota 60000/1001, aby bylo možné přidat barevná data a zůstat kompatibilní se starými černobílými televizemi. Digitální NTSC (jak je na DVD) má rovněž rychlost 60000/1001 půlsnímků za sekundu. Z toho vyplývá, že prokládané a telecinované video má 30000/1001 snímků za sekundu; neprokládané video má 24000/1001 snímků za sekundu.
Starší verze dokumentace MEncoderu a mnoho zpráv v archivu konference hovoří o 59.94, 29.97 a 23.976. Všechna dokumentace MEncoderu byla aktualizována a používá zlomkových hodnot. Vy byste je měli používat také.
-ofps 23.976 je nesprávně. Místo toho byste měli použít -ofps 24000/1001.
Jak je používáno telecine. Veškeré video určené k zobrazení na NTSC televizi musí mít 60000/1001 půlsnímků za sekundu. Filmy vyráběné pro televizi jsou často natáčeny přímo ve 60000/1001 půlsnímcích za sekundu, ale většina filmů do kin je natáčena při 24 nebo 24000/1001 snímcích za sekundu. Když je film přepisován na DVD, je video upraveno pro televizi v procesu zvaném telecine.
Na DVD není video ve skutečnosti nikdy uloženo v 60000/1001 půlsnímcích za sekundu. Video jež bylo původně 60000/1001, bude mít každý pár půlsnímků zkombinován do podoby snímku s rychlostí 30000/1001 snímků za sekundu. Hardwarové DVD přehrávače pak čtou příznak, zabudovaný ve video proudu, který udává jestli první půlsnímek tvoří liché nebo sudé řádky.
Obsah ve 24000/1001 snímcích za sekundu obvykle zůstává tak jak byl v době přepisu na DVD a DVD přehrávač musí provést telecine za letu. Někdy je však video telecinováno před uložením na DVD; dokonce i když mělo původně 24000/1001 snímků za sekundu, bude mít 60000/1001 půlsnímků za sekundu. Pokud je uložen na DVD, páry půlsnímků jsou zkombinovány do formy 30000/1001 snímků za sekundu.
Když se podíváme na jednotlivé snímky vzniklé z videa o 60000/10001 půlsnímcích za sekundu, telecinovaného nebo ne, je zřetelně vidět toto prokládání jakmile je zde nějaký pohyb, jelikož jeden půlsnímek (řekněme liché řádky) reprezentuje časový okamžik o 1/(60000/1001) sekundy pozdější než ten druhý. Přehrávání prokládaného videa na počítači vypadá škaredě jak proto, že monitor má vyšší rozlišení, ale i protože video je zobrazováno snímek po snímku místo půlsnímek po půlsnímku.
Poznámky:
Tento odstavec platí pouze pro NTSC DVD, nikoli PAL.
Řádky s příklady spuštění MEncoderu v dokumentu
nejsou určeny pro opravdové použití.
Obsahují pouze nutné minimum vyžadované pro enkódování příslušné ke kategorii
videa. Jak dělat dobré DVD ripy nebo doladit
libavcodec
pro maximální kvalitu
není v záběru tohoto dokumentu.
Poznámky pod čarou příslušné pro tuto příručku jsou linkovány takto: [1]
Progresivní video je původně natočeno při 24000/1001 snímcích za sekundu a uloženo na DVD beze změn.
Když přehrajete progresivní DVD v MPlayeru, MPlayer vypíše následující řádek jakmile začne přehrávat:
demux_mpg: 24000/1001 fps progressive NTSC content detected, switching framerate.
Od tohoto okamžiku by demux_mpg neměl nikdy říct že našel "30000/1001 fps NTSC obsah."
Když sledujete progresivní video, neměli byste nikdy vidět žádný proklad. Dejte si ale pozor, jelikož je občas trošku telecine namixováno tam, kde byste to vůbec nečekali. Setkal jsem se s TV show na DVD, které měly sekundu telecine při každé změně scény nebo na zcela náhodných místech. Jednou jsem se díval na DVD, které bylo do půlky progresivní a od půlky telecinováno. Pokud chcete být opravdu důkladní, můžete oskenovat celý film:
mplayer dvd://1 -nosound -vo null -benchmark
Použití volby -benchmark nechá MPlayer přehrát film tak rychle, jak je to jen možné; stejně to ale, v závislosti na vašem stroji, chvíli potrvá. Vždy, když demux_mpg ohlásí změnu snímkové rychlosti, řádek těsně nad hlášením ukáže čas ve kterém ke změně došlo.
Občas je progresivní video na DVD označeno jako "soft-telecine" protože je zamýšleno, aby telecine provedl DVD přehrávač.
Telecinované video bylo původně natočeno při 24000/1001, ale bylo telecinováno před zápisem na DVD.
MPlayer (nikdy) nehlásí žádnou změnu snímkové rychlosti, když přehrává telecinované video.
Při sledování telecinovaného videa uvidíte prokladové artefakty, které jako by "blikaly": opakovaně mizí a objevují se. Blíže se na to můžete podívat:
mplayer dvd://1
Převiňte na část s pohybem.
Použijte klávesu . pro krokování po jednom snímku.
Sledujte vzor prokládaně vypadajících a progresivně vypadajících snímků. Pokud je vzor, který sledujete PPPII,PPPII,PPPII,..., pak je video telecinováno. Pokud vidíte jiný vzor, pak mohlo být video telecinováno použitím nějaké nestandardní metody; MEncoder neumí bezztrátově převést nestandardní telecine do progresivního. Pokud nevidíte žádný vzor, pak je video nejspíš prokládané.
Někdy je telecinované video na DVD označeno jako "hard-telecine". Jelikož hard-telecine již je ve 60000/1001 půlsnímcích za sekundu, DVD přehrávač přehraje video bez jakýchkoli manipulací.
Dalším způsobem jak zjistíte, že je váš zdroj telecinován, je přehrát
jej s volbami -vf pullup a -v a
uvidíte, jak pullup nachází vzor.
Pokud je zdroj telecinován, mělibyste vidět na konzoli vzor 3:2 s opakujícím
se 0+.1.+2
a 0++1
.
Tato technika má tu výhodu, že nemusíte sledovat zdroj, abyste jej
identifikovali, což se může hodit, pokud chcete automatizovat enkódovací
proceduru, nebo ji provést vzdáleně přes pomalou linku.
Prokládané video bylo od samého začátku filmováno při 60000/1001 půlsnímcích za sekundu a uloženo na DVD ve 30000/1001 snímcích za sekundu. Efekt prokládání (často označovaný jako "roztřepení") je výsledkem skládání půlsnímků do snímků. Vzdálenost mezi půlsnímky má být 1/(60000/1001) sekundy a proto když jsou zobrazeny současně, je rozdíl jasně patrný.
Stejně jako u telecinovaného videa by MPlayer neměl hlásit jakékoli změny snímkové rychlosti při přehrávání prokládaného obsahu.
Když si prohlédnete video blíže pomocí krokování snímků pomocí klávesy ., uvidíte, že každý jednotlivý snímek je prokládaný.
Veškerý obsah "smíšeného progresivního a telecinovaného" videa měl původně 24000/1001 snímků za sekundu, ale některé části prošly telecine.
Když MPlayer přehrává tuto kategorii, bude (často i opakovaně) přepínat mezi "30000/1001 snímky/s NTSC" a "24000/1001 snímky/s progresivním NTSC". Sledujte spodek MPlayerova výstupu, abyste zachytili tyto zprávy.
Měli byste prověřit části se "30000/1001 snímky/s NTSC", abyste měli jistotu, že jsou skutečně telecinovány a ne jen prokládané.
Jak jsem se zmínil na začátku, příklady příkazových řádků MEncoderu níže nejsou určeny pro praktické použití; pouze demonstrují, minimum voleb nutných k tomu, abyste správně enkódovali každou kategorii.
Progresivní video nevyžaduje žádné speciální filtrování pro enkódování. Jediná volba, která by určitě neměla chybět je -ofps 24000/1001. Jinak se MEncoder pokusí enkódovat při 30000/1001 snímcích/s a bude opakovat snímky.
mencoder dvd://1 -oac copy -ovc lavc -ofps 24000/1001
Často se stává, že video, které vypadá progresivně, má v sobě zamíchány kratičké telecinované části. Pokud si nejste jisti, je nejbezpečnější považovat video za smíšené progresivní a telecinované. Ztráta výkonu je jen malá [3].
Telecine lze obrátit a dostat tak původní 24000/1001 obsah, za použití metody zvané inverzní telecine. MPlayer má několik filtrů právě pro tuto činnost; nejlepší z těchto filtrů, pullup, je popsán v části smíšené progresivní a telecinované.
V praxi není většinou možné dostat kompletní progresivní video z prokládaného obsahu. Jediný způsob jak to udělat bez ztráty poloviny svislého rozlišení je zdvojením snímkové rychlosti a zkusit "odhadnout" co mám provést s odpovídajícími linkami každého z půlsnímků (má to ovšem i nevýhody – viz metoda 3).
Enkódujte video v prokládané formě. Obvykle prokládání způsobí těžkou újmu
schopnosti enkodéru dobře komprimovat, ale
libavcodec
má dvě volby určené právě
pro lepší ukládání prokládaného videa: ildct a
ilme. Rovněž velmi doporučujeme použití volby
mbd=2 [2]
protože bude enkódovat makrobloky jako neprokládané tam, kde není žádný pohyb.
Volba -ofps zde není nutná.
mencoder dvd://1 -oac copy -ovc lavc -lavcopts ildct:ilme:mbd=2
Použijte filtr odstraňující proklad před enkódováním. Je jich zde několik, můžete si vybrat. Každý z nich má svá pro i proti. Prohlédněte si výstup mplayer -pphelp abyste zjistili, které jsou k dispozici (grep pro "deint") a vyhledejte e-mailové konference MPlayeru, kde naleznete mnoho diskusí o různých filtrech. Snímková rychlost se ani zde nemění, takže žádné -ofps. Odstranění proklady by rovněž mělo být provedeno po ořezání [1], ale před škálováním.
mencoder dvd://1 -oac copy -vf pp=lb -ovc lavc
Naneštěstí je tato volba vadná v MEncoderu; měla by dobře pracovat v MEncoder G2, ale ten tu zatím není. Stejně je určením -vf tfields vytvoření kompletního snímku z každého půlsnímku, což zvýší snímkovou rychlost na 60000/1001. Výhoda tohoto přístupu je v tom, že nepřijdete o žádná data; Protože však každý snímek pochází jen z jediného půlsnímku, musí být chybějící linky nějak dopočítány. Neexistuje mnoho dobrých metod, generujících chybějící data, takže výsledek bude trochu podobný tomu, když se použije některý filtr odstraňující proklad. Generováním chybějících linek vznikají další problémy tím, že se zdvojnásobí množství dat. Takže jsou potřeba vyšší datové toky pro enkódování, aby byla zachována kvalita a spotřebuje se více výkonu CPU jak pro enkódování, tak pro dekódování. tfields má několik různých voleb pro volbu způsobu generování chybějících linek. Pokud použijete tuto možnost, prostudujte si manuál a zvolte si volbu, která s vaším materiálem vypadá nejlépe. Poznamenejme, že při použití tfields musíte nastavit -fps a -ofps na dvojnásobek snímkové rychlosti originálu.
mencoder dvd://1 -oac copy -vf tfields=2 -ovc lavc -fps 60000/1001 -ofps 60000/1001
Pokud plánujete výrazné zmenšování, můžete extrahovat a enkódovat jen jeden z půlsnímků. Samozřejmě přijdete o polovinu svislého rozlišení, ale pokud plánujete zmenšení ideálně na 1/2 originální velikosti, nebude na této ztrátě vůbec záležet. Výsledek bude progresivní soubor s 30000/1001 snímky za sekundu. Celý postup spočívá v použití -vf field a následném ořezu [1] a příslušném škálování. Pamatujte, že musíte nastavit scale tak, aby kompenzoval zmenšení svislého rozměru na polovinu.
mencoder dvd://1 -oac copy -vf field=0 -ovc lavc
Abychom převedli smíšené progresivní a telecinované video zcela na progresivní video, musí být telecinované části inverzně telecinovány. K tomu lze dospět třemi postupy popsanými níže.Poznamenejme, že byste měli vždy provést inverzní telecine před jakýmkoliv škálováním; a v případě, že přesně nevíte co děláte, také před ořezáním [1]. Volba -ofps 24000/1001 je vyžadována, protože výstupní video bude mít 24000/1001 snímků za sekundu.
-vf pullup je navržen tak, aby inverzně telecinoval, ale progresivní data nechával jak jsou. Pro správnou funkci musí být pullup následován filtrem softskip, jinak MEncoder zhavaruje. pullup je však nejčistší a nejpřesnější dostupnou metodou pro enkódování jak telecinovaného, tak "smíšeného progresivního a telecinovaného".
mencoder dvd://1 -oac copy -vf pullup,softskip -ovc lavc -ofps 24000/1001
Starší metodou je, spíše než inverzně telecinovat telecinované části, telecinovat progresivní části a poté inverzně telecinovat celé video. Zní to zmateně? softpulldown je filtr, který projde celé video a převede celý soubor na telecinovaný. Pokud budeme následovat softpulldown buď detc nebo ivtc, bude konečný výsledek zcela progresivní. Nutná je volba -ofps 24000/1001.
mencoder dvd://1 -oac copy -vf softpulldown,ivtc=1 -ovc lavc -ofps 24000/1001
Osobně jsem nepoužil -vf filmdint, ale toto o něm (přibližně) řekl D Richard Felker III:
Je to OK, ale IMO to zkouší až příliš často odstraňovat proklad místo provádění inverzního telecine (stejně jako settop DVD přehrávače & progresivní televize) což vede ke škaredému třepotání a dalším artefaktům. Pokud jej chcete používat, měli byste předtím alespoň trochu času věnovat ladění voleb a sledováním výstupu, abyste měli jistotu, že vám to něco nekazí.
Máme dvě volby pro práci s touto kategorií, obě jsou však kompromisem. Měli byste se rozhodnout podle trvání/umístění každého typu.
Považujte to za progresivní. Prokládané části budou vypadat prokládaně a některé z prokládaných políček bude muset být zahozeno, což povede k nestejnoměrnému poskakování. Můžete proti tomu nasadit postprocesní filtr, pokud chcete, ale tím mírně degradujete progresivní části.
Této volbě byste se měli rozhodně vyhnout, pokud chcete nakonec zobrazovat video na zobrazovači s prokládaným obrazem (přes TV kartu například). Pokud máte prokládané snímky ve videu s rychlostí 24000/1001 snímků za sekundu, budou telecinovány spolu s progresivními snímky. Polovina prokládaných "snímků" bude zobrazena po dobu trvání třech snímků (3/(60000/1001) sekund), což povede k poskakování. Efekt "cukání zpět" vypadá skutečně zle. Pokud se o to přece pokusíte, musíte použít filtr odstraňující proklad, jako je lb nebo l5.
Špatnou volbou je to i pro progresivní zobrazovač. Ten zahodí páry po sobě jdoucích snímků, což povede k přerušování, které může být více viditelné, než při druhé metodě, která zobrazuje některé progresivní snímky dvakrát. Prokládané video se 30000/1001 snímky za sekundu je totiž poněkud trhané, protože by ve skutečnosti mělo být promítáno při 60000/1001 půlsnímcích za sekundu, takže zdvojení některých snímků není tak moc vidět.
V každém případě je nejlepší posoudit obsah a způsob, jakým bude zobrazován. Pokud je vaše video z 90% progresivní a nikdy jej nebudete pouštět na televizi, měli byste volit progresivní přístup. Pokud je progresívní jen z poloviny, pravděpodobně jej bude lepší enkódovat jako by bylo celé prokládané.
Pokládat jej za prokládané. Některé snímky v progresivních částech budou muset být duplikovány, což povede k nepravidelnému poskakování. Opět platí, že filtry pro odstranění prokladu mohou poněkud degradovat progresivní části.
K ořezu: Video data na DVD jsou ukládána ve formátu zvaném YUV 4:2:0. V YUV videu jsou, jasová ("černobílá"; angl. luma) a barvonosná (angl. chroma) složka ukládány odděleně. Protože je lidské oko méně citlivé na změnu barvy, než na jas, připadá v YUV 4:2:0 obrázku pouze jeden barvonosný pixel na každé čtyři jasové pixely. V progresivním obrázku má každý čtverec 2x2 jasových pixelů právě jeden barvonosný pixel. Proto musíte ořezávat progresivní YUV 4:2:0 na sudé rozměry a používat sudé odsazení (offsety). Například crop=716:380:2:26 je OK, ale crop=716:380:3:26 není.
Když máte co do činění s prokládaným YUV 4:2:0, je situace mnohem komplikovanější. Místo každých čtyřech pixelů ve snímku sdílejících barvonosný pixel, každé čtyři jasové pixely v každém půlsnímku sdílejí barvonosný pixel. Když jsou půlsnímky proloženy do snímku, každá linka má výšku jeden pixel. A nyní místo aby dané čtyři pixely tvořily čtverec, jsou první dva vedle sebe a druhé dva jsou vedle sebe o dvě linky níž. Dva pixely těsně pod nimi patří do jiného půlsnímku a proto sdílí jiný barvonosný pixel se dvěma jasovými pixely o dva řádky níž. Všechno tohle nás nutí mít svislé rozměry ořezání a odsazení bezezbytku dělitelné čtyřmi. Vodorovné stačí když budou sudé.
Pro telecinované video doporučuji, abyste ořezání prováděli až po inverzi telecine. Jakmile je video progresivní, stačí řezat jen na sudé rozměry. Pokud si však přece jen chcete dopřát mírné zrychlení, které může poskytnout časný ořez, musíte svisle dodržet násobky čtyřech, jinak nebude mít filtr pro inverzi telecine správná data.
Prokládané (nikoli telecinované) video musíte vždy ořezávat svisle násobky čtyř, pokud před ořezáním nepoužijete -vf field.
K volbám pro enkódování a kvalitě:
Jen proto, že doporučuji mbd=2 zde neznamená, že by tato
volba nemohla být použita jinde. V kombinaci s trell, je
mbd=2 jednou ze dvou voleb
libavcodec
u, které nejvíce zvyšují
kvalitu a vy byste měli vždy použít alespoň tyto dvě, pokud není na škodu
zpomalení rychlosti enkódování (např. při enkódování v reálném čase).
Mnoho dalších voleb libavcodec
u
zvyšuje kvalitu enkódování (a snižuje jeho rychlost), ale to je mimo zaměření
tohoto textu.
K výkonu filtru pullup: Použití pullup je bezpečné (spolu se softskip ) na progresivní video a je to obvykle dobrá volba, pokud nebyl zdroj prověřen, že je celý progresivní. Ve většině případů je ztráta výkonu malá. V ojedinělých případech enkódování způsobí pullup, že je MEncoder o 50% pomalejší. Přidání zpracování zvuku a pokročilých lavcopts zastíní tento rozdíl tak, že rozdíl v rychlosti působený použitím pullup se sníží na 2%.
libavcodec
zajišťuje jednoduché enkódování do mnoha zajímavých video a audio formátů.
Můžete enkódovat do následujících kodeků (více méně aktuální):
Jméno video kodeku | Popis |
---|---|
mjpeg | Motion JPEG |
ljpeg | lossless (bezztrátový) JPEG |
h261 | H.261 |
h263 | H.263 |
h263p | H.263+ |
mpeg4 | standardní ISO MPEG-4 (DivX 5, XviD kompatibilní) |
msmpeg4 | prvotní MPEG-4 varianta od MS, v3 (DivX3) |
msmpeg4v2 | prvotní MPEG-4 od MS, v2 (použitý ve starých ASF souborech) |
wmv1 | Windows Media Video, verze 1 (WMV7) |
wmv2 | Windows Media Video, verze 2 (WMV8) |
rv10 | RealVideo 1.0 |
rv20 | RealVideo 2.0 |
mpeg1video | MPEG-1 video |
mpeg2video | MPEG-2 video |
huffyuv | bezztrátová komprese |
asv1 | ASUS Video v1 |
asv2 | ASUS Video v2 |
ffv1 | bezztrátový video kodek z FFmpeg |
svq1 | Sorenson video 1 |
flv | Sorenson H.263 používaný ve Flash Video |
dvvideo | Sony Digital Video |
snow | Experimentální vlnkově orientovaný kodek z FFmpeg |
První pole obsahuje názvy kodeků, které můžete přiřadit konfiguračnímu parametru
vcodec
, např: -lavcopts vcodec=msmpeg4
Příklad s MJPEG kompresí:
mencoder dvd://2 -o titul2.avi -ovc lavc -lavcopts vcodec=mjpeg -oac copy
Jméno audio kodeku | Popis |
---|---|
mp2 | MPEG Layer 2 |
ac3 | AC3, alias Dolby Digital |
adpcm_ima_wav | IMA adaptivní PCM (4 bity na vzorek, komprese 4:1) |
sonic | experimentální lossy/lossless kodek |
Vprvním sloupci naleznate jména kodeků, které byste měli přiřadit parametru
acodec
, například: -lavcopts acodec=ac3
Příklad s kompresí AC3:
mencoder dvd://2 -o titul2.avi -oac lavc -lavcopts acodec=ac3 -ovc copy
Narozdíl od videokodeků z libavcodec
její audio kodeky neprovádějí inteligentní rozdělení přidělených bitů,
jelikož jim chybí nějaký minimální psychoakustický model (pokud vůbec),
který obsahuje většina implementací ostatních kodeků.
Vězte však, že všechny tyto kodeky zvuku jsou velmi rychlé a pracují
jak jsou všude, kde máte MEncoder se zakompilovanou
knihovnou libavcodec
(což je
naprostá většina případů) a nezávisejí na externích knihovnách.
V ideálním případě byste asi chtěli jen říct enkodéru, aby se přepnul do režimu "vysoká kvalita" a šel na to. To by bylo jistě hezké, ale naneštěstí je to těžké zavést, jelikož různé volby enkódování vedou k různé kvalitě v závislosti na zdrojovém materiálu. To proto, že komprese závisí na vizuálních vlastnostech daného videa. Například anime a živá akce mají zcela rozdílné vlastnosti a tedy vyžadují odlišné volby pro dosažení optimálního enkódování. Dobrá zpráva je, že některé volby by nikdy neměly chybět, jako mbd=2, trell a v4mv. Podrobný popis obvyklých enkódovacích voleb naleznete níže.
Volby k nastavení:
vmax_b_frames: 1 nebo 2 je v pořádku,
v závislosti na filmu.
Poznamenejme, že pokud chcete mít svá videa dekódovatelná kodekem DivX5,
budete muset zapnout podporu uzavřeného GOP, pomocí volby
libavcodec
u cgop,
ale budete také muset vypnout detekci scény, což není dobrý nápad, jelikož
tak trochu zhoršíte efektivitu enkódování.
vb_strategy=1: pomáhá ve scénách s rychlým pohybem. Vyžaduje vmax_b_frames >= 2. V některých videích může vmax_b_frames snížit kvalitu, ale vmax_b_frames=2 spolu s vb_strategy=1 pomůže.
dia: okruh vyhledávání pohybu. Čím větší, tím lepší a pomalejší. Záporné hodnoty mají úplně jiný význam. Dobrými hodnotami jsou -1 pro rychlé enkódování, nebo 2-4 pro pomalejší.
predia: předprůchod pro vyhledávání pohybu. Není tak důležitý jako dia. Dobré hodnoty jsou 1 (výchozí) až 4. Vyžaduje preme=2, aby byla opravdu k něčemu.
cmp, subcmp, precmp: Porovnávací funkce pro odhad pohybu. Experimentujte s hodnotami 0 (výchozí), 2 (hadamard), 3 (dct) a 6 (omezení datového toku). 0 je nejrychlejší a dostatečná pro precmp. Pro cmp a subcmp je 2 dobrá pro anime a 3 zase pro živou akci. 6 může, ale nemusí být o něco lepší, ale je pomalá.
last_pred: Počet prediktorů pohybu přebíraných z předchozího snímku. 1-3 nebo tak pomůžou za cenu menšího zdržení. Vyšší hodnoty jsou však pomalé a nepřináší žádný další užitek.
cbp, mv0: Ovládá výběr makrobloků. Malá ztráta rychlosti za malý zisk kvality.
qprd: adaptivní kvantizace založená na komplexnosti makrobloku. Může pomoci i uškodit v závislosti na videu a ostatních volbách. Toto může způsobovat artefakty, pokud nenastavíte vqmax na nějakou rozumně malou hodnotu (6 je dobrá, možná byste ale měli jít až na 4); vqmin=1 může také pomoci.
qns: velmi pomalá, zvlášť v kombinaci s qprd. Tato volba nutí enkodér minimalizovat šum díky kompresi artefaktů, místo aby se snažil striktně zachovávat věrnost videa. Nepoužívejte ji, pokud jste již nezkusili všechno ostatní kam až to šlo a výsledek přesto není dost dobrý.
vqcomp: Vylepšení ovládání datového toku. Dobré hodnoty se liší podle videa. Můžete to bezpečně ponechat jak to je, pokud chcete. Snížením vqcomp pustíte více bitů do scén s nízkou komplexností, zvýšením je pošlete do scén s vysokou komplexností (výchozí: 0.5, rozsah: 0-1. doporučený rozsah: 0.5-0.7).
vlelim, vcelim: Nastaví jediný koeficient prahu eliminace pro jasové a barevné roviny. Ty jsou enkódovány odděleně ve všech MPEGu podobných algoritmech. Myšlenka stojící za těmito volbami je použití dobré heuristiky pro určení, zda je změna v bloku menší než vámi nastavený práh a v tom případě se blok enkóduje jako "nezměněný". To šetří bity a možná i zrychlí enkódování. vlelim=-4 a vcelim=9 se zdají být dobré pro hrané filmy, ale příliš nepomohou s anime; pokud enkódujete animované vido, měli byste je asi nechat beze změn.
qpel: Odhad pohybu s přesností na čtvrt pixelu. MPEG-4 používá přesnost na půl pixelu jako výchozí při vyhledávání pohybu, proto je tato volba spojena s určitou režií, jelikož se do výstupního souboru ukládá více informací. Kompresní zisk/ztráta závisí na filmu, ale obvykle to není příliš efektivní na anime. qpel vždy způsobí zvýšení výpočetní náročnosti dekódování (v praxi +25% času CPU).
psnr: neovlivní aktuální enkódování, ale zaznamená typ/velikost/kvalitu každého snímku do log souboru a na konci vypíše souhrnný PSNR (odstup signálu od šumu).
Volby se kterými nedoporučujeme si hrát:
vme: Výchozí je nejlepší.
lumi_mask, dark_mask: Psychovizuálně adaptivní kvantizace. Nehrajte si s těmito volbami, pokud vám jde o kvalitu. Rozumné hodnoty mohou být efektivní ve vašem případě, ale pozor, je to velmi subjektivní.
scplx_mask: Snaží se předcházet blokovým artefaktům, ale postprocesing je lepší.
Následující nastavení jsou příklady nastavení různých kombinací voleb enkodéru, které ovlivňují poměr rychlost versus kvalita při shodném cílovém datovém toku.
Veškerá nastavení byla testována na video vzorku 720x448 @30000/1001 snímků za sekundu, cílový datový tok byl 900kbps a prováděly se na AMD-64 3400+ při 2400 Mhz v režimu 64 bitů. Každá kombinace nastavení má uvedenu změřenou rychlost enkódování (ve snímcích za sekundu) a ztrátu PSNR (v dB) oproti nastavení "velmi vysoká kvalita". Rozumějte však že, v závislosti na vašem zdrojovém materiálu, typu počítače a pokrokům ve vývoji, můžete dospět k velmi odlišným výsledkům.
Popis | Volby | Rychlost [fps] | Relativní ztráta PSNR [dB] |
---|---|---|---|
Velmi vysoká kvalita | vcodec=mpeg4:mbd=2:mv0:trell:v4mv:cbp:last_pred=3:predia=2:dia=2:vmax_b_frames=2:vb_strategy=1:precmp=2:cmp=2:subcmp=2:preme=2:qns=2 | 6 | 0 |
Vysoká kvalita | vcodec=mpeg4:mbd=2:trell:v4mv:last_pred=2:dia=-1:vmax_b_frames=2:vb_strategy=1:cmp=3:subcmp=3:precmp=0:vqcomp=0.6:turbo | 15 | -0.5 |
Rychlé enkódování | vcodec=mpeg4:mbd=2:trell:v4mv:turbo | 42 | -0.74 |
Enkódování v reálném čase | vcodec=mpeg4:mbd=2:turbo | 54 | -1.21 |
Díky této vlastnosti
libavcodec
u
můžete nastavit uživatelskou inter (I-snímky/klíčové snímky) a intra
(P-snímky/predikované (rozumějte vypočítané) snímky) matice. To je podporováno
mnoha kodeky:
mpeg1video
a mpeg2video
jsou hlášeny jako funkční.
Typické použití této vlastnosti je nastavení matic preferovaných KVCD specifikacemi.
Kvantizační Matice KVCD "Notch":
Intra:
8 9 12 22 26 27 29 34 9 10 14 26 27 29 34 37 12 14 18 27 29 34 37 38 22 26 27 31 36 37 38 40 26 27 29 36 39 38 40 48 27 29 34 37 38 40 48 58 29 34 37 38 40 48 58 69 34 37 38 40 48 58 69 79
Inter:
16 18 20 22 24 26 28 30 18 20 22 24 26 28 30 32 20 22 24 26 28 30 32 34 22 24 26 30 32 32 34 36 24 26 28 32 34 34 36 38 26 28 30 32 34 36 38 40 28 30 32 34 36 38 42 42 30 32 34 36 38 40 42 44
Použití:
$ mencodervstup.avi
-ovýstup.avi
-oac copy -ovc lavc -lavcopts inter_matrix=...:intra_matrix=...
$ mencoder input.avi
-ovc lavc -lavcopts
vcodec=mpeg2video:intra_matrix=8,9,12,22,26,27,29,34,9,10,14,26,27,29,34,37,
12,14,18,27,29,34,37,38,22,26,27,31,36,37,38,40,26,27,29,36,39,38,40,48,27,
29,34,37,38,40,48,58,29,34,37,38,40,48,58,69,34,37,38,40,48,58,69,79
:inter_matrix=16,18,20,22,24,26,28,30,18,20,22,24,26,28,30,32,20,22,24,26,
28,30,32,34,22,24,26,30,32,32,34,36,24,26,28,32,34,34,36,38,26,28,30,32,34,
36,38,40,28,30,32,34,36,38,42,42,30,32,34,36,38,40,42,44 -oac copy -o svcd.mpg
Takže jste si koupili zbrusu novou kopii filmu Harry Potter a Tajemná komnata (širokoúhlou verzi samozřejmě) a chcete si toto DVD ripnout, takže si jej můžete přidat do svého Domácího kino-počítače PC. Je to region 1 DVD, takže je v NTSC. Níže uvedený příklad je stále vhodný i pro PAL, jen musíte vynechat -ofps 24000/1001 (protože výstupní snímková rychlost je shodná se vstupní) a přirozeně budou rozdílné souřadnice pro ořez.
Po spuštění mplayer dvd://1, postupujeme podle informací obsažených v sekci Jak naložit s telecine a prokladem v NTSC DVD a zjistíme že je to 24000/1001 neprokládané video, takže nepotřebujeme použít inverzní telecine filtr, jako je pullup nebo filmdint.
Dále musíme zjistit vhodný ořezový obdélník, takže použijeme filtr cropdetect:
mplayer dvd://1 -vf cropdetect
Ujistěte se, že jste přešli přes zaplněný snímek (nějakou jasnou scénu) a v konzoli MPlayeru uvidíte:
crop area: X: 0..719 Y: 57..419 (-vf crop=720:362:0:58)
Potom přehrajeme film s tímto filtrem, abychom otestovali jeho správnost:
mplayer dvd://1 -vf crop=720:362:0:58
A zjistíme, že to vypadá zcela v pořádku. Dále se ujistíme, že šířka i výška jsou násobky 16. Šířka je v pořádku, výška ovšem ne. Protože jsme nepropadli v sedmé třídě z matematiky, víme, že nejbližším násobkem 16 nižším než 362 je 352.
Mohli bychom použít crop=720:352:0:58, ale bude lepší ustřihnout kousek nahoře i dole, takže zachováme střed. Zkrátili jsme výšku o 10 pixelů, ale nechceme zvýšit odsazení y o 5 pixelů, protože je to liché číslo, což by nepříznivě ovlivnilo kvalitu. Místo toho zvýšíme odsazení y o 4 pixely:
mplayer dvd://1 -vf crop=720:352:0:62
Další důvod pro odstřižení pixelů shora i zdola je to, že si můžeme být jisti odstřižením napůl černých pixelů pokud existují. Pokud je však vaše video telecinováno, ujistěte se, že máte v řetězu filtrů pullup filtr (nebo jiný filtr pro inverzi telecine, který hodláte použít) ještě před odstraněním prokladu a ořezem. (Pokud se rozhodnete zachovat vaše video prokládané, pak se ujistěte, že vaše vertikální odsazení (offset) je násobkem 4.)
Pokud si děláte starosti se ztrátou těch 10 pixelů, možná raději snížíte rozměry na nejbližší násobek 16. Řetězec filtrů by pak vypadal asi takto:
-vf crop=720:362:0:58,scale=720:352
Takovéto zmenšení videa bude znamenat ztrátu malého množství detailů, což bude pravděpodobně stěží postřehnutelné. Zvětšování by naopak vedlo ke snížení kvality (pokud byste nezvýšili datový tok). Ořez odstraní tyto pixely úplně. To je jedna z věcí, kterou byste si měli uvážit pro každý případ zvlášť. Například pokud bylo DVD video vyrobeno pro televizi, měli byste se vyvarovat vertikálnímu škálování, jelikož počet řádků odpovídá originální nahrávce.
Při prohlídce jsme zjistili, že video je poměrně akční, s vysokým počtem detailů, takže jsme zvolili datový tok 2400 Kbitů.
Nyní jsme připraveni provést dvouprůchodové enkódování. Průchod jedna:
mencoder dvd://1 -ofps 24000/1001 -oac copy -vf crop=720:352:0:62,hqdn3d=2:1:2 -ovc lavc \ -lavcopts vcodec=mpeg4:vbitrate=2400:v4mv:mbd=2:trell:cmp=3:subcmp=3:mbcmp=3:autoaspect:vpass=1 \ -o Harry_Potter_2.avi
A průchod dva je stejný, jen nastavíme vpass=2:
mencoder dvd://1 -ofps 24000/1001 -oac copy -vf crop=720:352:0:62,hqdn3d=2:1:2 -ovc lavc \ -lavcopts vcodec=mpeg4:vbitrate=2400:v4mv:mbd=2:trell:cmp=3:subcmp=3:mbcmp=3:autoaspect:vpass=2 \ -o Harry_Potter_2.avi
Volby v4mv:mbd=2:trell velmi zvýší kvalitu za cenu časové
náročnosti enkódování. Vcelku není důvod tyto volby vypustit, pokud je
primárním cílem kvalita. Volby cmp=3:subcmp=3:mbcmp=3
vyberou porovnávací funkci, která poskytuje lepší kvalitu, než výchozí.
S tímto parametrem můžete zkusit experimentovat (nahlédněte do man stránky pro
seznam možných hodnot), jelikož různé funkce mohou mít velký vliv na kvalitu
v závislosti na zdrojovém materiálu. Například pokud zjistíte, že
libavcodec
produkuje příliš mnoho
čtverečkových artefaktů, můžete zkusit zvolit experimentální NSSE jako
porovnávací funkci přes *cmp=10.
V případě tohoto filmu bude výsledné AVI dlouhé 138 minut a veliké kolem 3GB. A protože jste řekli, že na velikosti nezáleží, je to přijatelná velikost. Ale pokud byste jej chtěli menší, můžete zkusit nižší datový tok. Efekt zvyšování datového toku se totiž neustále snižuje, takže zatímco je zlepšení po zvýšení z 1800 Kbitů na 2000 Kbitů zjevné, nemusí být již tak velké nad 2000 Kbitů. Beze všeho s tím experimentujte, dokud nebudete spokojeni.
Jelikož jsme protáhli video odšumovacím filtrem, měli bychom jej trochu přidat během přehrávání. To, spolu s spp post-procesním filtrem, znatelně zvýší vnímanou kvalitu a pomůže odstranit čtverečkové artefakty ve videu. S MPlayerovou volbou autoq může být množství postprocesingu prováděného filtrem spp přizpůsobováno vytížení CPU. V tuto chvíli rovněž můžete provést korekci gama a/nebo barevnou korekci k dosažení nejlepších výsledků. Například:
mplayer Harry_Potter_2.avi -vf spp,noise=9ah:5ah,eq2=1.2 -autoq 3
XviD
je svobodná knihovna pro
enkódování MPEG-4 ASP video datových proudů.
Před začátkem enkódování budete muset
nastavit MEncoder pro jeho podporu.
Tato příručka se zaměřuje na poskytování stejného druhu informací jako příručka enkódování s x264. Takže prosím začněte přečtením první části této příručky.
Začněte prosím pročtením sekce
XviD
v manuálové stránce
MPlayeru.
Tato část má být doplněním man stránky.
Výchozí nastavení XviD jsou dobrým kompromisem mezi rychlostí a kvalitou, takže je můžete bez obav použít, pokud vám nebude něco v dalším textu jasné.
vhq Tato volba ovlivní rozhodovací algoritmus makrobloku, kde vyšší nastavení znamená lepší rozhodování. Výchozí nastavení mohou být bezpečně použita pro každé enkódování, zatímco vyšší nastavení vždy pomohou PSNR, ale je znatelně pomalejší. Poznamenejme, že lepší PSNR nemusí nutně znamenat, že bude obraz vypadat lépe, ale udává, že je blíže originálu. Vypnutí této volby viditelně zrychlí enkódování; pokud je pro vás rychlost kritická, pak to stojí za to.
bvhq Tato volba provádí to samé co vhq, ale v B-snímcích. Má zanedbatelný vliv na rychlost a trochu vylepšuje kvalitu (kolem +0.1dB PSNR).
max_bframes Větší počet povolených po sobě jdoucích B-snímků obvykle zvyšuje komprimovatelnost, ačkoli to může vést k většímu počtu blokových artefaktů. Výchozí nastavení je dobrým kompromisem mezi komprimovatelností a kvalitou, ale můžete ji zvýšit nad 3, pokud toužíte po nízkém datovém toku. Můžete ji rovněž snížit na 1 nebo 0, pokud vám jde o perfektní kvalitu, ale v tom případě byste se měli ujistit, že máte nastaven dostatečně vysoký datový tok, aby byla jistota, že komrimátor nebude zvyšovat kvantizer, aby jej dosáhl.
bf_threshold Tato volba ovládá B-snímkovou citlivost enkodéru, kdy vyšší hodnota vede k častějšímu použití B-snímků (a naopak). Má být použita spolu s max_bframes; pokud jste blázen do datového toku, měli byste zvýšit jak max_bframes, tak bf_threshold, nebo naopak můžete zvýšit max_bframes a snížit bf_threshold, takže bude enkodér používat více B-snímků pouze na místech, které je opravdu potřebují. Nízká hodnota max_bframes a vysoká bf_threshold asi není nejrozumnější volbou, jelikož přinutí enkodér umísťovat B-snímky na místa, které z nich nebudou těžit, ale sníží se jejich vizuální kvalita. Pokud však potřebujete být kompatibilní s domácími přehrávači, které podporují pouze staré DivX profily (ty podporují pouze 1 po sobě jdoucí B-snímek), je to vaše jediná cesta ke zvýšení komprimovatelnosti pomocí B-snímků.
trellis Optimalizuje proces kvantizace pro dosažení nejlepšího kompromisu mezi PSNR a datovým tokem, což umožňuje znatelnou úsporu bitů. Ušetřené bity budou využity v jiných částech videa, což zvýší celkovou vizuální kvalitu. Měli byste ji vždy mít zapnutou, jelikož její kvalitativní přínos je značný. Dokonce i když potřebujete vyšší rychlost, nevypínejte ji, dokud jste nevypli vhq a nezredukovali ostatní volby náročné na CPU na minimum.
hq_ac Aktivuje metodu odhadu s menšími náklady na koeficienty, což trochu zmenší výstupní soubor (okolo 0,15 až 0,19%, což odpovídá zvýšení PSNR o méně než 0.01dB) při zanedbatelném vlivu na rychlost. Je proto doporučeno ponechat ji vždy zapnutou.
cartoon Volba navržená pro lepší enkódování kresleného obsahu. Nemá vliv na rychlost, pouze doladí heuristiku pro výběr režimu pro tento druh obsahu.
me_quality Tato volba ovládá přesnost vyhledávání pohybu. Čím vyšší me_quality, tím bude přesnější odhad původního pohybu a výsledný snímek přesněji zachytí originální pohyb.
Výchozí nastavení je nejlepší ve všech případech; takže ji nedoporučujeme vypínat, pokud nepotřebujete za každou cenu zvýšit rychlost, jelikož všechny bity ušetřené dobrým odhadem pohybu mohou být použity jinde a zvýšit tak celkovou kvalitu. Každopádně nechoďte níž než na 5, a když, tak jen jako poslední možnost.
chroma_me Zlepšuje odhad pohybu tím, že bere v potaz i chroma (barevnou) informaci, zatímco samotné me_quality používá pouze černobílou (luma). To spomalí enkódování o 5-10%, ale docela vylepší vizuální kvalitu omezením blokových artefaktů a zmenší velikost souboru asi o 1.3%. Pokud vám jde hlavně o rychlost, měli byste tuto volbu vypnout dříve, než začnete snižovat me_quality.
chroma_opt Je určena spíše ke zvýšení kvality barev a vyčištění bílých/černých okrajů, než k vylepšení koprimovatelnosti. To vám může pomoci omezit "red stairs" efekt.
lumi_mask Zkouší přiřadit nižší datový tok částem obrázku, které lidské oko dobře nevidí, což umožní enkodéru použít ušetřené bity na důležitějších místech obrázku. Kvalita výsledku značně závisí na osobních preferencích a na typu a nastavení monitoru použitého pro prohlížení (typicky to nebude vypadat dobře pokud je jasný, nebo je to TFT monitor).
qpel Zvýší počet možných vektorů pohybu zvýšením přesnosti vyhledávání pohybu z poloviny pixelu na čtvrtinu pixelu. Ideou je nalezení lepších vektorů pohybu, které naoplátku sníží datový tok (což zvýší kvalitu). Vektory pohybu s přesností na čtvrt pixelu však vyžadují pro sebe pár bitů navíc, ale výsledné vektory ne vždy dávají (o mnoho) lepší výsledky. Docela často vydá kodek bity na vyšší přesnost, ale dosáhne jen malého nebo žádného zvýšení kvality. Naneštěstí není způsob jak zjistit možný zisk qpel předem, takže musíte enkódovat s a bez ní, abyste měli jistotu.
qpel může až zdvojnásobit čas enkódování a vyžaduje až o 25% více výpočetního výkonu pro dekódování. Volba není podporována všemi stolními přehrávači.
gmc
Pokouší se ušetřit bity v panoramatických scénách použitím jediného
vektoru pohybu pro celý snímek.
To téměř vždy zvýší PSNR, ale znatelně zpomalí enkódování
(stejně jako dekódování).
V každém případě byste ji měli používat pouze pokud máte
vhq nastavené na maximum.
GMC v XviD
je mnohem
sofistikovanější než v DivX, ale je podporována jen několika
stolními přehrávači.
XviD podporuje enkódovací profily pomocí volby profile, což je využíváno pro k zařazení omezení nastavení XviD videoproudu tak, aby byl přehratelný na všem, co podporuje vybraný profil. Omezení se vstahují k rozlišením, datovému toku a různým MPEG-4 vlastnostem. Následující tabulka ukazuje, co který profil podporuje.
Simple | Advanced Simple | DivX | ||||||||||||||
Jméno profilu | 0 | 1 | 2 | 3 | 0 | 1 | 2 | 3 | 4 | 5 | Handheld | Portable NTSC | Portable PAL | Home Theater NTSC | Home Theater PAL | HDTV |
Šířka [pixelů] | 176 | 176 | 352 | 352 | 176 | 176 | 352 | 352 | 352 | 720 | 176 | 352 | 352 | 720 | 720 | 1280 |
Výška [pixelů] | 144 | 144 | 288 | 288 | 144 | 144 | 288 | 288 | 576 | 576 | 144 | 240 | 288 | 480 | 576 | 720 |
Snímková rychlost [fps] | 15 | 15 | 15 | 15 | 30 | 30 | 15 | 30 | 30 | 30 | 15 | 30 | 25 | 30 | 25 | 30 |
Max průměrný datový tok [kbps] | 64 | 64 | 128 | 384 | 128 | 128 | 384 | 768 | 3000 | 8000 | 537.6 | 4854 | 4854 | 4854 | 4854 | 9708.4 |
Mezní průměr datového toku během 3 sekund [kbps] | 800 | 8000 | 8000 | 8000 | 8000 | 16000 | ||||||||||
Max. B-snímků | 0 | 0 | 0 | 0 | 0 | 1 | 1 | 1 | 1 | 2 | ||||||
MPEG kvantizace | X | X | X | X | X | X | ||||||||||
Adaptivní kvantizace | X | X | X | X | X | X | X | X | X | X | X | X | ||||
Prokládané enkódování | X | X | X | X | X | X | X | X | X | |||||||
Čtvrtpixel | X | X | X | X | X | X | ||||||||||
Globální kompenzace pohybu | X | X | X | X | X | X |
Následující nastavení jsou příklady nastavení různých kombinací voleb enkodéru, které ovlivňují poměr rychlost versus kvalita při shodném cílovém datovém toku.
Veškerá nastavení byla testována na video vzorku 720x448 @30000/1001 snímků za sekundu, cílový datový tok byl 900kbps a prováděly se na AMD-64 3400+ při 2400 Mhz v režimu 64 bitů. Každá kombinace nastavení má uvedenu změřenou rychlost enkódování (ve snímcích za sekundu) a ztrátu PSNR (v dB) oproti nastavení "velmi vysoká kvalita". Rozumějte však že, v závislosti na vašem zdrojovém materiálu, typu počítače a pokrokům ve vývoji, můžete dospět k velmi odlišným výsledkům.
Popis | Volby | Rychlost [fps] | Relativní ztráta PSNR [dB] |
---|---|---|---|
Velmi vysoká kvalita | chroma_opt:vhq=4:bvhq=1:quant_type=mpeg | 16 | 0 |
Vysoká kvalita | vhq=2:bvhq=1:chroma_opt:quant_type=mpeg | 18 | -0.1 |
Rychlé enkódování | turbo:vhq=0 | 28 | -0.69 |
Enkódování v reálném čase | turbo:nochroma_me:notrellis:max_bframes=0:vhq=0 | 38 | -1.48 |
x264
je svobodná knihovna pro
enkódování H.264/AVC video proudů.
Pře zahájením enkódování budete muset
nastavit její podporu v MEncoderu.
Začněte prosím prohlídkou sekce
x264
man stránky
MPlayeru.
Tato sekce je zamýšlena jako doplněk nam stránky.
Zde naleznete tipy, které volby budou nejspíše zajímat většinu lidí.
Man stránka je více uhlazená, ale také více vyčerpávající a
občas nabízí mnohem lepší technické detaily.
Tato příručka pokrývá dvě hlavní kategorie enkódovacích voleb:
Volby které mění dobu enkódování za kvalitu
Volby které mohou být použitelné pro naplnění různých osobních preferencí a speciálních požadavků
Nakonec jen vy můžete rozhodnout, které volby jsou nejlepší pro vaše účely. Rozhodování v první kategorii voleb je nejjednodušší: stačí když zhodnotíte zda změny kvality ospravedlní rychlostní rozdíly. Druhá skupina voleb může být mnohem subjektivnější záležitostí a v úvahu může přijít více faktorů. Poznamenejme, že některé volby "osobních preferencí a speciálních požadavků" mohou také značně ovlivnit kvalitu nebo rychlost enkódování, ale to není jejich hlavní funkce. Několik voleb "osobních preferencí" může dokonce způsobit změny, po kterých se někomu zdá být výsledek lepší a jinému horší.
Než budeme pokračovat, poznamenejme, že tento návod používá jediné měřítko kvality: celkový PSNR. Stručné vysvětlení co je to PSNR, naleznete ve Wikipedii pod heslem PSNR. Celkové PSNR je poslední hlášené PSNR číslo při zařazení volby psnr v x264encopts. Kdykoli píšeme o PSNR, je jedním z předpokladů tohoto sdělení to, že jsou použity shodné datové toky.
Téměř všechny komentáře v tomto návodu předpokládají, že enkódujete dvouprůchodově. Při porovnávání voleb jsou zde dva hlavní důvody pro použití dvouprůchodového enkódování. Zaprvé, dvouprůchodové enkódování vám získá zhruba 1dB PSNR, což je znatelný rozdíl. Zadruhé, testování voleb pomocí přímého porovnání kvality v jednoprůchodových výsledcích je pochybné, jelikož se datový tok značně liší s každým enkódováním. Není vždy snadné určit, zda se změnila kvalita díky změně voleb, nebo z větší části odpovídají změnám datového toku.
subq: Z voleb, které umožňují vyměnit čas za kvalitu, jsou obvykle nejdůležitější subq a frameref (viz níže). Máte-li zájem ovlivnit jak rychlost, tak kvalitu, jsou to první volby, které byste měli zvážit. Ve smyslu rychlosti se spolu volby frameref a subq velmi silně ovlivňují. Zkušenosti ukazují, že při jednom referenčním snímku si subq=5 vezme asi o 35% více času než subq=1. Při 6 referenčních snímcích naroste spomalení nad 60%. Vliv subq na PSNR se zdá být poměrně stálý, bez ohledu na počet referenčních snímků. Typicky subq=5 získá 0.2-0.5 dB celkového PSNR přes subq=1. To je obvykle již viditelné.
Režim subq=6 je nejpomalejší s nejvyšší kvalitou. Oproti subq=5 obvykle získává 0.1-0.4 dB celkového PSNR za cenu ztráty rychlosti 25%-100%. Narozdíl od ostatních úrovní subq nezávisí chování subq=6 tolik na frameref a me. Místo toho závisí efektivita subq=6 hlavně na počtu použitých B-snímků. Při běžném použití to znamená, že subq=6 má velký vliv jak na rychlost, tak na kvalitu v komplexních, velmi pohyblivých scénách, ale nemusí mít takový vliv ve scénách s malým pohybem. Poznamenejme, že stále doporučujeme nastavit bframes na nenulovou hodnotu (viz níže).
frameref: Výchozí nastavení frameref je 1, ale nemělo by to být bráno tak, že je rozumné nastavovat jej na 1. Pouhé zvýšení frameref na 2 získá okolo 0.15dB PSNR s 5-10% spomalením, což je zřejmě dobrý obchod. frameref=3 získá kolem 0.25dB PSNR navíc k frameref=1, což již může být viditelný rozdíl. frameref=3 je asi o 15% pomalejší než frameref=1. Naneštěstí se zisk rychle vytrácí. Prř frameref=6 můžete očekávat zisk pouze 0.05-0.1 dB nad frameref=3 při dodatečném 15% zpomalení. Nad frameref=6 je zisk kvality obvykle velmi malý (ačkoli byste měli mít na paměti, že se to může výrazně lišit v závislosti na zdrojovém materiálu). V poměrně typickém případě zlepší frameref=12 celkový PSNR o pouhé 0.02dB nad frameref=6, při spomalení o 15%-20%. Při tak vysokých hodnotách frameref lze říct pouze jedinou dobrou věc, a to že jejich další zvyšování téměř nikdy nesníží PSNR, ale další zisk kvality je stěží měřitelný, natož viditelný.
Zvýšení frameref na nemístně vysokou hodnotu může a obvykle taky sníží efektivitu kódování, pokud vypnete CABAC. Se zapnutým CABAC (výchozí chování) se zdá být možnost nastavit frameref "příliš vysoko" příliš vzdálená na to, abyste se tím museli trápit a v budoucnu mohou optimalizace tuto možnost zcela vyloučit.
Pokud vám záleží na rychlosti, bývá vhodným kompromisem použít nízké hodnoty subq a frameref v prvním průchodu a zvýšit je ve druhém. Typicky to má zanedbatelný záporný vliv na konečnou kvalitu: Pravděpodobně stratíte méně než 0.1dB PSNR, což by měl být až příliš malý rozdíl, než aby byl vidět. Odlišné hodnoty frameref však mohou místy ovlivnit volbu typu snímku. Nejspíš to budou ojedinělé případy, ale chcete-li si být zcela jisti, zjistěte, jestli vaše video obsahuje buď blýskavé vzory přes celou obrazovku, nebo rozsáhlé krátkodobé změny, které by mohly vynutit I-snímek. Nastavte frameref pro první průchod tak, aby byl dostatečně velký pro pokrytí doby bliknutí (nebo změny). Například, pokud scéna přepíná tam a zpět mezi dvěma obrázky přes tři snímky, nastavte frameref pro první průchod na 3 a více. Tento případ je nejspíš zcela ojedinělý v hraných filmech, ale občas se vyskytuje v záznamech z videoher.
me: Tato volba je určena pro výběr metody vyhledávání pohybu. Změnou této volby jednoduše měníte poměr kvalita-versus-rychlost. Volba me=1 je jen o málo procent rychlejší než výchozí vyhledávání za cenu pod 0.1dB globálního PSNR. Výchozí nastavení (me=2) je rozumným kompromisem mezi rychlostí a kvalitou. Volba me=3 získá o trošku méně než 0.1dB globální PSNR, při spomalení, které se liší v závislosti na frameref. Při vysokých hodnotách frameref (řekněme 12 nebo tak), je me=3 asi o 40% pomalejší než výchozí me=2. Při frameref=3, klesne způsobené spomalení na 25%-30%.
Volba me=4 používá tak rozsáhlé vyhledávání, že je příliš pomalá pro praktické využití.
4x4mv: Tato volba zapíná použití podčástí 8x4, 4x8 a 4x4 v predikovaných makroblocích. Její aktivace vede k poměrně stálé 10%-15% ztrátě rychlosti. Tato volba je poměrně neužitečná ve zdroji obsahujícím pouze pomalý pohyb, naproti tomu u některých zdrojů s rychlým pohybem, přesněji zdrojů s velkým množstvím malých pohyblivých objektů, můžete očekávat zisk okolo 0.1dB.
bframes: Použitelnost B-snímků je ve většině ostatních kodeků diskutabilní. V H.264 se to změnilo: jsou zde nové techniky a typy bloků pro použití v B-snímcích. Obvykle i naivní algoritmus pro výběr B-snímku může zajistit znatelný zisk PSNR. Také je zajímavé, že pokud vypnete adaptivní rozhodování o B-snímku (nob_adapt), zvýší obvykle enkódování s bframes o trochu rychlost enkódování.
S vypnutým adaptivním rozhodováním o B-snímku (x264encopts - volba nob_adapt), optimální hodnota tohoto nastavení nebývá obvykle vyšší než bframes=1, jinak mouhou utrpět velmi pohyblivé scény. Se zapnutým adaptivním rozhodováním o B-snímku (výchozí chování), je obvykle bezpečné použít vyšší hodnoty; enkodér se pokusí snížit použití B-snímků ve scénách, kde by snížily kompresi. Enkodér zřídka použije více než 3 nebo 4 B-snímky; nastavení této volby na vyšší hodnotu bude mít jen nepatrný vliv.
b_adapt: Poznámka: Výchozí je zapnuto.
Je-li tato volba zapnuta, bude enkodér používat rychlou heuristiku pro snížení počtu B-snímků ve scénách, kde by jejich použitím příliš nezískaly. Můžete použít b_bias pro nastavení jak přátelský bude enkodér k B-snímkům. Spomalení působené adaptivními B-snímky je nyní spíše malé, ale stejně tak potenciální zisk kvality. Obvykle však nijak neškodí. Poznamenejme, že ovlivňuje rychlost a rozhodování o typu snímku pouze v prvním průchodu. b_adapt a b_bias nemají žádný vliv v následných průchodech.
b_pyramid: Pokud používáte >=2 B-snímky, můžete také zapnout tuto volbu; jak říká man stránka, dostanete malé zvýšení kvality bez ztráty rychlosti. Poznamenejme, že tato videa nelze číst dekodéry založenými na libavcodec staršími než 5. března 2005.
weight_b: V typických případech tato volba nepřináší velký zisk. V prolínacích nebo stmívacích scénách však vážená predikce umožňuje poměrně velkou úsporu datového toku. V MPEG-4 ASP bývá stmívání obvykle nejlépe kódováno jako série velkých I-snímků; použití vážené predikce v B-snímcích umožňuje změnit alespoň některé z nich na rozumně menší B-snímky. Spomalení enkódování se zdá být minimální, pokud nějaké je. Rovněž, v rozporu s tím, co si někteří lidé mohou myslet, požadavky dekodéru na CPU nejsou váženou predikcí ovlivněny, ostatní možnosti jsou stejně náročné.
Naneštěstí má aktuálně algoritmus adaptivního rozhodování o B-snímcích výraznou tendenci vyvarovat se B-snímků při stmívání. Dokud se to nezmění, bude dobré přidat nob_adapt do x264encopts, pokud očekáváte, že stmívání bude mít znatelný vliv ve vašem konkrétním klipu.
Dvouprůchodové enkodování: Výše jsme doporučovali vždy používat dvouprůchodové enkódování, ale stále existují důvody proč jej nepoužít. Například pokud zachytáváte TV vysílání a enkódujete v reálném čase, nemáte jinou možnost, než použít jeden průchod. Jeden průchod je samozřejmě rychlejší než dva; pokud použijete stejné volby v obou průchodech, pak je dvouprůchodové enkódování téměř dvakrát pomalejší.
Stále jsou však velmi dobré důvody pro použití dvouprůchodového režimu. Volič datového toku v jednoprůchodovém režimu není oduševnělý a často dělá nerozumné volby, protože nevidí celkový obraz. Předpokládejme, že máte například dvouminutové video skládající se ze dvou částí. První polovina je vysoce pohyblivá scéna dlouhá 60 sekund, která samostatně vyžaduje kolem 2500kbps, aby vypadala slušně. Hned za ní následuje méně náročná 60 sekundová scéna, která vypadá dobře při 300kbps. Vyžádáte si 1400kbps, což je teoreticky dostatečné pro pokrytí obou scén. Jednoprůchodový volič datového toku v tom případě učiní několik "chyb". První blok může skončit těžce překvantizovaný, takže bude nepoužitelně a zbytečně čtverečkovaný. Druhá část bude velmi podkvantizovaná; to může vypadat dobře, ale spotřeba bitů na tento vzhled je nerozumně vysoká. Čeho se dá ještě hůře vyvarovat je problém přechodu mezi těmito scénami. První sekundy málo pohyblivé poloviny budou těžce překvantizovány, protože volič toku stále očekává nároky na datový tok, se kterými se potýkal v první polovině videa. Tato "chybová doba" překvantizované málo pohyblivé scény bude vypadat neskutečně špatně a skutečně použije méně než 300kbps, které by potřebovala, aby vypadala dobře. Existují způsoby pro zmírnění nástrah jednoprůchodového enkódování, ale ty mohou tíhnout ke zvyšování nepřesnosti datového toku.
Víceprůchodový volič datového toku nabízí velké výhody oproti jednomu průchodu. Díky statistikám generovaným v prvním průchodu může enkodér určit, s rozumnou přesností, bitovou náročnost enkódování každého snímku při jakémkoli kvantizéru. To umožňuje mnohem racionálnější, lépe naplánovanou spotřebu bitů mezi drahými (hodně pohyblivými) a levnými (málo pohyblivými) scénami. Několik nápadů jak upravit tuto spotřebu podle svého naleznete níže viz qcomp.
Navíc dva průchody nemusí trvat dvakrát tak dlouho jako jeden. Můžete upravit volby prvního průchodu pro nejvyšší rychlost a nižší kvalitu. Pokud si dobře zvolíte své volby, můžete mít velmi rychlý první průchod. Výsledná kvalita ve druhém průchodu bude trochu horší, protože predikce velikosti je méně přesná, ale rozdíl v kvalitě je obvykle příliž malý, aby byl vidět. Zkuste např. přidat subq=1:frameref=1 do x264encopts prvnímu průchodu. Pak ve druhém průchodu použijte pomalejší volby pro vyšší kvalitu: subq=6:frameref=15:4x4mv:me=3
Tříprůchodové enkódování? x264 nabízí možnost provádět větší počet následných průchodů. Pokud zadáte pass=1 v prvním průchodu a pak použijete pass=3 v následujícím průchodu, pak tento průchod jak načte statistiky z předchozího, tak zapíše své vlastní. Další průchod po něm pak bude mít velmi dobrou základnu pro vysoce přesnou predikci velikosti snímků při zvoleném kvantizéru. V praxi se celková kvalita z toho vzešlá blíží nule a je možné, že třetí průchod bude mít horší celkový PSNR než jeho předchúdce. Při běžném použití tři průchody pomůžou, pokud dostanete buď špatnou predikci datového toku, nebo špatně vypadající přechody mezi scénami po použití pouze dvou průchodů. To se nejspíš může stát v extrémně krátkých klipech. Je rovněž několik zvláštních případů, ve kterých jsou tři a více průchodů dobré pro pokročilé uživatele, ale pro stručnost se zde těmito případy zabývat nebudeme.
qcomp: qcomp mění poměr počtu bitů alokovaných "drahým" velmi pohyblivým snímkům k "levným" málo pohyblivým snímkům. V jednom extrému, qcomp=0 vede k čistě konstantnímu datovému toku. Což typicky činí velmi pohyblivé scény velmi ošklivé, zatímco scény s malým pohybem vypadají perfektně, ale spotřebovávají mnohem větší datový tok, než by potřebovaly k tomu, aby ještě vypadaly skvěle. Ve druhém extrému, qcomp=1, dostanete téměř konstantní kvantizační parametr (QP). Konstantní QP nevypadá špatně, ale většina lidí soudí, že je rozumnější snížit trochu datový tok v extrémně náročných scénách (kde snížení kvality není tak vidět) a realokovat je do scén, které je snadnější enkódovat při excelentní kvalitě. Výchozí hodnota qcomp je 0.6, což může být, podle některých lidí poněkud málo (běžně se rovněž používá 0.7-0.8).
keyint: keyint je výhradně pro výměnu míry převinutelnosti za efektivitu kódování. Výchozí hodnota keyint je 250. V materiálu 25 snímků za sekundu to zajišťuje schopnost převíjení s 10 sekundovou přesností. Pokud soudíte, že bude důležité a užitečné být schopen převíjet s přesností 5 sekund, nastavte keyint=125; to ovšem trochu sníží kvalitu/datový tok. Pokud vám jde jen o kvalitu, nikoli převinutelnost, můžete si nastavit mnohem vyšší hodnoty (rozumějte že zisk z toho klesá a může být neznatelný až žádný). Video proud bude stále mít převíjecí body, pokud jsou zde nějaké změny scény.
deblockalpha, deblockbeta: Tato věc začíná být trochu kontroverzní.
H.264 definuje jednoduchou deblokovací proceduru I-bloků, která používá přednastavených sil a prahů závislých na QP daného bloku. Výchozí je, že bloky s vysokým QP jsou filtrovány silně a bloky s nízkým QP nejsou deblokovány vůbec. Přednastavené síly definované standardem jsou dobře zvoleny a vyváženy tak, že jsou optimální z hlediska PSNR pro libovolné video, které zkoušíte enkódovat. Volby deblockalpha a deblockbeta umožňují nastavit offsety přednastaveným deblokovacím prahům.
Zdá se, že si mnoho lidí myslí, že je dobré snížit sílu deblokovacího filtru o vysokou hodnotu (řekněme, -3). To však není téměř nikdy dobrý nápad a v mnoha případech lidé, kteří to dělají, nerozumí dobře tomu, jak pracuje výchozí deblokování.
První a nejdůležitější věc, kterou byste měli vědět o in-loop deblokovacím filtru, je, že výchozí prahy jsou téměř vždy optimální z hlediska PSNR. V řídkých případech, kdy nejsou, je ideální offset plusmínus 1. Úprava deblokovacích parametrů o větší hodnotu téměř zaručeně poškodí PSNR. Zesílení filtru setře více detailů; oslabení filtru povede k zvýšené viditelnosti blokování.
Rozhodně je hloupost snižovat deblokovací prahy pokud má vaše video převážně nízkou plošnou komplexnost (čili málo detailů nebo šumu). In-loop filtr odvádí téměř výbornou práci v ukrývání artefaktů, které se mohou vyskytnout. Pokud má zdroj vysokou plšnou komplexnost, pak jsou artefakty méně viditelné. To proto, že kroužkování vypadá podobně jako detail nebo šum. Lidské oko snadno rozpozná, pokud je odstraněn detail, ale ne už tak snadno pozná, že je šum reprezentován špatně. Když příjde na subjektivní kvalitu, pak jsou detaily a šum do jisté míry zaměnitelné. Oslabením deblokovacího filtru nejspíše zvýšíte chybu, přidáním kroužkových artefaktů, ale oko si toho nevšimne, jelikož je zamění za detaily.
Ani to však neospravedlňuje oslabení deblokovacího filtru. Obecně dostanete kvalitnější šum pomocí postprocesingu. Pokud vaše H.264 videa vypadají příliš neostře nebo rozmazaně, zkuste si pohrát s -vf noise při přehrávání. Volba -vf noise=8a:4a by měla skrýt většinu středně silných artefaktů. Téměř určitě to bude vypadat lépe, než výsledky, které byste mohli dosáhnout pohráváním si s deblokovacím filtrem.
Následující nastavení jsou příklady nastavení různých kombinací voleb enkodéru, které ovlivňují poměr rychlost versus kvalita při shodném cílovém datovém toku.
Veškerá nastavení byla testována na video vzorku 720x448 @30000/1001 snímků za sekundu, cílový datový tok byl 900kbps a prováděly se na AMD-64 3400+ při 2400 Mhz v režimu 64 bitů. Každá kombinace nastavení má uvedenu změřenou rychlost enkódování (ve snímcích za sekundu) a ztrátu PSNR (v dB) oproti nastavení "velmi vysoká kvalita". Rozumějte však že, v závislosti na vašem zdrojovém materiálu, typu počítače a pokrokům ve vývoji, můžete dospět k velmi odlišným výsledkům.
Popis | Volby | Rychlost [fps] | Relativní ztráta PSNR [dB] |
---|---|---|---|
Velmi vysoká kvalita | subq=6:4x4mv:8x8dct:me=3:frameref=5:bframes=3:b_pyramid:weight_b | 6 | 0 |
Vysoká kvalita | subq=5:4x4mv:8x8dct:frameref=2:bframes=3:b_pyramid:weight_b | 13 | -0.89 |
Rychlé enkódování | subq=4:bframes=2:b_pyramid:weight_b | 17 | -1.48 |
MEncoder je schopen vytvořit soubory ve
formátu MPEG pro VCD, SCVD a DVD pomocí knihovny
libavcodec
.
Tyto soubory pak mohou být použity ve spojení s programem
vcdimager
nebo
dvdauthor
pro vytvoření disku přehratelného na stolním přehrávači.
Formáty DVD, SVCD a VCD mají silná omezení. K dispozici máte pouze malý výběr vlikostí enkódovaného obrazu a poměrů stran. Pokud váš film nesplňuje tyto požadavky, budete jej muset škálovat, ořezat nebo přidat černé okraje, aby byl kompatibilní.
Formát | Rozlišení | V. kodec | V. dat. tok | Vzork. kmitočet | A. kodec | A. dat. tok | FPS | Poměr stran |
---|---|---|---|---|---|---|---|---|
NTSC DVD | 720x480, 704x480, 352x480, 352x240 | MPEG-2 | 9800 kbps | 48000 Hz | AC3,PCM | 1536 kbps (max) | 30000/1001, 24000/1001 | 4:3, 16:9 (pouze pro 720x480) |
NTSC DVD | 352x240[a] | MPEG-1 | 1856 kbps | 48000 Hz | AC3,PCM | 1536 kbps (max) | 30000/1001, 24000/1001 | 4:3, 16:9 |
NTSC SVCD | 480x480 | MPEG-2 | 2600 kbps | 44100 Hz | MP2 | 384 kbps (max) | 30000/1001 | 4:3 |
NTSC VCD | 352x240 | MPEG-1 | 1150 kbps | 44100 Hz | MP2 | 224 kbps | 24000/1001, 30000/1001 | 4:3 |
PAL DVD | 720x576, 704x576, 352x576, 352x288 | MPEG-2 | 9800 kbps | 48000 Hz | MP2,AC3,PCM | 1536 kbps (max) | 25 | 4:3, 16:9 (pouze pro 720x576) |
PAL DVD | 352x288[a] | MPEG-1 | 1856 kbps | 48000 Hz | MP2,AC3,PCM | 1536 kbps (max) | 25 | 4:3, 16:9 |
PAL SVCD | 480x576 | MPEG-2 | 2600 kbps | 44100 Hz | MP2 | 384 kbps (max) | 25 | 4:3 |
PAL VCD | 352x288 | MPEG-1 | 1152 kbps | 44100 Hz | MP2 | 224 kbps | 25 | 4:3 |
[a] Tato rozlišení jsou zřídka použita pro DVD, protože mají docela nízkou kvalitu. |
Pokud má vaše video poměr stran 2.35:1 (většina současných akčních filmů), budete muset přidat černé okraje, nebo ořezat video na 16:9, abyste mohli vytvořit DVD nebo VCD. Pokud přidáváte černé okraje, zkuste je napasovat do 16 pixelových okrajů, abyste minimalizovali vliv na výkon enkódování. Naštěstí má DVD dostatečně vysoký datový tok, takže se nemusíte příliš zabývat efektivitou enkódování, ale u SVCD a VCD je k dispozici jen malý datový tok, takže vyžaduje větší snahu pro dosažení přijatelné kvlaity.
DVD, VCD a SVCD vás rovněž omezují na relativně nízké GOP (skupina obrázků) velikosti. Pro materiál 30 snímků za sekundu je největší povolená GOP velikost 18. Pro 25 nebo 24 snímků/s je maximum 15. Velikost GOP je nastavena pomocí volby keyint.
VCD video musí být CBR při 1152 kbps. Tento velmi omezující požadavek je zde spolu s velmi malou vbv vyrovnávací pamětí 327 kilobitů. SVCD umožňuje proměnné datové toky až do 2500 kbps a poněkud méně omezující velikost vbv bufferu 917 kilobitů. Datové toky pro DVD mohou být libovolné až do 9800 kbps (ačkoli typické datové toky jsou asi poloviční) a velikost vbv buferu je 1835 kilobitů.
MEncoder má volby pro ovládání výstupního formátu. Pomocí těchto voleb jej můžete instruovat, aby použil správný typ souboru.
Volby pro VCD a SVCD se nazývají xvcd a xsvcd, protože to jsou rozšířené formáty. Nejsou přesně kompatibilní hlavně proto, že výstup neobsahuje skenovací offsety. Pokud potřebujete generovat SVCD obraz, měli byste protáhnout výstupní soubor programem vcdimager.
VCD:
-of mpeg -mpegopts format=xvcd
SVCD:
-of mpeg -mpegopts format=xsvcd
DVD:
-of mpeg -mpegopts format=dvd
DVD s NTSC Pullup:
-of mpeg -mpegopts format=dvd:telecine -ofps 24000/1001
Toto umožňuje enkódovat 24000/1001 fps progresivní materiál při 30000/1001 fps při zachování slučitelnosti s DVD.
Argument aspect z -lavcopts se používá pro zakódování poměru stran souboru. Během přehrávání je pak tato hodnota použita pro obnovení videa na správnou velikost.
16:9 neboli "Widescreen"
-lavcopts aspect=16/9
4:3 neboli "Fullscreen"
-lavcopts aspect=4/3
2.35:1 neboli "Cinemascope" NTSC
-vf scale=720:368,expand=720:480 -lavcopts aspect=16/9
Pro výpočet správné velikosti pro škálování, použijte rozšířenou NTSC šířku 854/2.35 = 368
2.35:1 neboli "Cinemascope" PAL
-vf scale="720:432,expand=720:576 -lavcopts aspect=16/9
Pro výpočet správné velikosti pro škálování, použijte rozšířenou PAL šířku 1024/2.35 = 432
Pokud není vzorkovací kmitočet zvuku takový, jaký je vyžadován cílovým formátem, je nutný převod vzorkovacího kmitočtu. To zajišťuje použití volby -srate spolu se zvukovým filtrem -af lavcresample.
DVD:
-srate 48000 -af lavcresample=48000
VCD a SVCD:
-srate 44100 -af lavcresample=44100
libavcodec
můžete použít pro
vytvoření videa kompatibilního s VCD/SVCD/DVD použitím příslušných voleb.
Zde máte seznam polí v -lavcopts, která je nutné změnit, abyste dostali video vhodné pro VCD, SVCD, nebo DVD:
acodec: mp2 pro VCD, SVCD nebo PAL DVD; ac3 je obecně používán pro DVD. PCM zvuk může být rovněž použitý pro DVD, ale většinou je to velké plýtvání místem. Poznamenejme, že MP3 není slučitelné s žádným z těchto formátů, ale přehrávače s jeho přehrátím obvykle nemají problém.
abitrate: 224 pro VCD; do 384 pro SVCD; do 1536 pro DVD, ale obvykle se hodnoty pohybují od 192 kbps pro stereo do 384 kbps pro 5.1 kanálový zvuk.
vcodec: mpeg1video pro VCD; mpeg2video pro SVCD; mpeg2video je obvykle použitý pro DVD, ale můžete použít také mpeg1video pro CIF rozlišení.
keyint: Použitý pro nastavení velikosti GOP. 18 pro 30fps materiál, nebo 15 pro 25/24 fps materiál. Zdá se, že komerční producenti preferují interval mezi klíčovými snímky 12. Je možné použít vyšší hodnotu a stále být kompatibilní s většinou přehrávačů. keyint na 25 by neměla nikdy způsobit potíže.
vrc_buf_size: 327 pro VCD, 917 pro SVCD a 1835 pro DVD.
vrc_minrate: 1152, pro VCD. Může být vynecháno pro SVCD a DVD.
vrc_maxrate: 1152 pro VCD; 2500 pro SVCD; 9800 pro DVD. Pro SVCD a DVD, můžete použít nižší hodnoty v závislosti na vašich osobních preferencích a potřebách.
vbitrate: 1152 pro VCD; do 2500 pro SVCD; do 9800 pro DVD. Pro dva poslední formáty by mělo být vbitrate nastaveno podle vlastního uvážení. Například pokud trváte na umístění asi 20 hodin na DVD, mohli byste použít vbitrate=400. Výsledná kvalita bude nejspíš hrozná. Pokud se pokoušíte dosáhnout maximální možné kvality na DVD, použijte vbitrate=9800, ale pak se vám nevejde ani celá hodina záznamu na jednovrstvé DVD.
Toto je typická minimální sada -lavcopts pro enkódování videa:
VCD:
-lavcopts vcodec=mpeg1video:vrc_buf_size=327:vrc_minrate=1152:\ vrc_maxrate=1152:vbitrate=1152:keyint=15:acodec=mp2
SVCD:
-lavcopts vcodec=mpeg2video:vrc_buf_size=917:vrc_maxrate=2500:vbitrate=1800:\ keyint=15:acodec=mp2
DVD:
-lavcopts vcodec=mpeg2video:vrc_buf_size=1835:vrc_maxrate=9800:vbitrate=5000:\ keyint=15:acodec=ac3
Pro vyšší kvalitu enkódování můžete také přidat kvalitu zlepšující volby do lavcopts, jako je trell, mbd=2 a další. Poznamenejme, že qpel a v4mv, které jsou často dobré pro MPEG-4, nejsou použitelné s MPEG-1 nebo MPEG-2. Pokud se snažíte vytvořit DVD s velmi vasokou kvalitou, může být vhodné přidat dc=10 do lavcopts. Takto to můžete pomoci omezit oběvování bloků ve stálobarevných plochách. Podtrženo sečteno, zde máte příklad nastavení lavcopts pro DVD s vyšší kvalitou:
-lavcopts vcodec=mpeg2video:vrc_buf_size=1835:vrc_maxrate=9800:vbitrate=8000:\ keyint=15:trell:mbd=2:precmp=2:subcmp=2:cmp=2:dia=-10:predia=-10:cbp:mv0:\ vqmin=1:lmin=1:dc=10
VCD a SVCD podporují zvuk MPEG-1 layer II. Použít můžete
toolame
,
twolame
,
nebo MP2 enkodér z libavcodec
u.
MP2 libavcodecu je dalek toho, aby byl stejně dobrý jako druhé dvě knihovny,
avšak měl by být vždy po ruce.
VCD podporuje pouze zvuk s konstantním datovým tokem (CBR), zatímco SVCD
podporuje také proměnný datový tok (VBR).
Používejte VBR opatrně, jelikož některé mizerné stolní přehrávače jej
nemusí dobře podporovat.
Pro DVD zvuk se používá AC3 kodek z
libavcodec
.
Tato sekce obsahuje kompletní příkazy pro vytvoření VCD/SVCD/DVD kompatibilních videí.
mencoder -oac lavc -ovc lavc -of mpeg -mpegopts format=dvd -vf scale=720:576,\ harddup -srate 48000 -af lavcresample=48000 -lavcopts vcodec=mpeg2video:\ vrc_buf_size=1835:vrc_maxrate=9800:vbitrate=5000:keyint=15:acodec=ac3:\ abitrate=192:aspect=16/9 -ofps 25 \ -ofilm.mpg
film.avi
mencoder -oac lavc -ovc lavc -of mpeg -mpegopts format=dvd -vf scale=720:480,\ harddup -srate 48000 -af lavcresample=48000 -lavcopts vcodec=mpeg2video:\ vrc_buf_size=1835:vrc_maxrate=9800:vbitrate=5000:keyint=18:acodec=ac3:\ abitrate=192:aspect=16/9 -ofps 30000/1001 \ -ofilm.mpg
film.avi
Pokud již má zdroj AC3 zvuk, použijte -oac copy místo reenkódování.
mencoder -oac copy -ovc lavc -of mpeg -mpegopts format=dvd -vf scale=720:576,\ harddup -lavcopts vcodec=mpeg2video:vrc_buf_size=1835:vrc_maxrate=9800:\ vbitrate=5000:keyint=15:aspect=16/9 -ofps 25 \ -ofilm.mpg
film.avi
Pokud již má zdroj AC3 zvuk a video je NTSC @ 24000/1001 fps:
mencoder -oac copy -ovc lavc -of mpeg -mpegopts format=dvd:telecine \ -vf scale=720:480,harddup -lavcopts vcodec=mpeg2video:vrc_buf_size=1835:\ vrc_maxrate=9800:vbitrate=5000:keyint=15:aspect=16/9 -ofps 24000/1001 \ -ofilm.mpg
film.avi
mencoder -oac lavc -ovc lavc -of mpeg -mpegopts format=xsvcd -vf \ scale=480:576,harddup -srate 44100 -af lavcresample=44100 -lavcopts \ vcodec=mpeg2video:mbd=2:keyint=15:vrc_buf_size=917:vrc_minrate=600:\ vbitrate=2500:vrc_maxrate=2500:acodec=mp2:abitrate=224 -ofps 25 \ -ofilm.mpg
film.avi
mencoder -oac lavc -ovc lavc -of mpeg -mpegopts format=xsvcd -vf \ scale=480:480,harddup -srate 44100 -af lavcresample=44100 -lavcopts \ vcodec=mpeg2video:mbd=2:keyint=18:vrc_buf_size=917:vrc_minrate=600:\ vbitrate=2500:vrc_maxrate=2500:acodec=mp2:abitrate=224 -ofps 30000/1001 \ -ofilm.mpg
film.avi
mencoder -oac lavc -ovc lavc -of mpeg -mpegopts format=xvcd -vf \ scale=352:288,harddup -srate 44100 -af lavcresample=44100 -lavcopts \ vcodec=mpeg1video:keyint=15:vrc_buf_size=327:vrc_minrate=1152:vbitrate=1152:\ vrc_maxrate=1152:acodec=mp2:abitrate=224 -ofps 25 \ -ofilm.mpg
film.avi
mencoder -oac lavc -ovc lavc -of mpeg -mpegopts format=xvcd -vf \ scale=352:240,harddup -srate 44100 -af lavcresample=44100 -lavcopts \ vcodec=mpeg1video:keyint=18:vrc_buf_size=327:vrc_minrate=1152:vbitrate=1152:\ vrc_maxrate=1152:acodec=mp2:abitrate=224 -ofps 30000/1001 \ -ofilm.mpg
film.avi
[1] Buďte však opartní: Dekódování MPEG-4 AVC videa v DVD rozlišení vyžaduje rychlý stroj (např.Pentium 4 nad 1.5Ghz, nebo Pentium M nad 1Ghz).
[2] Stejný film nemusí vypadat stejně na monitoru někoho jiného, nebo když je přehráván jiným dekodérem, takže si prověřujte své výtvory přehráváním na různých sestavách.
Existuje několik e-mailových konferencí o MPlayeru. Pokud to není vysloveně uvedeno jinak, je jazykem těchto konferencí angličtina. Prosíme, neposílejte zprávy ani v jiných jazycích, ani v HTML! Pokud pošlete příliš velkou přílohu a mail se vám vrátí nedoručen, umístěte přílohu někde, odkud může být stažena. Pro přihlášení do konference klikněte na odkaz. V konferencích platí stejná pravidla Netikety ohledě psaní a citací jako v usenetu. Následujte je prosím, usnadníte tak život těm, kteří vaše zprávy čtou. Pokud je neznáte, přečtěte si prosím HOWTO Edit Messages.
Konference pro MPlayerova oznámení. Přihlaste se zde, pokud chcete dostávat bezpečnostní oznámení a oznámení o vydání nové verze.
Konference pro obecnou podporu k otázkám vztahujícím se k MPlayeru. Přečtěte si prosím celou dokumentaci předtím, než zde pošlete své problémy a požadavky na vlastnosti. Hlášení chyb MPlayeru zde patří také, ale přečtěte si nejprve sekce známé chyby a hlášení chyb.
MPlayer-felhasznalok (Hungarian)
Konference v bulharštině. Náplň? Ještě uvidíme... dosud většinou flame a RTFM otázky :(
Konference k otázkám vztaženým ke grafickým kartám Matrox, jako mga_vid, oficiální Matrox beta ovladače (pro XFree86 4.x.x) a věci k matroxfb-TVout.
Věci vztažené k hardwarovému dekodéru zvanému DVB (nikoli DXR3!).
Konference pro obecnou podporu k otázkám vztaženým k MEncoderu. Přečtěte si prosím celou dokumentaci předtím, než zde pošlete své problémy a požadavky na vlastnosti. Hlášení chyb MEncoderu zde patří také, ale přečtěte si nejprve sekce známé chyby a hlášení chyb.
Tato konference je o vývoji MPlayeru! Rozmluvy o změnách rozhraní/API, nových knihovnách, optimalizacích kódu a změnách configure jsou zde na pořadu dne. Posílejte zde patche, ale nikoli hlášení o chybách, požadavky na vlastnosti a 'flames', abychom udrželi nízký provoz v konferenci.
Všechny změny v kódu MPlayer jsou automaticky posílány do této konference. Patří zde pouze otázky k těmto změnám (pokud nerozumíte proč je daná změna nutná, nebo máte lepří řešení, nebo jste si povšimli možné chyby/problému v commitu).
Tato konference je zaměřena na dokumentaci MPlayeru a diskuse k domácí stránce. CVS logy vztažené k dokumentaci a domácí stránce jsou zde rovněž posílány.
Tato konference je zaměřena na diskuse k překladům dokumentace MPlayeru a domácí stránky. CVS logy překladů dokumentace a domácí stránky jsou zde rovněž posílány.
Konference zaměřená na Cygwin a MinGW port MPlayeru.
Konference pro diskuse o MPlayeru G2, videopřehrávači nové generace.
Konference o infrastruktuře zrcadel MPlayeru.
MPlayer-MWN (INACTIVE)
Konference pro diskuse o vydáních MPlayer Weekly News.
MPlayer-os2 (INACTIVE)
Konference pro diskuse o OS/2 portu MPlayeru.
MPlayer-qt-codecs-porting (INACTIVE)
Konference pro dikuse o podpoře QuickTime kodeku.
Archivy konferencí s vyhledáváním naleznete na http://www.mplayerhq.hu/cgi-bin/s-arch.cgi.
Dobrá hlášení chyb jsou velmi cenným příspěvkem do vývoje jakéhokoli softwarového projektu. Ale je to s nimi jako se psaním dobrého programu, sepsání dobrého hlášení problému vyžaduje trochu práce. Prosím berte na vědomí, že většina vývojářů je velmi zaneprázdněna a dostává kvanta e-mailů. Takže ačkoli je vaše zpětná vazba kritická pro vylepšování MPlayeru a velmi ceněná, prosíme pochopte, že musíte poskytnout veškeré informace které požadujeme a postupovat přesně podle instrukcí v tomto dokumentu.
Pokud si myslíte, že máte potřebné schopnosti, pak vás vybízíme abyste opravil(a) chybu samostatně. Nebo jste to již udělal(a)? Přečtěte si prosím tento krátký dokument, abyste se dozvěděli jak zahrnout váš kód do MPlayeru. Lidé z konference MPlayer-dev-eng vám pomohou, pokud budete mít otázky.
Občas nastane problém typu 'předtím to fungovalo, teď už ne...'. Zde přinášíme postup krok za krokem, jak vyhledat, kdy problém nastal. Toto není určeno příležitostným uživatelům.
Nejprve si musíte opatřit zdrojové kódy MPlayeru z CVS. Instrukce lze nalést na konci této stránky.
Tak dostanete v adresáři main/ obraz CVS stromu na straně klienta. Nyní aktualizujte tento obraz k datu, které chcete:
cd main/ cvs update -PAd -D "2004-08-23"
Formát data je YYYY-MM-DD HH:MM:SS. Požití tohoto datového formátu zajišťuje, že budete schopni extrahovat patche podle data, kdy byly zapsány (commit) stejně, jak jsou v MPlayer-cvslog archivu.
A teď proveďte sestavení jako při normální aktualizaci:
./configure make
Pokud to čte nějaký neprogramátor, nejrychlejší metodou, jak se dostat k bodu, kde problém nastal, je použití binárního vyhledávání – to je vyhledávání data poruchy opakovaným dělením vyhledávacího intervalu napůl. Například pokud problém nastal v 2003, začneme v polovině roku a ptáme se, "Už je tu problém?". Pokud ano, vraťte se na prvního dubna; pokud ne, běžte na prvního října a tak dále.
Pokud máte spoustu místa na disku (plná kompilace obvykle zabírá 100 MB a kolem 300–350 MB, pokud jsou zapnuty debugovací symboly), zkopírujte nejstarší známou funkční verzi před jejím updatem; to vám ušetří čas, pokud se budete vracet. (Obvykla je nutné spustit 'make distclean' před rekompilací starší verze, takže pokud si neuděláte záložní kopii originálního zdrojového stromu, budete v něm muset rekompilovat vše, až se vrátíte do současnosti.)
Pokud jste našli den, kdy k problému došlo, pokračujte v hledání pomocí archivu mplayer-cvslog (řazeného podle data) a preciznějším cvs update s uvedením hodiny, minuty a sekundy:
cvs update -PAd -D "2004-08-23 15:17:25"
To vám umožní lehce najít patch, který problém způsobil.
Pokud jste našli patch, který je příčinou problému, máte téměř vyhráno; ohlaste to do MPlayer Bugzilly nebo se přihlaste do MPlayer-users a pošlete to tam. Je šance, že autor navrhne opravu. Rovněž si můžete patch rozpitvat, dokud z něj nevytlučete, kde je chyba :-).
Nejprve, prosím, vyzkoušejte poslední CVS verzi MPlayeru, jelikož vaše chyba již mohla být odstraněna. Vývoj je velmi rychlý, většina chyb v oficiálních balíčcích je nahlášena během několika dnů, nebo dokonce hodin, takže prosím používejte pouze CVS pro hlášení chyb. To zahrnuje binární balíčky MPlayeru. CVS instrukce naleznete na konci této stránky, nebo v souboru README. Pokud to nepomůže, prostudujte si prosím seznam známých chyb a zbytek dokumentace. Pokud je váš problém neznámý nebo jej nelze řešit pomocí našich instrukcí pak jej nahlaste jako chybu.
Prosíme, neposílejte hlášení chyb soukromě jednotlivým vývojářům. Toto je týmová práce a proto se o ně může zajímat více lidí. Čas od času měli ostatní uživatelé stejný problém a vědí jak jej obejít, dokonce i když se jedná o chybu v kódu MPlayeru.
Prosíme popište svůj problém tak podrobně, jak je to jen možné. Proveďte malé pátrání po okolnostech za kterých problém nastává. Projevuje se ta chyba jen v určitých situacích? Je vlastní určitým souborům nebo typům souborů? Stává se pouze s jedním kodekem, nebo je nezávislá na použitém kodeku? Dokážete ji zopakovat se všemi výstupními rozhraními nebo ovladači? Čím více nám poskytnete informací, tím je větší šance na odstranění problému. Nezapomeňte také připojit hodnotné informace požadované níže, jinak nebudeme schopni stanovit příčinu problému.
Skvělá, dobře napsaná příručka jak se ptát ve veřejných konferencích je How To Ask Questions The Smart Way od Erica S. Raymonda. Další příručka je How to Report Bugs Effectively od Simona Tathama. Pokud budete postupovat podle těchto rad, jistě se vám dostane pomoci. Pochopte však, že my všichni sledujeme konference dobrovolně ve svém volném čase. Máme mnoho práce a nemůžeme vám zaručit že vyřešíme váš problém nebo že vůbec dostanete odpověď.
Přihlaste se do e-mailové konference MPlayer-users: http://mplayerhq.hu/mailman/listinfo/mplayer-users a pošlete své hlášení o chybách na adresu mailto:mplayer-users@mplayerhq.hu kde o tom můžeme diskutovat.
Pokud chcete, můžete místo toho použít zbrusu novou Bugzillu.
Jazykem konference je Angličtina. Zachovávejte prosím Pravidla Netikety a neposílejte HTML mail do žádné z našich konferencí. Jinak můžete být ignorováni nebo vyhozeni. Pokud nevíte co je to HTML mail, nebo proč je tak zatracován, přečtěte si tento výborný dokument. Zde se dovíte detaily včetně instrukcí pro vypnutí HTML. Poznamenejme též, že nebudeme individuálně dělat CC (kopie) lidem, takže je dobré se přihlásit, abyste obdrželi svou odpověď.
Bude potřeba připojit log, konfiguraci nebo vzorky souborů ke svému hlášení chyb. Pokud jsou některé z nich opravdu velké, pak je raději nahrajte na náš FTP server v komprimovaném formátu (preferujeme gzip a bzip2) a do zprávy zahrňte pouze cestu a název souboru. Naše konference mají limit velikosti zprávy 80k, pokud máte něco většího, musíte to zkomprimovat a nahrát na FTP.
Vaše Linuxová distribuce nebo operační systém a jeho verze jako:
Red Hat 7.1
Slackware 7.0 + devel packs from 7.1 ...
verze jádra:
uname -a
verze libc:
ls -l /lib/libc[.-]*
verze gcc a ld:
gcc -v ld -v
verze binutils:
as --version
Pokud máte problémy s celoobrazovkovým režimem:
Druh Window manageru a jeho verze
Pokud máte problémy s XVIDIX:
Hloubka barev v X:
xdpyinfo | grep "depth of root"
Pokud je chybné pouze GUI:
verze GTK
verze GLIB
verze libpng
GUI situace kdy se chyba projevila
CPU info (to funguje pouze v Linuxu):
cat /proc/cpuinfo
Výrobce a model videokarty, např:
ASUS V3800U chip: nVidia TNT2 Ultra pro 32MB SDRAM
Matrox G400 DH 32MB SGRAM
Video driver type & version, e.g.:
X built-in driver
nVidia 0.9.623
Utah-GLX CVS 2001-02-17
DRI from X 4.0.3
Sound card type & driver, e.g.:
Creative SBLive! Gold with OSS driver from oss.creative.com
Creative SB16 with kernel OSS drivers
GUS PnP with ALSA OSS emulation
Pokud si nejste jisti, přidejte výstup z lspci -vv na systémech Linux.
Pokud nastanou chyby během běhu ./configure, nebo selže autodetekce něčeho, prostudujte configure.log. Možná naleznete odpověď zde. Například několik verzí stejné knihovny v systému, nebo jste zapomněli nainstalovat vývojový (devel) balíček (to jsou ty s koncovkou -dev). Pokud si myslíte, že je zde chyba, přidejte configure.log do svého hlášení.
Zahrňte prosím tyto soubory:
config.h
config.mak
Pouze pokud selže kompilace pod jedním z těchto adresářů, zahrňte tyto soubory:
Gui/config.mak
libvo/config.mak
libao2/config.mak
Zahrňte prosíme výstup MPlayeru v upovídaném režimu úrovně 1 ale dejte pozor, abyste jej nezkrátili při kopírování do mailu. Vývojáři potřebují všechny zprávy pro dobrou diagnózu problému. Takto můžete přesměrovat výstup do souboru:
mplayer -vvolby
film
> mplayer.log 2>&1
Pokud se problém vztahuje k jednomu nebo více souborům, pak prosím nahrajte potížisty na: ftp://mplayerhq.hu/MPlayer/incoming/
Rovněž zde nahrajte malý textový soubor se stejným základním jménem a příponou .txt. Popište problém který máte s daným souborem a připojte svůj e-mail a také výstup MPlayeru v upovídaném režimu úrovně 1. Pro reprodukci problému stačí obvykle prvních 1-5 MB souboru, ale pro jistotu vás žádáme o:
dd if=váš_soubor
of=malý_soubor
bs=1024k count=5
To vezme prvních pět megabajtů 'vašeho_souboru' a zapíše je do 'malého_souboru'. Pak znovu zkuste tento malý vzorek a pokud se na něm chyba projeví, pak je tento vzorek pro nás dostatečný. Prosíme nikdy neposílejte tyto soubory e-mailem! Nahrajte je na FTP a pošlete pouze cestu/název_souboru daného souboru na FTP serveru. Pokud je soubor přístupný na internetu, pak stačí poslat přesnou adresu URL.
Musíte spustit MPlayer z gdb a poslat nám úplný výstup nebo pokud máte core dump z pádu, můžete nám vyextrahovat užitečné informace ze souboru Core. Jak to udělat:
Překompilujte MPlayer se zapnutým debugovacím kódem:
./configure --enable-debug=3 make
a spusťte MPlayer z gdb pomocí:
gdb ./mplayer
Nyní jste v gdb. Zadejte:
run -vvolby-pro-mplayer
soubor
a zopakujte pád. Jakmile to dokážete, vrátí se gdb do režimu příkazového řádku, kde musíte zadat
bt disass $pc-32 $pc+32 info all-registers
Pokud jste vytvořili příkladné hlášení chyby pomocí výšeuvedených kroků a jste si jisti, že chyba je v MPlayeru, nikoli chyba kompilátoru nebo poškozený soubor, již jste si přečetli dokumentaci ale nenalezli řešení, vaše ovladače zvuku jsou OK, pak byste se měli přihlásit do konference MPlayer-advusers a poslat hlášení chyb zde, abyste dostali lepší a rychlejší odpověď.
Mějte na paměti, že pokud zde pošlete nováčkovské otázky nebo otázky zodpovězené v manuálu, budete ignorováni nebo vyhozeni, místo abyste dostali vhodnou odpověď. Takže nám nenadávejte a přihlaste se do -advusers pouze pokud opravdu víte co děláte a cítíte se být pokročilým uživatelem MPlayeru, nebo vývojářem. Pokud splňujete tato kritéria, nebude pro vás těžké se přihlásit...
SIGILL (signal 4) na P3 s jádry 2.2.x:
Problém: jádro 2.2.x nemá správnou (funkční) podporu SSE
Řešení: upgradujte jádro na 2.4.x
Obejití: ./configure --disable-sse
Obecný SIGILL (signal 4):
Problém: zkompilovali jste a používáte MPlayer na různých strojích (například jste kompilovali na P3 a pouštíte jej na Celeronu)
Řešení: kompilujte MPlayer na stejném stroji, kde jej budete používat!
Obejití: Na toto všechno můžete zapomenout, když budete konfigurovat kompilaci s volbou --enable-runtime-cpudetection, nebo můžete vyřadit určité sady CPU instrukcí pomocí mnohem konkrétnějších voleb (jako --disable-mmx, --disable-3dnow, atd.).
"Vnitřní nekonzistence bufferu" během běhu MEncoderu:
Problém: známý problém když bylo lame < 3.90 kompilováno gcc 2.96 nebo 3.x.
Řešení: používejte lame >=3.90.
Obejití: zkompilujte lame pomocí gcc 2.95.x a odstraňte jakékoli již nainstalované lame balíčky – mohly být zkompilovány s gcc 2.96.
Źničený MP2/MP3 zvuk na PPC:
Problém: známá GCC kompilační chyba na PPC platformách, dosud není opravena.
Obejití: použijte (pomalý) FFmpeg MP1/MP2/MP3 dekodér (-ac ffmpeg)
SIGSEGV (signal 11) v libmpeg2, při škálování+enkódování:
Problém: známá GCC 2.95.2 MMX chyba
Řešení: upgrade na 2.95.3
Havaruje při ukládání datových proudů (dump):
Problém: vylití jádra (core dump)
Řešení: Nepanikařte. Zjistěte, kde máte ručník.
nejčastěji: vadný ovládač zvukové karty! – zkuste použít jiné ovladače, Zkuste OSS emulaci z ALSA 0.9 pomocí -ao oss, také zkuste -ao sdl, občas to pomůže. Pokud se váš soubor přehrává dobře s -nosound, pak si můžete být jisti, že je to problém zvukové karty (ovladače).
problémy audio bufferu (špatně detekovaná velikost bufferu)
Obejití: MPlayerova volba -abs
problémy se vzorkovací rychlostí – možná vaše zvuková karta nepodporuje vzorkovací rychlost používanou ve vašich souborech. Zkuste převzorkovávací filtr (-af resample=...)
pomalý stroj (CPU nebo VGA)
zkuste s -vo null, pokud se přehrává dobře, pak máte pomalou VGA kartu/rozhraní
Obejití: kupte si rychlejší kartu, nebo si přečtěte tu část dokumentace pojednávající o tom jak urychlovat
Rovněž zkuste -framedrop
vadný soubor
Obejití:
volba -ni nebo -nobps (pro neprokládané nebo vadné soubory)
a/nebo
-mc 0(vyžadováno soubory se špatně prokládaným VBR zvukem)
a/nebo
-delay nebo +/- klávesy za běhu pro nastavení zpoždění
Pokud nic z toho nepomůže, uploadujte prosíme soubor, otestujeme jej a opravíme.
vaše zvuková karta nepodporuje přehrávání při 48 kHz
Obejití: kupte si lepší zvukovou kartu... nebo zkuste snížit snímkovou rychlost o 10% (použijte -fps 27 pro film 30fps) nebo použijte resample filtr
pomalý počítač (pokud není A-V okolo 0 a poslední číslo stavového řádku se zvyšuje)
Obejití: -framedrop
váš soubor používá nepodporovaný audio kodek
přečtěte si dokumentaci a pomozte nám přidat pro něj podporu
váš soubor používá nepodporovaný video kodek
Obejití: přečtěte si dokumentaci a pomozte nám přidat pro něj podporu
automaticky vybraný kodek neumí dekódovat soubor – zkuste vybrat jiný pomocí volby -vc nebo -vfm
zkoušíte přehrávat DivX 3.x soubor OpenDivX dekodérem nebo XviD (-vc odivx) – nainstalujte DivX4Linux a rekompilujte přehrávač
První poznámka: volby -fs -vm a -zoom jsou pouze doporučené a nejsou (zatím) podporované všemi rozhraními. Není tedy chybou, jestliže to nefunguje. Pouze několik rozhraní podporuje škálování/zvětšování, neočekávejte je od x11 nebo dga.
Poblikávání OSD/titulků.
rozhraní x11: bohužel, zatím nelze odstranit
rozhraní xv: použijte volbu -double
Zelený obraz při použití mga_vid (-vo mga / -vo xmga).
mga_vid špatně detekovalo množství RAM videokarty, načtěte jej znovu s volbou mga_ram_size
Účel tohoto dokumentu je popis formátu skinu MPlayeru. Zde uvedené informace mohou být chybné, protože:
Nejsem to já, kdo píše GUI.
GUI není dokončeno.
Mohu se mýlit.
Takže nebuďte překvapeni, pokud něco nebude pracovat přesně tak, jak je to zde popsáno.
Děkuji Zoltánu Ponekkerovi za jeho pomoc.
András Mohari <mayday@freemail.hu>
Nemá to sice nic společného s formátem skinu, ale měli byste vědět, že MPlayer nemá vestavěný skin, takže si musíte alespoň jeden skin nainstalovat, chcete-li používat GUI.
Adresáře prohledávané na skiny jsou (v tomto pořadí):
$(DATADIR)/Skin/
$(PREFIX)/share/mplayer/Skin/
~/.mplayer/Skin/
Poznamenejme, že první z cest se může lišit podle toho, jak je MPlayer zkonfigurován (viz volby configure skriptu --prefix a --datadir).
Každý skin je instalován do vlastního adresáře v některém z výše uvedených. Například:
$(PREFIX)/share/mplayer/Skin/default/
Obrázky musí být truecolor (24 nebo 32 bpp) PNG.
V hlavním okně a v přehrávači (viz níž) můžete použít obrázky s 'průhledností': Oblasti vyplněné barvou #FF00FF (magenta) jsou plně průhledné, pokud jsou zobrazovány MPlayerem. To znamená, že můžete mít tvarovaná okna, pokud má váš X server XShape rozšíření.
Skiny mají poměrně volný formát (narozdíl například od pevného formátu skinů Winampu/XMMS), takže je jen na vás, zda vytvoříte něco skvělého.
V současnosti jsou zde čtyři okna, která můžete dekorovat: hlavní okno, podokno, ovládací panel a nabidka (tu lze aktivovat pravým myšítkem).
MPlayer je ovládán v hlavním okně a/nebo v ovládacím panelu. Pozadím okna je obrázek. Následující součásti mohou (a musí) být umístěny v okně: tlačítka, potenciometry (šoupátka) a popisky. Každé součásti musíte nastavit pozici a velikost.
A tlačítko má tři stavy (stisknuto, puštěno a zakázáno), proto musí být jeho obraz svisle rozdělen do tří částí. Detaily viz součást tlačítko.
A potenciometr (hlavně používaný pro lištu převíjení a ovládání hlasitosti/stereováhy) může mít libovolný počet fází dělících jeho obraz na jednotlivé části pod sebou. Detaily viz hpotenciometr a potenciometr.
Popisky jsou poněkud zvláštní: Znaky potřebné pro jejich vykreslení jsou brány z obrazového souboru a znaky v obrázku jsou popsány souborem popisu fontu. Tento (druhý) soubor je prostý textový soubor, který popisuje pozici x,y a velikost každého znaku v obrázku (obrázkový soubor a soubor popisu fontu spolu tvoří font). Detaily viz dlabel.
Všechny obrázky mohou mít plnou průhlednost, jak je popsána v sekci o formátech obrázků. Pokud X server nepodporuje rozšíření XShape, budou průhledné části černé. Pokud byste chtěli využít tuto vlastnost, musí být šířka pozadí hlavního okna celočíselně dělitelná 8.
Podokno je to okno, kde se zobrazuje film. Může v něm být zobrazen určený obrázek, pokud není načten žádný film (je docela únavné, pokud zde není nic :-)). Poznámka: průhlednost zde is není povolena.
Nabídka je jen způsob, jak ovládat MPlayer položkami menu. Vyžadovány jsou dva obrázky: jeden z nich jako menu v normálním stavu a druhý se zvýrazněnými položkami. Když pak vyvoláte menu, je zobrazen první obrázek. Při pohybu myší přes položky, je zkopírována aktuálně vybraná položka z druhého obrázku přes ten první pod kursorem (druhý obrázek není nikdy zobrazen celý).
Položka menu je definována svou pozicí a velikostí v obrázku (detaily viz sekce nabídka).
Jednu důležitou věc jsme ještě nezmínili: Mají-li tlačítka, potenciometry a položky menu pracovat, musí MPlayer vědět, co má udělat, pokud je na ně kliknuto. To je zajištěno pomocí zpráv (událostí). Pro tyto členy tedy musíte definovat zprávy, které budou při kliku generovány.
Pro výrobu skinu budete potřebovat následující:
Konfigurační soubor jménem skin řekne MPlayeru, jak má dát jednotlivé části skinu dohromady a co udělat, kliknete-li někde v okně.
Obrázek pozadí hlavního okna.
Obrázky položek hlavního okna (včetně jednoho nebo více souborů s popisem fontu pro vykreslování popisek).
Obrázek pro zobrazení v podokně (volitelný).
Dva obrázky pro nabídku (ty jsou potřeba pouze pokud chcete vytvořit menu).
S výjimkou konfiguračního souboru skinu si můžete pojmenovat ostatní soubory jak chcete (s tím, že vaše soubory s popisem fontu budou mít příponu .fnt).
Jak jsme již řekli, je to konfigurační soubor skinu. Soubor je řádkově
orientován; řádky s komentářem začínají znakem ';
' (před ním
jsou povoleny jen mezery a tabulátory).
Soubor je složen ze sekcí. Každá sekce popisuje skin pro aplikaci a má následující formu:
section = název cekce
.
.
.
end
Zatím máme jen jednu aplikaci, takže potřebujete jen jednu sekci: její název je movieplayer.
Uvnitř sekce je každé okno posáno blokem, který má následující formu:
window = název okna
.
.
.
end
kde název okna
může být jeden z těchto řetězců:
main - pro hlavní okno
sub - pro podokno
menu - pro nabídku
playbar - ovládací panel
(Bloky sub a menu jsou volitelné - nemusíte vytvářet nabídku nebo vyzdobit podokno.)
Uvnitř window bloku můžete definovat každou položku okna řádkem v tomto tvaru:
položka = parametr
Kde položka
je řetězec označující typ položky GUI a
parametr
je číselná nebo textová hodnota (nebo seznam hodnot
oddělených čárkami).
Dáte-li to všechno dohromady, celý soubor vypadá asi takto:
section = movieplayer window = main ; ... položky hlavního okna ... end window = sub ; ... položky podokna ... end window = menu ; ... položky menu ... end window = playbar ; ... položky ovládacího panelu ... end end
Jméno souboru s obrázkem musí být zadáno bez úvodních adresářů - obrázky jsou
vyhledávány v adresáři Skin.
Měli byste (ale nemusíte) zadat příponu souboru. Pokud soubor neexistuje,
zkouší MPlayer načíst soubor
<jméno>.<příp>, kdy jsou za
<příp> zkoušeny přípony png
a PNG
(v tomto pořadí). Použitý bude první vyhovující soubor.
Nakonec ještě pár slov k umísťování. Hlavní okno a podokno mohou být umístěny
v různých rozích obrazovky zadáním souřadnic X
a
Y
. 0
je nahoře nebo vlevo,
-1
je střed a -2
je vpravo nebo dole, jak
je vidět na obrázku:
(0, 0)----(-1, 0)----(-2, 0) | | | | | | (0,-1)----(-1,-1)----(-2,-1) | | | | | | (0,-2)----(-1,-2)----(-2,-2)
Aby bylo vše jasné, uvádíme příklad. Řekněme, že máte obrázek jménem main.png, který použijete pro hlavní okno:
base = main, -1, -1
MPlayer zkusí načíst soubory main, main.png, main.PNG.
Níže uvádíme seznam položek, které mohou být použity v blocích
'window = main
' ... 'end
',
a 'window = playbar
' ... 'end
'.
base = obrázek, X, Y
Umožňuje nastavit obrázek pozadí hlavního okna. Okno bude vykresleno na
zadaných souřadnicích X,Y
na obrazovce a bude mít velikost
obrázku.
Tyto koordináty zatím nefungují pro okno display.
Průhledné oblasti v obrázku (obarvené #FF00FF) budou černé na X serverech bez XShape rozšíření. Šířka obrázku musí být celočíselně dělitelná 8.
button = obrázek, X, Y, šířka, výška, zpráva
Umístí tlačítko rozměru šířka
* výška
na pozici X,Y
. Zadaná zpráva
je
generována při kliku na tlačítko. Zadaný obrázek
musí
mít tři části pod sebou (odpovídající možným stavům tlačítka) takto:
+------------+ | stisknuto | +------------+ | uvolněno | +------------+ | zakázáno | +------------+
decoration = enable|disable
Zapne (enable) nebo vypne (disable) dekoraci hlavního okna, produkovanou okenním manažerem. Výchozí je disable.
V okně display to nefunguje, není to potřeba.
hpotmeter = tlačítko, tšířka, tvýška, fáze, počet_fází, výchozí, X, Y, šířka, výška, zpráva
vpotmeter = tlačítko, tšířka, tvýška, fáze, počet_fází, výchozí, X, Y, šířka, výška, zpráva
Umístí vodorovný (hpotmeter) nebo svislý (vpotmeter) potenciometr velikosti
šířka
* výška
na pozici
X,Y
. Obrázek může být rozdělen do různých částí pro různé
fáze potenciometru (Například můžete mít potenciometr pro nastavení hlasitosti,
jehož dráha se barví ze zelené na červenou, jak se jeho hodnota mění od nejmenší
do největší.). hpotmeter
může mít táhlo, které může být
vodorovně taženo. Význam parametrů:
tlačítko
- obrázek, ktrý se použije pro
tlačítko (musí mít tři části pod sebou, stejně jako v případě tohoto
tlačítka)
tšířka
, tvýška
-
velikost tlačítka
fáze
- obrázek použitý pro různé fáze
hpotmetru. Pokud žádný obrázek nechcete, můžete použít speciální hodnotu
NULL
. Obrázek musí být rozdělen svisle na
počet_fází
částí takto:
+------------+ | fáze #1 | +------------+ | fáze #2 | +------------+ ... +------------+ | fáze #n | +------------+
počet_fází
- počet fází uložených v
obrázku fáze
výchozí
- výchozí hodnota pro hpotmeter
(v rozsahu 0
až 100
)
X
, Y
- pozice pro hpotmeter
šířka
, výška
- šířka a výška
hpotmeter
u
zpráva
- zpráva generovaná při změně
hodnoty hpotmeter
u
potmeter = fáze, počet_fází, výchozí, X, Y, šířka, výška, zpráva
hpotmeter
bez tlačítka. (soudil bych, že byl míněn jako
otočný, ale reaguje pouze na horizontální tažení.) Popis parametrů je stejný
jako v hpotmeter.
fáze
mohou být NULL
, ale je to vcelku
k ničemu, jelikož nemůžete vidět, jak je nastaven potmeter
.
font = soubor_fontu, id_fontu
Definuje font. soubor_fontu
je jméno souboru popisu fontu
s příponou .fnt (zde příponu nezadávejte).
id_fontu
je použit jako ukazatel na font
(viz dlabel
a slabel). Definováno může být více než 25 fontů.
slabel = X, Y, id_fontu, "text"
Umístí statický popisek na pozici X,Y
. text
je zobrazen fontem identifikovaným pomocí id_fontu
. Text je
surový řetězec ($x
proměnné nefungují), který musí být uzavřen
ve dvojitých uvozovkách (ale znak " nesmí být součástí textu).
Popisek je zobrazen fontem identifikovaným pomocí id_fontu
.
dlabel = X, Y, délka, zarovnání, id_fontu, "text"
Umístí dynamický popisek na pozici X,Y
. Popisek je
dynamický proto, že je jeho text periodicky obnovován. Maximální délka
popisku je nastavena na délka
(jeho výškou je výška znaku).
Pokud je zobrazovaný text širší, pak bude rolován,
jinak bude zarovnán do určeného prostoru podle hodnoty parametru
zarovnání
: 0
je zarovnání vpravo,
1
na střed, 2
vlevo.
Text k zobrazení je zadán parametrem text
: Musí být uzavřen
do dvojitých uvozovek (ale znak " nesmí být součástí textu).
Popisek je zobrazen fontem identifikovaným pomocí id_fontu
.
V textu můžete použít tyto proměnné:
Proměnná | Význam |
---|---|
$1 | čas přehrávání ve formátu hh:mm:ss |
$2 | čas přehrávání ve formátu mmmm:ss |
$3 | čas přehrávání ve formátu hh (hodiny) |
$4 | čas přehrávání ve formátu mm (minuty) |
$5 | čas přehrávání ve formátu ss (sekundy) |
$6 | délka filmu ve formátu hh:mm:ss |
$7 | délka filmu ve formátu mmmm:ss |
$8 | čas přehrávání ve formátu h:mm:ss |
$v | hlasitost ve formátu xxx.xx% |
$V | hlasitost ve formátu xxx.xx |
$b | stereováha ve formátu xxx.xx% |
$B | stereováha ve formátu xxx.xx |
$$ | znak $ |
$a | znak podle typu audia (žádné: n ,
mono: m , stereo: t ) |
$t | číslo stopy (v playlistu) |
$o | název souboru |
$f | název souboru malými písmeny |
$F | název souboru velkými písmeny |
$T | znak podle typu datového proudu (soubor: f ,
Video CD: v , DVD: d , URL: u ) |
$p | znak p (pokud přehráváte soubor a font obsahuje znak p) |
$s | znak s character (pokud přehráváte soubor a font obsahuje znak s) |
$e | znak e (pokud je přehrávání pozastaveno a font obsahuje znak e) |
$x | šířka filmu |
$y | výška filmu |
$C | název použitého kodeku |
Proměnné $a, $T, $p, $s
a $e
vracejí znaky, které by se měly zobrazit jako speciální symboly (například
e je symbol pro pauzu, který obvykle vypadá asi takto
||). Měli byste mít font pro normální znaky a jiný font pro
symboly. Pro více informací viz sekci
symboly.
Následující vstupy mohou být použity v bloku
'window = sub
' . . . 'end
'.
base = obrázek, X, Y, šířka, výška
Obrázek, který bude zobrazen v okně. Okno se zobrazí na pozici zadané
souřadnicemi X,Y
na obrazovce (0,0
je
levý horní roh). Můžete nastavit -1
pro střed a -2
pro vpravo (X
) a dole (Y
). Okno bude
stejně velké jako obrázek. šířka
a výška
udávají velikost okna; jsou volitelné (pokud chybí, má okno rozměry shodné
s obrázkem).
background = R, G, B
Umožňuje nastavit barvu pozadí. To je užitečné, pokud je obrázek menší než
okno. R
, G
a B
označují červenou, zelenou a modrou složku barvy (každá z nich je dekadická
hodnota 0 až 255).
Jak již bylo dříve řečeno, nabídka je zobrazena pomocí dvou obrázků. Normální
položky nabídky jsou brány z obrázku určeného položkou base
,
zatímco aktuálně zvolený vstup je brán z obrázku určeného položkou
selected
. Musíte definovat pozici a rozměr každé položky
nabídky.
Následující vstupy mohou být použity v bloku
'window = menu
'. . .'end
'.
Jak jsme již zmínili v sekci o částech skinu, font je definován obrázkem a souborem popisu. Můžete rozmístit znaky v obrázku libovolně, ale ujistěte se, že je jejich velikost a pozice je uvedena v souboru popisu přesně.
Soubor popisu fontu (s příponou .fnt) může obsahovat
řádky s komentářem začínající ';
'. Soubor musí obsahovat
řádek ve formě
image = obrázek
Kde
je název obrázku
použitého pro font (nemusíte zadávat příponu).
obrázek
"char" = X, Y, šířka, výška
Zde X
a Y
udávají pozici
char
znaku v obrázku (0,0
je levý
horní roh). šířka
a výška
jsou
rozměry znaku v pixelech.
Tento příklad definuje znaky A, B, C s použítím font.png.
; Zde může být jen "font" místo "font.png". image = font.png ; Tři znaky pro ilustraci stačí :-) "A" = 0,0, 7,13 "B" = 7,0, 7,13 "C" = 14,0, 7,13
Některé znaky mají speciální význam, jsou-li vráceny některou z proměnných
použitých v dlabel. Tyto znaky mají být
zobrazovány jako symboly, takže mohou být zobrazeny věci jako pěkné DVD logo
místo znaku 'd
' pro DVD datový proud.
Následující tabulka obsahuje znaky, které mohou být použity k zobrazení symbolů (a tudíž vyžadují odlišný font).
Znak | Symbol |
---|---|
p | play |
s | stop |
e | pause |
n | bez zvuku |
m | mono zvuk |
t | stereo zvuk |
f | datový proud je soubor |
v | datový proud je Video CD |
d | datový proud je DVD |
u | datový proud je URL |
Tyto zprávy mohou být generovány tlačítky, potenciometry a položkami nabídky.
Některé zpráva nemusí pracovat podle očekávání (nebo vůbec). Jak víte, GUI je ve vývoji.
Ovládání přehrávání:
Skočí na následující stopu v playlistu.
Tvoří přepínač společně s evPlaySwitchToPause
. Ty mohou
být použity k vytvoření tradičního play/pauza tlačítka. Obě zprávy by měly
být přiřazeny tlačítkům umístěným na stejné pozici. Tato zpráva pozastaví
přehrávání a zobrazen bude obrázek pro evPlaySwitchToPause
talčítko (pro indikaci, že tlačítko může být stisknuto pro obnovení přehrávání).
Zahájí přehrávání.
Protiklad evPauseSwitchToPlay
. Tato zpráva zahájí přehrávání
a zobrazí obrázek pro tlačítko evPauseSwitchToPlay
(pro indikaci, že tlačítko může být stisknuto pro pozastavení přehrávání).
Skočí na předchozí stopu v playlistu.
Zastaví přehrávání.
Převíjení:
Převine zpět o 10 sekund.
Převine zpět o 1 minutu.
Převine zpět o 10 minut.
Převine vpřed o 10 sekund.
Převine vpřed o 1 minutu.
Převine vpřed o 10 minut.
Převine na danou pozici (může být přiřazeno potenciometru; použije se relativní hodnota (0-100%) potenciometru).
Ovládání videa:
Nastaví velikost okna filmu na poloviční velikost.
Nastaví velikost okna filmu na dvojnásobnou velikost.
Přepíná do celoobrazovkového režimu a zpět.
Nastaví velikost okna na normální velikost.
Ovládání zvuku:
Sníží zpoždění vyrovnávací paměti zvuku.
Sníží hodnotu stereováhy.
Sníží hlasitost.
Zvýší zpoždění vyrovnávací paměti zvuku.
Zvýší hodnotu stereováhy.
Zvýší hlasitost.
Vypne/zapne zvuk.
Nastaví stereováhu (může být sdruženo s potenciometrem; použije se relativní hodnota potenciometru (0-100%)).
Nastaví hlasitost (může být sdruženo s potenciometrem; použije se relativní hodnota potenciometru (0-100%)).
Různé:
Otevře okno o aplikaci.
Vypne aktuálně použité titulky.
Zapne/vypne ekvalizér.
Ukončí program.
Minimalizuje okno.
Otevře soubor (otevřením okna prohlížeče souborů, kde si soubor vyberete).
Stejné jako evLoad
, ale navíc se okamžitě spustí přehrávání
otevřeného souboru.
Otevře soubor s titulky (pomocí prohlížeče souborů)
Otevře soubor se zvukem (pomocí prohlížeče souborů)
Prázdná zpráva, nemá žádný efekt (možná s výjimkou CVS verzí :-)).
Otevře/zavře okno playlistu.
Zkusí otevřít disk v zadané DVD-ROM mechanice.
Zkusí otevřít disk v zadané CD-ROM mechanice.
Otevře okno předvoleb.
Nastaví poměr stran zobrazovaného obrázku.
Zobrazí dialogové okno pro volbu URL.
Otevře okno voliče skinů.
Pozadí: GCC řady 2.95 je oficiální GNU vydání a GCC verze 2.95.3 je nejméně chybovou verzí v sérii. Nikdy jsme nezaznamenali kompilační problémy, které bychom vystopovali až ke gcc-2.95.3. Počínaje Red Hat Linuxem 7.0, Red Hat zařadil silně patchovanou CVS verzi GCC do své distribuce a pojmenoval ji 2.96. Red Hat tuto verzi zařadil do distribuce, protože GCC 3.0 v té době nebylo dokončeno a potřebovali kompilátor, který by dobře fungoval na všech jimi podporovaných platformách, včetně IA64 a s390. Linuxový distributor Mandrake (nyní Mandriva) rovněž následoval příkladu Red Hatu a začal zařazovat GCC 2.96 do jejich řady Linux-Mandrake 8.0.
Bilance: GCC tým odmítl jakoukoli spojitost s GCC 2.96 a vydal officiální vyjádření ke GCC 2.96. Mnoho vývojářů na světě začalo mít problémy s GCC 2.96 a několik projektů, mezi nimi i avifile, začalo doporučovat jiné kompilátory. Další zajímavé odkazy jsou Linux kernel news flash about kernel 2.4.17 a Voy Forum. Rovněž MPlayer trpěl občasnými problémy, které byly všechny vyřešeny přechodem na jinou verzi GCC. Několik projektů začalo implementovat "obchvaty" některých sporných míst 2.96, ale my jsme odmítli opravovat chyby jiných lidí, zvlášť když některé obchvaty mohou způsobit snížení výkonu.
GCC 2.96 neumožňuje znaky |
(roura) v assemblerových
komentářích, jelikož podporuje jak syntaxi Intel, tak AT&T a znak
|
je ve variantě Intel symbolem. Problém je, že
tiše ignoruje celý blok assembleru.
To je snad již opraveno, GCC vypíše varování místo přeskočení bloku.
Současnost: Red Hat říká, že GCC 2.96-85 a výš je opravený. Situace se mezi tím zlepšila. Stále vidíme problémy v našich konferencích, které zmizí s jiným kompilátorem. V mnoha případech na tom vůbec nezáleží. Doufáme, že dospívající GCC 3.x odstraní tyto problémy nadobro. Pokud chcete kompilovat s 2.96 zadejte volbu --disable-gcc-checking do configure. Pamatujte však, že jste v tom sami, nehlaste tedy žádné chyby. Pokud to uděláte, budete vyločeni z naší konference, jelikož již máme dost dohadování se (flame vars) ohledně GCC 2.96. Nechte to již prosíme být.
Pokud máte problémy s GCC 2.96, můžete si opatřit balíčky 2.96-85 z ftp servru Red Hatu, nebo použít balíčky 3.0.4 nabízené od verze 7.2 a pozdějších. Rovněž si můžete opatřit balíčky gcc-3.2.3-37 (neofficiální, ale dobře fungující) a můžete je nainstalovat paralelně ke gcc-2.96, kterou již máte. MPlayer to zdetekuje a použije 3.2 místo 2.96. Pokud nechcete, nebo nemůžete použít binární balíčky, takto můžete zkompilovat GCC 3 ze zdrojových kódů:
Běžte na
stránku zrcadel GCC
a stáhněte si gcc-core-XXX
.tar.gz,
kde XXX
je číslo verze. Archiv obsahuje úplný
kompilátor C a pro MPlayer je dostatečný. Pokud
chcete i C++, Javu nebo některou jinou pokročilou vlastnost GCC,
gcc-XXX
.tar.gz vám bude
vyhovovat lépe.
Rozbalte archiv příkazem
tar -xvzf gcc-core-XXX
.tar.gz
GCC není sestavováno do adresáře se zdrojovými kódy jako většina jiných programů, ale vyžaduje adresář mimo adresáře s kódy. Proto musíte tento adresář vytvořit pomocí
mkdir gcc-build
Pak můžete přistoupit ke konfiguraci gcc v sestavovacím adresáři, ale potřebujete configure ze zdrojového adresáře:
cd gcc-build
../gcc-3.XXX
/configure
Zkompilujte GCC spuštěním tohoto příkazu v sestavovacím adresáři:
make bootstrap
Nyní můžete nainstalovat GCC (jako root) zadáním
make install
MPlayer dříve obsahoval zdrojový kód z projektu OpenDivX, který znemožňoval binární distribuci. Tento kód byl od verze 0.90-pre1 odstraněn a zbývající soubor divx_vbr.c, který je odvozen ze zdrojových kódů OpenDivX byl svými autory vydán pod licencí GPL okolo verze 0.90pre9. Nyní si můžete vytvořit binární balíčky podle své chuti.
Další překážkou v binární redistribuci byly optimalizace pro CPU architekturu při kompilaci. MPlayer nyní podporuje detekci CPU za běhu (zadejte volbu --enable-runtime-cpudetection do configure). Tato vlastnost je ve výchozím nastavení vypnuta, jelikož způsobuje malé snížení rychlosti, ale umožňuje vytvářet binárky, které poběží na různých zástupcích Intel kompatibilních procesorů.
Nelíbí se nám, že nVidia poskytuje pouze binární ovladače (pro použití s XFree86), které jsou často chybné. Máme mnoho hlášení o problémech s těmito ovladači v mplayer-users a jejich malé kvalitě, nestabilitě a slabé uživatelské a expertní podpoře. Mnoho z těchto problémů/chyb se neustále opakují. Později jsme byli kontaktováni nVidií a řekli nám, že tyto chyby neexistují, nestabilita je způsobena špatnými AGP čipy a oni nemají žádná hlášení o chybách ovladačů (jako je fialová čára). Takže pokud máte problémy se svou nVidia kartou, doporučujeme aktualizovat ovladač a/nebo si koupit nový motherboard, nebo požádat nVidii o dodání open-source ovladačů. V každém případě, pokud používáte binární ovladače od nVidie a máte problémy ve vztahu k ovladači, počítejte prosím s tím, že se vám dostane z naší strany jen malé pomoci, jelikož v tomto případě máme omezené možnosti.
Joe Barr se stal neblaze proslulým v prosinci 2001 napsáním tvrdé(?) recenze MPlayeru nazvané MPlayer: Project z pekla. Shledal MPlayer těžko instalovatelným a usoudil, že vývojáři byli nepřátelští a dokumentace neúplná a urážlivá. Posuďte však sami. Negativně se zmínil o Arpim v článku 10 Linux predictions for 2002. V následující recenzi xine nazvané A streaming media player for the rest of us pak pokračoval v kontroverzní polemice. Ironií je, že na konci tohoto článku citoval svou výměnu názorů s Günterem Bartschem, původním autorem xine, která perfektně shrnuje celou situaci:
Ačkoli mi rovněž řekl, že byl "překvapen" mým sloupkem o Mplayeru a myslí si, že je nefér, připomenul mi, že je to svobodný softwarový projekt. "Když se vám nelíbí," řekl Bartsch, "můžete jej svobodně nepoužívat."
Téměř o dva roky později v říjnu 2003 napsal další recenzi nazvanou Mplayer revisited (chyby v gramatice vyhrazeny). Ve ketré uvedl následující závěry:
Je třeba říct, že jsou zde vylepšení v počtu vlastností, ve výkonu a v dokumentaci. Stále to není nejlehčí instalace na světě, zvláště pro nováčky, ale je to lepší, než to bylo.
a
Ale mnohem důležitější je, že jsem si zde nepovšiml žádných aktuálních komentářů o urážení uživatelů. Myslím, že je to i moje zásluha, dokonce i když to říkám sám o sobě. Arpi a zbytek vývojářů to museli cítit také tak, jelikož si dali práci, aby mě zmínili ve zvláštní sekci dokumentace obsažené v tarbalu. Jak jsem řekl na začátku, něktré věci se nezměnily.
Naše pocity k Joe Barrovi nemůžeme shrnout lépe než: "Stále to není nejférovější nebo nejfundovanější článek na světě, ale je lepší než předtím." Doufáme, že příště si vzájemně splníme svá očekávání. Zásluhu za naši vyspělost má výhradně náš vyšší věk a možná únava z flame wars.