HowTo: convertire AVI in DVD

Chissa’ quante volte vi sara’ capitato di avere un video AVI e volerlo convertire in formato DVD. Con GNU/Linux e’ una passeggiata, forse il programma piu’ famoso e’ DeVeDe, ma esistono anche altri metodi, si puo’ fare tutto ad esempio da terminale.

Espongo tre metodi: il primo con lo script Bash, il secondo con DeVeDe e altri programmi, il terzo con dvdauthor.

TerminalePRIMO METODO - Da riga di comando pero’ il procedimento e’ lungo, e puo’ risultare noioso. Per questo motivo esiste la possibilita’ di creare uno script in Bash. Vediamo come.

Prima di tutto dobbiamo procurarci i programmi necessari:
# apt-get install ffmpeg mencoder lame dvdauthor lame-extras libtwolame0 genisoimage
e’ molto probabile che gran parte di questi pacchetti siano gia’ installati sul vostro computer.

Ora dobbiamo creare lo script:
$ nano /usr/bin/avi2dvd.sh
lo creiamo nella directory /usr/bin/ cosi’ da poterlo richiamare da terminale ovunque ci troviamo.

Dentro il file appena creato ci copiamo questo:

---8<---
#!/bin/bash

output=$1
####################
# avi     Function #
####################

function avi {
    mencoder -oac lavc -ovc lavc -of mpeg -mpegopts format=xvcd -vf scale=352:196,expand=352:240,harddup -srate 44100 -af lavcresample=44100 -lavcopts     vcodec=mpeg1video:keyint=18:vrc_buf_size=327:vrc_minrate=1152:vbitrate=1152:vrc_maxrate=1152:acodec=mp2:abitrate=224 -ofps 30000/1001 -o output.mpg "$output"
}

####################
# vcd     Function #
####################

function vcd {
    ffmpeg -i output.mpg -target ntsc-dvd -aspect 4:3 output2.mpg
}

####################
# rm1mpg Function #
####################

function rm1mpg {
    rm output.mpg
}

####################
# convert Function #
####################

function convert {
    dvdauthor -o dvd -t output2.mpg
}

####################
# rmpg     Function #
####################

function rmpg {
    rm output2.mpg
}

###################
# Rename Function #
###################

function finalize {

dvdauthor -o dvd -T

}

#####################
# ISO Function      #
#####################

function image {

mkisofs -dvd-video -o dvd.iso dvd/

}

#####################
# rm2 Function      #
#####################

function rm2 {

rm -rf dvd/

}

###############
# Script      #
###############

avi ;
vcd ;
rm1mpg ;
convert ;
rmpg ;
finalize ;
image ;
rm2 ;

exit

---8<---

salviamo [Ctrl]+[o] e chiudiamo [Ctrl]+[x].

Rendiamolo eseguibile:
# chmod 777 /usr/bin/avi2dvd.sh
e proviamolo subito su un nostro video in AVI.

Se ad esempio il nostro video si trova nella directory /home/UTENTE/videoavi/ non dobbiamo far altro che aprire un terminale, spostarci nella directory giusta:
$ cd /home/UTENTE/videoavi/
e dare il comando:
$ avi2dvd VIDEO.avi

A tutto il resto pensera’ lo script. Per capire cosa faccia esattamente basta leggerlo.
Fonte: Convert AVI to DVD ISO

dvdSECONDO METODO - Ora vediamo come fare a convertire un video da AVI a DVD con DeVeDe. Prima di tutto dobbiamo installarlo:
# apt-get install devede

Adesso abbiamo due possibilita’, o usiamo DeVeDe con la versione grafica, o facciamo da riga di comando con altri programmi. Per farlo con la versione grafica, aprite semplicemente il programma:
$ devede &
e seguite l’interfaccia intuitiva.

Se invece volete cimentarvi col terminale (bravi, cosi’ vi voglio) vediamo come fare. Prima di tutto ci servono questi programmi:
# apt-get install growisofs mkisofs dvdauthor ffmpeg mencoder

Se il file che volete convertire in DVD e’ uno va tutto bene, se fossero due, e’ il caso di unirli. Un metodo puo’ essere questo:
$ cat VIDEO1.avi VIDEO2.avi > VIDEOUNITO.avi
e poi:
$ mencoder -o VIDEO.avi -noidx -oac copy -ovc copy VIDEOUNITO.avi

Sinceramente e’ un procedimento che non mi piace, in un post ne avevo indicato un altro, questo:
$ mencoder -ovc copy -oac copy VIDEO1.avi VIDEO2.avi -o VIDEO.avi

Ora che abbiamo il nostro file VIDEO.avi possiamo continuare. Cambiamo l’aspetto e la codifica del video con FFmpeg:
$ ffmpeg -i VIDEO.avi -y -target pal-dvd -sameq -aspect 16:9 VIDEO.mpg
lo stiamo codificando nello standard PAL.

Ovviamente se il DVD fosse destinato al nostro zio d’America la codifica la dovremmo fare nello standard NTSC, e quindi il comando sarebbe:
$ ffmpeg -i VIDEO.avi -y -target ntsc-dvd -sameq -aspect 16:9 VIDEO.mpg

Ora non ci resta che creare i titoli:
$ dvdauthor --title -o dvd -f VIDEO.mpg
e la tabella dei contenuti:
$ dvdauthor -o dvd -T

