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.
PRIMO 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
SECONDO 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.
TERZO 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
Tutto OK con una sola domanda off topic: perché fai gli esempi con Nano quando Gedit (o altri) sono molto più facili/usati?
Sai che non lo so, credo per abitudine. Spesso faccio queste operazioni da terminale, quindi preferisco un editor che resti sul terminale.