-[Experiences]-

  • Uno - Encoding di Hard Night di David Veloz con Ben Stiller (settare l'aspect senza scaling).
  • Due - Encoding di People I know di Daniel Algrant con Al Pacino e Kim Basinger (encodare con ogg vorbis + qualche chicca per un encoding di qualità).
  • Tre - Encoding di Sex Files (encodare dvd interlacciati).
  • Quattro - Encoding di Trappola Criminale (comparazione encoding tra FreeBSD e Linux).

    -[FreeBSD Links]-

  • http://www.gufi.org Gruppo Utenti FreeBSD Italia.
  • http://www.freebdi.org Il sito di Droid, veramente ottimo e con molti articoli interessanti.
  • http://www.freebsd.org Il sito Ufficiale di FreeBSD.
  • -[Linux Links]-

  • http://www.linuxdesktop.it Ottimo sito su Linux.
  • -[Encoding Links]-

  • kmencoder Si tratta di un front-end a mencoder. Purtroppo su FreeBSD non e' ancora stato portato.
  • AcidRip Un front-end in perl-gtk (funza anche sotto FreeBSD).
  • ogmencoder Uno script in perl per encodare divx usando ogg vorbis.



  • DVD Ripping-Mencoder Mini HOWTO

    Versione 1.0, 17 settembre 2002

    Toltec@lycos.it


    Come rippare un dvd in modo facile e veloce.

    1. Introduzione.

    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.

    2. Prerequisiti minimi.

    2.1. Software.

    Vi servono i seguenti software:
  • vobcopy (opzionale)
  • mencoder/mplayer (fondamentale!!)
  • 2.2. Hardware.

  • Pentium II 433
  • 64 MB di ram
  • Scheda video da 4 mega
  • 2.3. Cognitivi.

  • Conoscenza di base di mplayer

  • 3. Fase UNO: rippaggio.

    Per rippare il film dal dvd possiamo usare due tool: vobcopy che è il più semplice o mencoder un po' piu' complesso ma sicuramente maggiormente affidabile e duttile.

    3.1. Usando vobcopy

    La seguente linea di comando serve a rippare (per i piu' lamer decriptare e copiare il film) da dvd sull'hard disk.
    Eccola:

    $ 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)

    3.2. Usando mencoder

    In questi ultimi tempi mi sono accorto che vobcopy non è molto funzionale infatti non è riuscitto a craccare un title di un film e quindi ho dovuto usare per forza mencoder. Poi però mi sono reso conto che mencoder è migliore in quanto puoi subito estrarre la traccia audio in italiano e risparmiare spazio su disco. Mentre con vobcopy ti tocca oltre che copiare lo stream video anche gli stream audio delle varie lingue. Un sacco di spazio sprecato. Una lineda di esempio potrebbe essere.

    # 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)
    -aid 128 è molto importante serve a estrarre la traccia audio in italiano. Per ulteriori dettagli date un'occhiata alla stessa opzione spiegata nella fase dell'encoding video.


    4. Fase DUE: encoding

    Questa è la parte piu' delicata. Prima vi faro' una semplice e veloce introduzione teorica poi passeremo a qualche esempio e alla spiegazione della sintassi dei comandi. Ovviamente per l'encoding useremeo mencoder che ha due sistemi: noi useremo l'encoding a 2 passaggi anzichè quello a 1 passaggio. Il 2 pass encoding puo' confondere le idee perchè in realta' i passaggi sono TRE: uno per l'audio e due per il video. Viene chiamato cosi perchè ovviamente la tecnica si riferisce al numero di passaggi video. E sono due perchè il primo serve oltre che a fare una prima compressione anche a raccogliere una serie di dati utile ad una compressione ottimizzata nel secondo passaggio.

    4.1. Encoding Audio

    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.


    Alla fine dell'encoding audio otterrete un output simile al seguente:

    Pos:5521.7s 276082f ( 0%) 120fps Trem: 0min 0mb A-V:-0.029 [0:115]
    Writing AVI index...
    Fixup AVI header...
    Recommended video bitrate for 650MB CD: 858
    Recommended video bitrate for 700MB CD: 934
    Recommended video bitrate for 800MB CD: 1086

    Video stream: 0.800 kbit/s (99 bps) size: 552168 bytes 5521.680 secs 276082 frames

    Audio stream: 115.030 kbit/s (14378 bps) size: 79402344 bytes 5522.184 secs


    Si tratta del bitrate consigliato a seconda che vogliate ottenere un divx da 650, 700 o 800 mega. Segnatevi il bitrate desiderato perchè vi servirà in seguito per l'encoding video.

    4.2. Encoding Video

    4.2.1 Il Cropping

    Vi parlerò del cropping perchè a mio avviso non si può prescindere da questo per encodare un buon divx. Che cos'è il cropping ? Beh è molto semplice, si tratta dell'operazione di ritagliare il film escludendo i bordi neri in alto e/o ai lati. Il cropping viene fatto generalmente per risparmiare spazio risultante nel file finale e tempo durante la procedura di encoding. Ora il problema è sapere le coordinate precise per poter ritagliare il film, ma naturalmente il nostro fantasmagorico mplayer farà tutto per noi. Vi basterà un bel:

    $ 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:
    crop area: X: 21..703 Y: 1..569 (-vop crop=682:568:22:2) 4.1% 617 0 0%
    potrete quindi vedere col seguente comando l'area da croppare disegnata, verificando se è più o meno precisa:

    $ 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

    4.2.2. Encoding Video pass 1

    OK, in questa fase in pratica verrà fatto un primo encoding video che comunque sarà visibile ma non della migliore qualità nel frattempo l'encoder raccoglierà dei dati che gli serviranno per ottimizzare l'encoding del secondo passaggio. Se si effettua questo tipo di encoding cioè appunto quello a due passaggi è convenienti evitare di scrivere sul disco per risparmiare risorse. Vi scrivo subito un esempio di una buona linea. La seguente è quella che ho usato per encodare The Skulls 2.

    # 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)

    4.2.2.1. Qualche dettaglio in più

    Ci sono altre due opzioni molto utili da utilizzare *prima* dell'encoding vero e proprio per verificare la qualità video del filmato facendone un semplice preview di pochi minuti. E sono: -ss 00:00 e -endpos 03:00. La prima significa la partenza dal quale inizia a encodare, nell'esempio esattamente dall'inizio del film. La secondo non indica il punto assoluto dove fermarsi ma quanto tempo devo durare l'encoding partendo dai valori settati in -ss. Una volta fatto un preview di 03 minuti e verificato che la qualità vi soddisfi potrete togliere queste due opzioni e lasciare che mencoder codifichi il film per tutta la sua durata.

    4.2.3. Encoding Video pass 2

    Qui non c'è un gran che da dire in quanto il secondo passaggio è tale e quale al primo meno che per l'opzione vpass=1 che ovviamente sarà vpass=2 e per l'ozione -o /dev/null che sarà -o il_vostro_film.divx .
    In soldoni:

    # 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


    5.0 Ulteriori Risorse

  • DVDripping4linux howto. Il dvd ripping 4 linux howto, ossia il più grosso documento esistente sul dvd ripping in ambiente linux scritto da Moris Bunkus.
  • DVDripping4linux howto. La traduzione in italiano del DVDripping4linux howto effettuata da Marco Vigogna.
  • benis.it. Un sito in italiano estremamente ben fatto dove trovare ottima documentazione sufficientemente astratta e non esclusivamente orientata a windows.
  • doom9.org. Il sito per eccellenza sull'encoding di divx.