Hlavní navigace

DVD -> avi komprimace pomocí mencoderu

Adam Sadílek

3-pass encoding DVD filmů do AVI mencoderem. Popíši svůj obvyklý způsob konverze filmu z DVD do .avi. Možnosti mencoderu jsou obrovské, proto vyzývám, abyste se o své zkušenosti podělili v diskusi.

Příkazy fungují s MPlayer 1.0pre5–3.2.2 (oproti starším verzím se syntax mplayeru trochu liší). Mencoder je součástí MPlayer distribuce.

Předpokládám, že máte nainstalovány a při instalaci mplayeru aktivovány potřebné kodeky – alespoň lameMP3a DivX5. Dále device nebo symlink /dev/dvd vedoucí k DVD mechanice.

Používám tzv. 3-pass encoding. Protože se slovo pass používá i k odkazování na jednotlivé video-only průchody, budu používat slovo průchod k označení jednoho ze tří průchodů (audio->video 1st pass->video 2nd pass) a pass k označení jednoho ze dvou video-only passů. Tříprůchodový encoding znamená, že na první průchod komprimuji audio, na druhý 1st-pass video, na třetí 2nd-pass video. Výhoda spočívá hlavně v možnosti přesně nastavit bitrate videa (aby se vešlo na vybrané médium), jakmile víme velikost audia (což se při VBR těžko předem odhaduje). Sekundární výhoda je, že když systém během ripování spadne, nemusíme již dokončené průchody opakovat (toto ovšem většinou na GNU/Linuxu není problém). Mnou uvedené příkazy v tomto článku berou data rovnou z DVD disku; pokud to někomu nevyhovuje, může si film nejdříve zkopírovat na pevný disk a ke všem příkazům přidat

-dvd-device /cesta/k/VOBům

0. Vybrat si, který title z DVD ripovat.

mplayer -v dvd://k

kde k je číslo title (v příkladech používám číslo 1). Díky -v (verbose) hned zjistíte, jaké jazyky a titulky jsou na disku, a jejich příslušné ID.

1. První průchod: Audio

Po skončení tohoto průchodu bude v aktuálním adresáři soubor frameno.avi, který obsahuje pouze audio data a na konci se spojí se souborem obsahujícím pouze video data získaným během druhého a třetího kroku.

Nejdříve se ujistíme, že před startem neexistuje soubor frameno.avi

rm frameno.avi

a spustíme samotnou audio komprimaci

mencoder dvd://1 -ovc frameno -oac mp3lame -lameopts abr:br=112:aq=0:mode=1 -o frameno.avi 

-ovc určuje video kodek, seznam získáte pomocí mencoder -ovc help, v tomto případě je použito „frameno“ pro vytvoření speciálního audio-only souboru, -oac určuje audio kodek, zde LameMP3.

Pomocí -lameopts se definují parametry LameMP3:

Ve výše uvedeném příkazu je použito abr (average bitrate – komprimuje do variabilního bitratu, ale snaží se udržet průměrný bitrate na uvedené hodnotě – v tomto případě 112 kbps). Místo abr lze použít cbr (constant bitrate) – zbytečné, pokud nehodláte avi dále editovat. Při editaci avi s variabilním audio bitratem jsou problémy se synchronizací audia-videa. Třetí možnost je vbr (variable bitrate), kde není předem zaručen žádný konktrétní bitrate a místo parametru br= se udává kvalita q=k, kde k je celé číslo z intervalu od 0 (nejvyšší) do 9 (nejnižší). Hlavně kvůli vbr používáme tříprůchodový rip. Po dokončení audio komprese mencoder vypíše doporučené bitraty pro různá cílová média. V kroku 2. a 3. doporučuji nastavit vbitrate= na o něco nižsí hodnotu, než mencoder doporučuje (radši si to spočítejte sami – od kapacity média odečtěte velikost frameno.avi a řekněme 5–10 megabytů a vydělte délkou filmu). Zdá se totiž, že mencoder nepočítá s patičkou avi souvoru, která v případě dvouhodinového filmu může přidat až deset megabytů.

aq= (algorithmic quality) udává kvalitu a rychlost komprese: celé číslo od 0 (nejvyšší kvalita) do 9 (nejnižší kvalita)

mode=

možnosti jsou:

    0    stereo
    1    joint-stereo
    2    dualchannel
    3    mono

-o určuje výstupní soubor, pro následující kroky je nutné, aby se jmenoval frameno.avi

2. Druhý průchod: 1st-pass video

Nyní máme v aktuálním adresáři soubor frameno.avi s hotovým audiem a máme spočítaný bitrate pro video. Jdeme udělat first-pass videa.

