Questo è il mio primo howto, non a caso è un micro howto e spero vi piaccia in
caso contrario come disse il grande Hitchcock: proverò a fare meglio la prossima volta.
Voglio cercare di essere il più sintetico possibile in modo che chi voglia
encodare divx sotto linux o *BSD lo possa fare velocemente senza leggersi troppi
documenti. Del resto non tutti hanno il tempo di studiare decine di pagine.
Per quanto concerne l'encoding divx vi è da dire che l'intera procedura è suddivisa in varie fasi. La prima è il ripping, ossia copiare il film dal dvd sul nostro hard disk. La seconda è l'encoding audio, cioè l'estrazione della traccia audio dal file appena copiato e la sua compressione in un file a parte. La terza è l'encoding video (suddiviso i due fasi) che si occuppa di estrarre la traccia video dal file rippato per comprimerla e "fonderla" con la traccia audio estratta e compressa precedentemente.
Questo è un mini howto, mini in quanto l'obiettivo è quello di introdurre un utente linux o BSD al mondo del divx in modo semplice e veloce, per nulla tecnico e approfondito.
$ vobcopy -i /dev/dvd -l -o /mnt/molto_spazio/
Sintassi:-i :serve per indicare dove sta il dvd, se avete linkato il vostro dvd /dev/dvd a /dvd potete anche omettere questa opzione.
-l :questa opzione serve a rippare il film in un file unico, consiglio di usare sempre questa opzione perchè è molto difficile riunire duo o + file (vob o divx) in un file unico mentre è molto facile da uno spezzarlo in più parti.
-o /mnt/molto_spazio :indica la directory in cui scrivere il file, tenete conto che vi serviranno minimo 3 giga di spazio per i film piu' tranquilli, e 5 giga per un film medio (la gran parte dei film vogliono 5 giga)
# mencoder -ovc copy -oac copy -aid 128 -dvd 1
-ovc copy e -oac copy servono a copiare lo stream audio e video dal dvd (-dvd 1)Ok abbiamo il nostro file vob nella directory /mnt/molto_spazio/ da cui bisogna estrarre la traccia audio in italiano (se navete usato vobcopy) e comprimerla in mp3. Questo puo' essere fatto abbastanza velocemente. La riga di comando è la seguente:
$ mencoder -ovc frameno -o frameno.avi -oac mp3lame -lameopts abr:br=128 -aid 128 IL_GIOCATORE1-1.vob
Sintassi:
-ovc frameno - ovc significa output video codec, e sta ad indicare il codec video
usato. In questo caso frameno è un codec fittizio e serve solo a dire a mencoder
che stiamo estraendo l'audio. Nota bene che devi per forza usare la dicitura
"frameno".
-o frameno.avi - questo è il file di out che viene scritto, anche qui devi usare per forza frameno.avi in quanto la traccia audio quando verra' inserita nel video (cioè durante la codifica video a due passaggi) verra' letta come file frameno.avi dalla directory in cui ti trovi.
-oac mp3lame - indica a mencoder che vogliamo usare come output audio codec l'mp3 del tool lame (che deve essere installato nel sistema).
-lameopts abr:br=128 - queste sono le opzioni per l'encoding dell'mp3 che vengono passate a lame. L'abr significa che l'mp3 sara' average bitrate, cioè il bitrate dell'mp3 non sara' costante ma cambiera' in base alle circostanze, ma si manterra' in media attorno ai 128kbits (br=128).
-aid 128 - questa opzione vi puo essere molto utile quando non riuscite a trovare lo stream audio in italiano. Il mio consiglio è quello di andare per tentativi, cioè il primo stream è sempre 128 se questo è in inglese provate 129 e cosi via finchè non trovate l'italiano. Fate molta attenzione perchè rischiate di encodarvi un divx in inglese o in un altra lingua. Il modo piu' veloce di verificare è provando con mplayer -vo x11 -ao oss -aid 128(o 129 o 130 ecc) FILM.vob.
IL_GIOCATORE1-1.vob :questo ovviamente è il file vob da cui estrarrete l'audio.
$ mplayer -vo x11 -ao oss -vop cropdetect FILM.vob
E così vedrete sulla linea di status di mplayer le coordinate precise per croppare il film. Dato che spesso variano a seconda che stiate guardando l'inizio o meno del film vi suggerisco di posizionarvi a film già iniziato. A questo punto sulla linea di status vedrete qualcosa di simile a questo:$ mplayer -vo x11 -ao oss -vop rectangle=682:568:22:2 FILM.vob
E poi vederla croppata:
$ mplayer -vo x11 -ao oss -vop crop=682:568:22:2 FILM.vob
# mencoder -o /dev/null -oac copy -ovc lavc -vop scale=640:360,crop=720:552:0:12 -lavcopts vcodec=mpeg4:vbitrate=896:vhq:vqmin=2:vqmax=31:vpass=1 -sws 2 SKULLS21-1.vob
Sintassi:-o /dev/null - Questo sarebbe il primo file di output, ma come vi ho detto prima conviene risparmiare risorse, specialmente se mentre encodate avete intenzione di fare altro. Questo per la cronaca.. io con il mio biprocessore 433 mentre encodavo, masterizzavo e guardavo un divx.
-oac copy - Quest'opzione serve semplicemente a copiare il file dell'audio estratto prima nel video.
-ovc lavc - Quest'altra opzione indica a mencoder quale codec utilizzare, in questo caso il mitico lavc (libavcodec) cioè un codec open source compatibile con divx, taluni sostengono che sia oltre che qualitativamente superiore al divx anche più veloce nella fase di encoding. Io ho sempre usato questo e mi trovo molto bene :-)-vop scale=640:360,crop=720:552:0:12 - Qui c'è solo da dire due cose: la prima è che del crop (crop=720:552:0:12) se n'è già parlato quindi non c'è nulla da aggiungere. La seconda che c'è da parlare dello scaling (scale=640:360). Cioè del ridimensionamento del filmato. Dato che generalmente l'aspetto e' di 16/9 (sedici noni) basta moltiplicare la risoluzione orrizzonaltale per l'aspect (in questo caso 16:9 = 1.777778). E cioè 640:16/9=360.L'aspect lo trovate nell'output di mplayer.
-lavcopts vcodec=mpeg4:vbitrate=896:vhq:vqmin=2:vqmax=31:vpass=1 - Queste sono le opzioni del lavc. Con vcodec=mpeg4 indichiamo a lavc che il codec è mpeg4 ossia divx, Con vbitrate il bitrate che setteremo secondo il consiglio all'output che abbiamo avuto al momento dell'estrazione e compressione della traccia audio. Con vhq (very high quality) indichiamo una compressione ad alta qualita'. Mentre con vqmin e vqmax indichiamo il valore minimo e massimo di quantizzazzione. Cos'è la quantizzazzione ? In pratica è un valore che indica la compressione in rapporto al bitrate impostato. Più la quantizzazzione sarà vicino a 2 (per esempio vqmin=2:vqmax=4) minore sarà la compressione e maggiore la qualità del video ma anche maggiore la dimensione del file, viceversa più sarà vicino a 31 (vqmin=27:vqmax=31) maggiore sarà la compressione e minore la qualità del video ma anceh minore la dimensione del file finale. In questo caso lascio a mencoder un ampio intervallo di decisione cosi che possa tralasciare la qualità laddove il filmato presenta punti che non necessitano di eccessiva cura. Ok passiamo a vpass=1 che semplicemente indica il primo passaggio dell'encoding.
-sws 2 - Questo riguarda la qualità dello scaling. Le opzioni principali sono 0 (bilineare veloce,default), 1 (bilineare), o 2 (bicubico). Ho scelto bicubico perchè risulta, benchè molto piu' lento, quello che permette di ottenere una qualità maggiore. Tuttavia nelle guide generalmente viene consigliato il bilineare (-sws 1)
# mencoder -o il_vostro_film.divx -oac copy -ovc lavc -vop scale=640:360,crop=720:552:0:12 -lavcopts vcodec=mpeg4:vbitrate=896:vhq:vqmin=2:vqmax=31:vpass=2 -sws 2 SKULLS21-1.vob