Na následujících řádcích se pokusím shrnout své zkušenosti při přetahování filmů
z DVD na CD. V Linuxu jsem jen o něco více než BFU, takže místy to budu psát
polopatě jako "pro blbečky" :o)
Původně jsem začínal s MPlayerem verze 0.90rcX. S příchodem verze 1.0preX se nám tochu
změnila syntaxe, takže si dejte pozor, kterou verzi vlastně používáte. V textu na
rozdíly upozorním.
MPlayer resp. MEncoder představuje poměrně komplexní nástroj pro DVD-ripping. Oproti tomu, s čím jsem se setkal na Windows platformě, je to stabilní, výkonný, jednoduchý a kompaktní nástroj. S jedou výjimkou - titulky. Tady shledávám zatím nedostižným win-soft SubRip (od verze 1.06). Už delší dobu však pracuju na vlastním programu (skript pro PERL), který by se tomuto vyrovnal alespoň co do funkčnosti.
Instalací MPlayeru/MEncoderu se už zabývaly jiné články. Abych pravdu řekl, moc mi nepomohly :o) Trápil jsem se s tím tři večery za vydatné pomoci nejmenované osoby... Od té doby si MPlayer a potažmo MEncoder vždy kompiluju sám. Pokud jde o hardware, pak mám k dispozici Pentium4 1.8 GHz, 768MB RAM, HDD Seagate IV 120GB 7200 RPM s 8MB Cache a grafiku Matrox G550 DualHead.
Těm, kteří chtějí dostat ze svého počítače maximum, doporučuji MPlayer kompilovat. Rozdíl je opravdu znatelný zvláště na starších/slabších strojích.
Nejdřív musíme zjistit, co vlastně chceme ripovat. DVD obvykle obsahuje více titulů, více pohledů, více zvukových stop, více titulků. K tomu použijeme MPlayer, např.:
mplayer dvd://1 -aid 128 -sid 0Parametry:
Změna syntaxe | |
verze 0.9 | verze 1.0 |
-dvd 1 | dvd://1 |
Mplayer pouštím zásadně z konzoly, takže se tam vypisuje spousta užitečných informací. Dá se rovnou zjistit, jakými audio, video stopami a titulky DVD film disponuje, ale já dávám přednost metodě systematického prohledávání :o) Pak jistě vidím a slyším, co budu ripovat. Občas narazíte na různé chuťovky, jako třeba u Tmavomodrého světa, který je sice v češtině, ale má pasáže v angličtině a němčině. Pak se musí vybrat ty správné české titulky - jedny tam jsou jen na cizojazyčné pasáže a druhé české běží pořád, i v česky mluvících sekvencích. Takže si vždycky prohlídněte film na více místech - nejlépe celý - předem :o)
Většina DVD je uložena v rozlišení 720x576 pixelů. MPEG2 (DVD video formát) má schopnost uchovávat informaci o tzv. aspect ratio (AR), což je zjednodušeně poměr stran. Pro PAL/TV je to 4:3 (1.3333), jinou možností je "kino-formát" 16:9 (1.7777). S jinými hodnotami jsem se zatím nesetkal. V praxi to znamená, že pokud má film AR 1.3333, tak se obraz před zobrazením přepočítá na 768x576, pro 16:9 je to 1024x576. Mplayer to při přehrávání zajišťuje automaticky a korektně (dá se ovšem přinutit ke špatnému AR), MEncoder však zripuje video do formátu 720x576 a obraz bude deformovaný; přes přepínač -aspect 4:3 či -aspect 16:9 pak můžete pro AVI soubory MPlayeru napovědět správné AR, ale ve winech už budou lidi potit krev :o)
Jak si na tom příslušný DVD titul stojí s AR zjistíme z konzoly. Nad řádkem, na kterém běží aktuální pozice přehrávání a další informace, je celá řada údajů. Pro AR hledejte řádek s "aspect ratio" / "poměr stran" nebo VO: [xv] 720x576 => 768x576 (1,33:1) a tak podobně.
POZOR! Ačkoli to nebývá běžné, na některých DVD je obraz uložen v prokládané podobě - interlaced. Tak, jak to má ráda televize, takže se to na ní neprojeví, ale na počítači budete mít na monitoru obraz zubatý, zejména v rychlých pasážích. Setkáte se s tím zejména u DVD se záznamy z koncertů. Na to samozřejmě MPlayer a MEncoder pamatuje a máme tu volbu -vf lavcdeint. Viz Pár tipů ke konci článku.
Změna syntaxe - pozor na pořadí filtrů! | |
verze 0.9 | verze 1.0 |
-vop filtr2,filtr1 | -vf filtr1,filtr2 |
Novější DVD tituly už mají audio ve více než dvou kanálech - Dolby Digital [Surround Sound] může mít až 5+1 kanálů. Pokud ale chceme převádět DVD na CD jako AVI video soubor, pak nejspíš ke kódování zvuku použijeme MP3 a ten zvládá standardně max. stereo - dva kanály. Některé z DVD titulů obsahují i stopu Dolby Stereo jako alternativu k Dolby Digital. Tato stopa je hlasitější a plnější při poslechu přes stereo soustavu, protože při stopě Surround Sound vám ve stereo aparatuře běží jen přední levý a pravý kanál (záleží, jak software "namixuje" surround do sterea).
Různé audio stopy si vyzkoušíme pomocí přepínače -aid 128 či -aid 129 atd. Po každém spuštění MPlayeru s tímto parametrem se jako vždy vygeneruje několik (dost) info řádků. Prohledejte je a najděte si ten, kde je něco jako AC3: 5.1 (3f+2r+lfe) nebo AC3: 2.0 (stereo) či AC3: 2.0 (dolby) atp. Jak jste jistě pochopili, číslo po AC3: oznamuje počet kanálů audia.
Pro ripování do AVI s MP3 chceme nejlépe stereo (nikoli surround). Je možné, že na starších DVD bude audio kódováno jinou technologií než AC3 (což je starší označení pro Dolby Digital). Přitom údaje u AUDIO: či AO: oznamují už formát výstupu, nikoli formát audia na DVD.
Pro mnohé je dost překvapením, že titulky se na DVD uchovávají jako sled obrázků. Výrobce tak má plně pod kontrolou jejich vzhled, zjednodušuje se pak zobrazování i komplikovanějších fontů jako jsou např. čeština, azbuka, asijské jazyky atp. Pro ripování to ale může být kámen úrazu.
Nejdřív si zjistěte, zda a které titulky chcete: pomocí parametru -sid 0 či -sid 1 atd. Setkal jsem se i s tím, že 0 a 1 byly stejné titulky, stejně jako 2 a 3, 4 a 5 atd.
Já osobně preferuji si nejdřív stáhnout celý DVD film na disk a pak si s ním hrát bez jakékoli další potřeby DVD disku či DVD mechaniky. Mplayer umí jednu hezkou věc a sice celý film se všemi zvukovými stopami a všemi titulky "nacpat" do jednoho souboru. Ten pak má asi 2-8 GB, podle velikosti filmu aj.
Jiné softy stahují na disk DVD do podoby mnoha .vob .ifo aj. souborů tak, jak jsou na DVD. MPlayer si hravě a automaticky poradí i s kódovanými-krypotovanými DVD tituly - ve Windows jsem musel používat jiný soft pro DVDripping/decrypting a pak další na převedení DVD videa na AVI video. A tady to máme v jednom balíčku :o) Takže zadáme:
mplayer dvd://1 -dumpstream
a počkáme podle velikosti filmu a rychlosti počítače několik desítek minut. Moje mašina pracovala u 100min filmu asi 20minut. Výsledkem bude soubor stream.dump Pokud chcete konkrétní jméno souboru, pak připojte ještě:
-dumpfile Jmeno_filmu.dumpstream
Jak vidíte, tak k tomuhle kroku nepotřebujete znát žádné aid či sid a já vlastně tímto krokem začínám. Pak můžu DVD disk vrátit do půjčovny a s dumpstreamem si hraju několik dní :o) Vždy pak jen místo dvd://1 zadáte Jmeno_filmu.dumpstream
Tip
mplayer dvd://1 -dumpstream -dumpfile Film.dumpstream -v > Film.dumpinfo
Tento povel provede vydumpování filmu z DVD na disk a do souboru Film.dumpinfo uloží (pomocí > k přesměrování standardního výstupu) podrobné informace (přepínač -v je "upovídaný" režim MPlayeru) o struktuře DVD - počet a typ zvukových stop s čísly pro -aid, počet a kód titulků s čísly pro -sid a další.
Než spustím enkódování filmu, tak se ještě jednou přesvědčím, že vím, co všechno chci mít v AV souboru:
mplayer Jmeno_filmu.dumpstream -aid 129 -sid 1
Kromě obrazu a zvuku se musíte také rozhodnout co s titulky - jestli je vložit napevno do filmu, nebo je chcete mít jako externí soubor - to asi bude preferovat většina z nás, protože pak se dá s titulky dále kouzlit a parametry pro titulky u MPlayeru jsou rozmanité - velikost, stínování, umístění kdekoli v obraze aj. Pokud je ale přece jen chcete mít ve filmu, pak to není žádná práce navíc. Jinak je musíme vyvést do externího souboru a pak ještě dále zpracovat.
Jakým kodekem chcete video enkódovat? Při jakém bitrate? V jaké kvalitě? Tohle si už musíte odzkoušet sami. Tady je pár tipů:
-ovc lavc -lavcopts vcodec=msmpeg4v2:vbitrate=900:vme=1:vhq:keyint=25 \ -vf scale=512:384
Parametry:
Z vlastní zkušenosti používám scale ke zmenšení, dosahuji při tom lepší kvality obrazu a zároveň tím i vyřeším problém s aspect ratiem. Přitom je třeba dávat pozor, aby MEncoder použil bicubic software scaling filter (bicubic precise či HQ bicubic) - ten má kvalitativně nejlepší výsledky, ale opět nám značně sníží rychlost enkódování. Zjistíme to opět z konzoly, kde i MEncoder vypisuje řadu informačních řádků. Zpravidla se použije implicitně. Pokud ne, lze jej vynutit pomocí -sws 2.
Jiný příklad, kdy enkóduju pomocí DivX4 (mpeg4) ve dvou průchodech (toto je první průchod - vpass=1)
-ovc lavc -lavcopts vcodec=mpeg4:vbitrate=900:vme=1:vhq:vpass=1 \ -vf scale=512:288
Při prvním průchodu u dvouprůchodového enkódování se vytváří jednak AVI soubor a jednak divx2pass.log soubor, ve kterém jsou informace o enkódovaném videu pro druhý průchod. Dosáhneme tak při stejném bitrate vyšší kvality než při normálním (jednoprůchodovém) enkódování. U druhého průchodu pak jen změníme parametr u vpass na vpass=2 a vše ostatní zůstane stejné. Specialitkou je pak tří průchodové (3-pass) enkódování, kdy v prvním kroku se nám do AVI souboru enkóduje pouze zvuk a druhý a třetí průchod pak zpracovávají video (dvouprůchodově). Zmatek? :o) Přečtěte si to ještě jednou. Příklad uvedu až na konci článku.
Platí tu obdobné co u videa - musíte se rozhodnout, v jaké kvalitě audio chcete. Například:
-oac mp3lame -lameopts cbr:br=64:mode=3:aq=0:vol=2
Parametry:
Pro zajištění kompatibility přehrávání i ve Windows uvádím seznam kombinací bitrate a frekvencí, kterými disponuje ve Windows běžný mp3 audio kodek Fraunhofer Proffessional. Pro změnu frekvence na 22050 Hz připojíme k řádku parametr:
-srate 22050
Frekvence u audio CD je 44100 Hz, DVD audio jde obvykle až na 48000 Hz. Pro úsporu místa lze z těchto hodnot značně slevit, frekvence 22050 Hz při bitrate 24 kBit je poslouchatelná, ale zvuk už začíná být "plechový" a nevhodný pro hudbu.
Tady budu stručný. Pokud chcete titulky vložit přímo do obrazu, do videa, a tak se zbavit možnosti volby jejich zobrazení (v čemž je MPlayer silný), pak stačí k řádku mencoder přidat identifikační číslo titulků, které jste si předtím zjistili:
-sid 2Pokud ovšem chcete mít titulky v externím textovém souboru (.sub, .srt či jiném formátu), pak vás čeká ještě hodně práce. Touto problematikou se zabývám v rámci mojeho projektu pgm2srt. Jednou možností je (pro ty, kteří mají na počítači i Windows) pomocí řádku:
mencoder Nazev_filmu.dumpstream -sid 2 -ovc frameno \ -nosound -o /dev/null -vobsubout Nazev_titulku
si vytáhnout do souboru Nazev_titulku.sub a Nazev_titulku.idx titulky č.2 ve formátu vobsub. Tenhle formát (soubor Nazev_titulku.sub) umí krásně zpracovat pod Windows program SubRip (používal jsem verzi 1.06). Jak na to v Linuxu se dozvíte v sérii mých článků k tomuto tématu.
Parametry:
Výsledné spojení parametrů pro video,audio a titulky může vypadat třeba takhle:
mencoder Nazev_filmu.dumpstream -aid 129 -sid 3 \ -o Nazev_filmu.avi -oac mp3lame -lameopts cbr:br=128:aq=0:vol=2 \ -ovc lavc -lavcopts vcodec=msmpeg4v2:vbitrate=1500:vhq:vme=1 \ -vf scale=384:288
Pro dvou průchodové enkódování:
mencoder Nazev_filmu.dumpstream -aid 129 \ -o Nazev_filmu.avi -oac mp3lame -lameopts cbr:br=128:aq=0:vol=2 \ -ovc lavc -lavcopts vcodec=mpeg4:vbitrate=900:vhq:vme=1:vpass=1 \ -vf scale=512:384 mencoder Nazev_filmu.dumpstream -aid 129 -o Nazev_filmu.avi -oac mp3lame -lameopts cbr:br=128:aq=0:vol=2 \ -ovc lavc -lavcopts vcodec=mpeg4:vbitrate=900:vhq:vme=1:vpass=2 \ -vf scale=512:384
A pro tří průchodové enkódování:
mencoder Nazev_filmu.dumpstream -aid 129 \ -ovc frameno -o frameno.avi -oac mp3lame \ -lameopts cbr:br=128:aq=0:vol=2 mencoder Nazev_filmu.dumpstream -aid 129 \ -o Nazev_filmu.avi -oac copy -ovc lavc \ -lavcopts vcodec=mpeg4:vbitrate=920:vhq:vme=1:vpass=1 \ -vf scale=512:288 mencoder Nazev_filmu.dumpstream -aid 129 \ -o Nazev_filmu.avi -oac copy -ovc lavc \ -lavcopts vcodec=mpeg4:vbitrate=920:vhq:vme=1:vpass=2 \ -vf scale=512:288
Odstranění prokládání aneb deinterlacing obrazu - starší parametr -vop požadoval video postprocesingové filtry oddělené čárkou a v opačném pořadí, tzn. že se nejdříve aplikoval filtr uvedený jako poslední. Od 1.0 verze používáme volbu -vf a v ní se už filtry uvádějí ve správném pořadí - podle příkladu níže se tedy nejprve odstraní prokládání a pak se obraz zmenší. Výsledek bude lepší, než kdybychom to udělali naopak.
mencoder ....... -vf lavcdeint,scale=512:288Místo deinterlace filtru z lavc knihovny můžeme vyzkoušet alternativní -vf pp=lb linear blend deinterlace filtr. Osobně používám lavcdeint při enkódování DVD a pp=lb při grabování z TV karty.
Rozdělení/ořezání filmu:
mencoder Zdroj.avi -ss 0:10:0 -endpos 1:20:0 -oac copy -ovc copy -o Film.aviSpojení filmů - POZOR! musí být stejné audio bitrate, video bitrate a rozměr obrazu!!!:
cat film1.avi film2.avi | mencoder - -oac copy -ovc copy -forceidx -o Film.avi
Zajímavé parametry:
To přidá pod obraz černý pruh o výšce 50 pixelů a při full-screenu se tak viditelný obraz posune více nahoru a titulky už do něj nezasahují a jejich přesnou pozici ještě můžeme doladit pomocí kláves R,T.
Pak musíte listovat v konzole řádky nahoru k začátku, abyste zjistili, kolik má DVD titulů, kolik kapitol, úhlů pohledů, kolik a jakých titulků a audio stop.
Pokud máte problémy s češtinou při zobrazování textových titulků, pak zkuste parametr -subcp. Mi to nějak nechodilo a tak to řeším tak, že do adresáře /home/uživatel/.mplayer/font nakopíruju soubory (.desc a .raw) buď fontu ISO-8859-2 nebo CP1250 podle toho, v jakém jsou titulky. Fonty pro mplayer různých kódových stránek a různých velikostí jsou ke stažení jako archivy na homepage MPlayeru.
Snažil jsem se zvolenou problematiku popsat co nejsrozumitelněji :o) Na první pohled se to může zdát složité a těžkopádné, ale po dvou třech zripovaných DVD už ani nevzdechnete po klikacích grafických nástrojích :o))
Přeji hodně zdaru a radosti z výsledné vysoké kvality.