mencoder dvd://1 -vf pp=lb:c,scale=800:340,crop=784:240 -zoom  -ovc lavc lavcopts vcodec=mpeg4:vbitrate=700:v4mv:vhq=4:vpass=1 -oac copy -sws 2 -o film.avi 

Za -vf následují video filtry:

pp
Deinterlacing
scale
Nastavení rozlišení, potažmo poměru stran.
crop
Pro oříznutí černých pruhů. Hodnoty crop = výsledné rozlišení videa. V tomto případě mencoder ořízne 8 pixelů zprava i zleva a 50 pixelů zeshora i zezdola (defaultně se ořezává symetricky ze středu videa). Pro nalezení optimálních hodnot můžete použít buď pokus-omyl na kousku vyripovaného videa (přerušit konverzi Control-C a otevřít avi), video filtr cropdetect (snaží se automaticky najít zbytečné okraje), nebo video filtr rectangle, který vykresluje čáry v místě potenciálního oříznutí. Detaily v man mencoder.

argument -zoom je nutný, aby se provedlo softwarové scalování (parametr scale=)

-ovc nastavuje video kodek. U mě jsou možnosti:

raw
uncompressed video. Use fourcc option to set format explicitly.
nuv
nuppel video
divx4
divx4linux/div­x5linux library (depends on configuration)
lavc
libavcodec codecs – best quality!
vfw
VfW DLLs, currently only AVID is supported.
qtvideo
QuickTime DLLs, currently only SVQ1/3 are supported.
xvid
XviD encoding

Používám lavc s parametry lavcopts.

vcodec=mpeg4
enkódujeme s DivX 4/5 (záleží na tom, co máte nainstalováno)
vbitrate=700
průměrný video bitrate nastaven na 700 kbps (dosaďte vámi spočítanou hodnotu)
v4mv
přesnější předpovídání pohybu – o něco lepší kvalita
vhq=4
nejvyšší kvalita enkódování (0 je nejnižší kvalita)
vpass=1
jedeme první video pass
-oac copy
audio pouze kopírujeme z frameno.avi (který mencoder hledá v aktuálním adresáři)
-sws 2
nastavuje kvalitu/rychlost softwarového scalování, v tomto případě bicubic
-o
jméno výstupního souboru

3. Třetí průchod: 2nd-pass video

Máme hotový soubor film.avi. Pokud jste spokojeni s jeho kvalitou, můžete zde skončit. Pokud budete pokračovat, v tomto posledním kroku-průchodu uděláme druhý pass videa. V aktuálním adresáři byste měli mít soubor divx2pass.log vytvořený v minulém kroku, který obsahuje informace nutné k provedení druhého passu.

mencoder dvd://1 -vf pp=lb:c,scale=800:340,crop=784:240 -zoom  -ovc lavc lavcopts vcodec=mpeg4:vbitrate=700:v4mv:vhq=4:vpass=2 -oac copy -sws 2 -o film.avi 

Vše nezměněno oproti kroku 2, až na vpass=2.

4. Konec

Po dokončení třetího průchodu máme soubor film.avi, kde je video enkódováno v DivXu a audio v MP3.

5. Poznámky na závěr

Rychlost:

