rippare un dvd con mencoder da linea di comando

Sul Web ci sono moltissime guide che spiegano come rippare un dvd.
Questa è la mia personale ricetta basata su mencoder, facendo esclusivamente uso di tools avviabili da riga di comando, usando una Ubuntu Linux Box.
Come prerequisito installare mencoder .
A questo punto inserire il dvd che si intende rippare, individuare il capitolo con il comando “lsdvd”.

# lsdvd -v

( lsdvd è una utility su linea di comando che mostra la struttura di un dvd, ovvero informazioni dettagliate sulle tracce video/audio in esso contenuti).

lsdvd ci farà vedere i capitoli di cui è composto il dvd.
Una volta scelto quello che ci interessa (ammettiamo il capitolo 11), proviamo a vederlo con il comando:

# mplayer dvd://11

Se il capitolo è quello giusto, con questo comando tiriamo fuori informazioni dettagliate sul capitolo ( lingue e sottotitoli disponibili)

# mplayer dvd://11 -frames 0 -identify
...
Playing dvd://11.
...
There are 31 titles on this DVD.
There are 29 chapters in this DVD title.

There are 1 angles in this DVD title.
audio stream: 0 format: ac3 (stereo) language: it aid: 128.
audio stream: 1 format: ac3 (stereo) language: es aid: 129.
...
audio stream: 3 format: ac3 (stereo) language: en aid: 131.
...
subtitle ( sid ): 0 language: en
...
subtitle ( sid ): 2 language: it
subtitle ( sid ): 3 language: es
...
subtitle ( sid ): 7 language: en

Rilanciamo mplayer scegliendo l’audio id (aid) ed eventualmente i sottotitoli che ci interessano
Esempio.

# mplayer dvd://11 -dvd-device /dev/dvd  -aid 130 -sid 7
# mplayer dvd://11 -aid 128
....
Movie-Aspect is 1.78:1 - prescaling to correct movie aspect.
VO: [xv] 720x576 => 1024x576 Planar YV12
....

E’ importante leggere il rapporto d’aspetto che utilizzeremo successivamente per il resize.

A questo punto rippiamo il dvd con questo comando.


mencoder dvd://11 -nosub -aid 128 -oac mp3lame -lameopts abr:br=128 -ovc lavc -lavcopts vcodec=mpeg4:vhq:v4mv:vqmin=2:vbitrate=1536 -vf pp=de,scale=1024:576 -o dvdrip.avi

Se volete fare il rip con un size più piccolo l’importante è mantenere le giuste proporzioni.
Esempio da 1024×576 a 512×288 dividendo entrambe le dimensioni per 2.

Una volta scelte le proporzioni, orientativamente per il bitrate si può partire da questa tabella

Risoluzione kbps KBytes/min
320×240 400 3
480×270 700 5
1024×576 1500 11
1280×720 2500 19
1920×1080 4000 30

Un’altro sistema è utilizzare il metodo del Kush gauge

pixel_count x frame_rate * motion_factor x 0.07 ÷ 1000 = bit rate in kbps
(frame width x height = pixel count) and motion factor is 1,2 or 4
1=low motion , 4=high motion

Esempio per un video 1024×576 (16/9), assumendo motion factor=2

1024*576*25*2*.07/1000 = 2064.384

Giocando con i parametri di mencoder si può produrre qualsiasi formato, nell’esempio faccio un mpeg4, fruibile dalla maggior parte dei lettori multimediali.

Se il volume è troppo basso possiamo applicare il filtro audio che alza il volume

-af volume=10:1
dove 10=db di guadagno e 1= soft clipping
Per maggiori info
mplayer -af help
man mplayer e cercare af ( RTFM :D )

Se il file prodotto ha l’audio e il video che non sono sincronizzati, è possibile correggerli usando
avisync.
Usare valori negativi per il parametro n se il suono si sente prima dell’azione.
Se il suono si sente dopo l’azione usare valori positivi.

# avisync -i dvdrip.avi -o s.avi -n 3 

Fate diverse prove fino a trovare l’ottimo.

Se avete mplayer con il supporto dvdnav, potete usare dvdnav:// al posto di dvd://

Riferimenti