Infine lo masterizziamo cosi’:
$ growisofs -dvd-compat -dvd-video -speed=4 -Z /dev/dvd dvd/*

Anziche’ masterizzarlo subito, possiamo anche creare il file ISO prima:
$ mkisofs -dvd-video -o DVD.iso dvd/
e solo dopo masterizzarlo cosi’:
$ growisofs -dvd-compat -Z /dev/dvd=dvd.iso

Ovviamente al posto di /dev/dvd dovete inserire il percorso giusto del masterizzatore per DVD se non e’ quello.

masterizzatore-cd-dvdTERZO MEODO - Per la gioia degli amanti della terza via, esiste anche un altro metodo, che utilizza vari programmi da terminale. Installiamoli:
# apt-get install transcode mplayer mjpegtools ffmpeg dvd+rw-tools dvdauthor

Ipotizziamo di avere il nostro solito file VIDEO.avi. Con questo metodo prima di tutto dobbiamo separare l’audio dal video, e lo facciamo con questo comando:
$ transcode -i VIDEO.avi -y ffmpeg --export_prof dvd-ntsc --export_asr 3 -o VIDEO -D0 -s2 -m VIDEO.ac3 -J modfps=clonetype=3 --export_fps 29.97
Se non vogliamo un output a 16:9 ma a 4:3, il comando sara’:
$ transcode -i VIDEO.avi -y ffmpeg --export_prof dvd-ntsc --export_asr 2 -o VIDEO -D0 -s2 -m VIDEO.ac3 -J modfps=clonetype=3 --export_fps 29.97

L’output sara’ costituito dal file VIDEO.m2v (il video) e VIDEO.ac2 (audio). Se vogliamo strafare, possiamo estrarre dal file VIDEO.avi l’audio 5.1, e lo facciamo cosi’:
$ tcextract -d2 -i VIDEO.avi -a0 -x ac3 | tcextract -d2 -x ac3 -t raw > VIDEO.ac3

Ovviamente solo se il vostro video ha l’audio 5.1. Se non siete sicuri che il vostro file video abbia l’audio in 5.1, potete facilmente scoprirlo dando questo comando:
mplayer -vo dummy -identify VIDEO.avi 2> /dev/null | grep "5.1 ("
se c’e’ il 5.1 l’output sara’ qualcosa tipo:

AC3: 5.1 (3f+2r+lfe) 48000 Hz 384.0 kbit/s

A questo punto riuniamo audio e video:
$ mplex -f 8 -o VIDEO.mpg VIDEO.m2v VIDEO.ac3

Adesso abbiamo un bel video in formato MPEG pronto per essere dato in pasto a dvdauthor. Ma prima dobbiamo creare un file di testo in cui inseriremo i tempi dei capitoli, dunque:
$ nano dvdauthor.xml

e inseriamo questo:

---8<---
<dvdauthor dest="dvd">
  <vmgm />
   <titleset>
     <titles>
       <pgc>
         <vob file="VIDEO.mpg" chapters="0,15:00,30:00,45:00,1:00:00"/>
       </pgc>
      </titles>
   </titleset>
 </dvdauthor>
---8<---

Ovviamente i tempi (0,15:00,30:00,45:00,1:00:00) li cambierete in base a quelli dei capitoli del vostro video. In piu’ se anziche’ avere un DVD ne avessimo due, il testo del file dvdauthor.xml dovra’ essere:

---8<---
<dvdauthor dest="dvd">
  <vmgm />
   <titleset>
     <titles>
       <pgc>
         <vob file="VIDEO1.mpg" chapters="0,15:00,30:00,45:00,1:00:00"/>
       </pgc>
       <pgc>
         <vob file="VIDEO2.mpg" chapters="0,15:00,30:00,45:00,1:00:00"/>
       </pgc>
     </titles>
   </titleset>
 </dvdauthor>
---8<---

Adesso creiamo una directory:
$ mkdir dvd
spostiamoci dentro il file VIDEO.mpg e dvdauthor.xml. Col terminale spostiamoci anche noi dentro la nuova directory:
$ cd dvd

Adesso diamo questo comando:
$ dvdauthor -x dvdauthor.xml
cosi’ all’interno della directory dvd verranno create due sottodirectory: AUDIO_TS e VIDEO_TS.

Proviamo a vedere se tutto funziona:
$ mplayer dvd://home/UTENTE/directory/varie/dvd/VIDEO_TS/

Se tutto funziona correttamente possiamo masterizzare:
$ growisofs -dvd-video -Z /dev/dvd dvd/

Ovviamente al posto di /dev/dvd dovete inserire il percorso giusto del masterizzatore per DVD se non e’ quello.


[^] torna su | post<li> | 

2 commenti

  1. juhan
    Inviato 9 Novembre 2009 alle 15:36 | Permalink | Replica

    Tutto OK con una sola domanda off topic: perché fai gli esempi con Nano quando Gedit (o altri) sono molto più facili/usati?

    • Inviato 9 Novembre 2009 alle 16:42 | Permalink | Replica

      Sai che non lo so, credo per abitudine. Spesso faccio queste operazioni da terminale, quindi preferisco un editor che resti sul terminale.

Pubblica un Commento

Your email is never shared. I campi obbligatori sono contrassegnati con *

*
*