Na mém AthlonXP@1900+ Mhz, 512 MB RAM trvá ripování filmu zhruba dvojnásobek jeho délky. Doporučuji se po odladění outputu přepnout např. do runlevelu 3, aby desktop a Xka zbytečně nebraly tiky. Na druhou stranu pokud chcete během ripování s počítačem pracovat, můžete nastavit pomoci příkazu `nice' mencoderu nižsí prioritu.

Ripování různých audio kanálů:

Stačí v prvním průchodu přidat argument -aid k, kde k je celé číslo >=133 Seznam audio kanálů uvidíte, když spustíte mplayer s argumentem -v (mplayer -v dvd://1). Můžete jich naripovat několik, vyextrahovat z frameno.avi jako .mp3 soubor a pak pomocí mplayer -audiofile audio.mp3 film.avi vybírat, který kanál chcete slyšet.

Ripování pouze části filmu:

Pro omezení zleva -ss 00:20:10, pro omezení zprava -endpos 01:20:10. -endpos lze zadat i jako velikost (-endpos 700mb), což se hodí, když se film nevejde na CD o pár magabytů a titulky lze oželet. Použijte

mencoder -oac copy -ovc copy -endpos 700mb film.avi -o film_700mb.avi 

Takto lze zkracovat i filmy s variabilním audio bitratem bez rozhození a-v syncu. Mencoder opět nepočítá s AVI patičkou.

Výstupní framerate:

Argumentem -ofps se nastavuje framerate avi souboru. Čím nižší hodnota, tím rychlejší ripování a kvalitnější jednotlivé framy, ale větší trhanost. Osobně považuji hodnoty >25 za zbytečné, na některé typy filmů mi stačí 18 fps.

Pokud -ofps použijete, nelekejte se neustálého vypisování skipping frame a přepněte se do jiné konzole, ať vykreslování hlášek nezdržuje ripování.

Hraní si s parametry video kodeku:

Mezi -lavcopts obvykle přidávám následující osvedčené hodnoty:

vlelim=-4:vcelim=9:lumi_mask=0.01:dark_mask=0.01:vqcomp=0.8:vqmin=2:vqmax=31 

Takže příkaz vypadá:

mencoder dvd://1 -vf pp=lb:c, scale=800:340, crop=784:240 -zoom -ovc lavc -lavcopts vcodec=mpeg4: vbitrate=700: v4mv: vhq=4: vpass=1: vlelim=-4: vcelim=9: lumi_mask=0.01: dark_mask=0.01: vqcomp=0.8: vqmin=2: vqmax=31 -oac copy -sws 2 -o film.avi 

(Pozn. red: mezery za dvojtečky přidány kvůli sazbě –Johanka)

Druhý pass to samé, až na vpass=2.

Našli jste v článku chybu?

8. 2. 2009 23:48

cepela (neregistrovaný)
Ahoj, tak sem se pokusil o prevod DVDcka dle tohoto navodu. Kupodivu se po par komplikacich vse podarilo, konecna velikost je 1200MB i kvalita videa je dobra, jen mi to orizlo 20% videa nahore a 20% videa dole, takze z toho mam uzkou nudli coz me docela stve. Nevite cim by to mohlo byt a jak to tedy udelat spravne?
Diky

25. 3. 2007 21:58

oliberius (neregistrovaný)
ten kdo má KDE může zkusit k9copy k nalezení na http://k9copy.sourceforge.net/
DigiZone.cz: Velká cena v Abú Dhabí: 131 ti­síc diváků

Velká cena v Abú Dhabí: 131 ti­síc diváků

Podnikatel.cz: Podnikatelům dorazí varování od BSA

Podnikatelům dorazí varování od BSA

120na80.cz: Horní cesty dýchací. Zkuste fytofarmaka

Horní cesty dýchací. Zkuste fytofarmaka

Měšec.cz: Zdravotní a sociální pojištění 2017: Připlatíte

Zdravotní a sociální pojištění 2017: Připlatíte

Měšec.cz: Kdy vám stát dá na stěhování 50 000 Kč?

Kdy vám stát dá na stěhování 50 000 Kč?

Vitalia.cz: Paštiky plné masa ho zatím neuživí

Paštiky plné masa ho zatím neuživí

Vitalia.cz: Láska na vozíku: Přitažliví jsme pro tzv. pečovatelky

Láska na vozíku: Přitažliví jsme pro tzv. pečovatelky

120na80.cz: Na ucho teplý, nebo studený obklad?

Na ucho teplý, nebo studený obklad?

Měšec.cz: Stavební spoření: alternativa i pro seniory

Stavební spoření: alternativa i pro seniory

Měšec.cz: Air Bank zruší TOP3 garanci a zdražuje kurzy

Air Bank zruší TOP3 garanci a zdražuje kurzy

Podnikatel.cz: Chaos u EET pokračuje. Jsou tu další návrhy

Chaos u EET pokračuje. Jsou tu další návrhy

DigiZone.cz: Recenze Westworld: zavraždit a...

Recenze Westworld: zavraždit a...

Vitalia.cz: Potvrzeno: Pobyt v lese je skvělý na imunitu

Potvrzeno: Pobyt v lese je skvělý na imunitu

Lupa.cz: Teletext je „internetem hipsterů“

Teletext je „internetem hipsterů“

Podnikatel.cz: K EET. Štamgast už peníze na stole nenechá

K EET. Štamgast už peníze na stole nenechá

Lupa.cz: Proč firmy málo chrání data? Chovají se logicky

Proč firmy málo chrání data? Chovají se logicky

Lupa.cz: Insolvenční řízení kvůli cookies? Vítejte v ČR

Insolvenční řízení kvůli cookies? Vítejte v ČR

Vitalia.cz: Jsou čajové sáčky toxické?

Jsou čajové sáčky toxické?

Vitalia.cz: Pamlsková vyhláška bude platit jen na základkách

Pamlsková vyhláška bude platit jen na základkách

Měšec.cz: mBank cenzuruje, zrušila mFórum

mBank cenzuruje, zrušila mFórum