Creare un DVD-Video partendo da delle immagini
Da TondoWiki.
Pre-Bozza. Il seguente articolo non ha ancora raggiunto lo stato di Bozza. Ciò significa che molto probabilmente è stato redatto semplicemente annotando i passi principali o altre cose che solo l'autore potrebbe comprendere. E' quindi da considerarsi non solo incompleto ma molto probabilmente anche impreciso e non formalmente corretto. Per questi motivi è in dubbio l'autorevolezza stessa del documento.
Indice |
[modifica] Pre Requisiti
Installabili utilizzando i repository di debian-multimedia, ad aggiungere ad /etc/apt/sources.list
- ffmpeg
- codec video/audio (AC3)
- dvdrecord
[modifica] Requisiti
- dir2slideshow
- dvd-slideshow
- dvd-menu
- Patch (nel caso di errori durante la codifica)
[modifica] Iniziamo
[modifica] Passo 0: dir2slideshow
# dir2slideshow -n 'Prima scritta' -t 5 -c 2 -a Song.mp3 -p prova_dvd/
Genera un file di testo con le istruzioni che serviranno a dvd-slideshow
- Frutto dell'opzione -p che genererà un DVD nel formato PAL.
pal=1
- Sfondo
background:0::black background:1
- "Prima scritta" in bianco su fondo nero. Dissolvenza in comparsa/scompara di 1 secondo e durata della scritta di 5 secondi (dissolvenze inclusa)
fadein:1 title:5:Prima scritta background:0::black fadeout:1
- "Seconda scritta" esattamente come la prima.
fadein:1 title:5:Seconda scritta background:0::black fadeout:1
- Canzone di sottfondo con dissolvenza iniziale di 2 secondi e finale di altri 2 secondi.
- Se il video è più lungo della canzone, viene introdotto silenzio fino alla fine.
- Se la canzone è più lunga del video, viene troncata la canzone.
- Quindi se vogliamo la stessa canzone come colonna sonora di tutto il video, dobbiamo ripeterla N volte, sforando anche la durata del video, tanto verrà troncata in automatico alla fine del video.
background:2 /mnt/foto/prova_dvd/Song.mp3:1:fadein:2:fadeout:2 /mnt/foto/prova_dvd/Song.mp3:1:fadein:2:fadeout:2 /mnt/foto/prova_dvd/Song.mp3:1:fadein:2:fadeout:2 /mnt/foto/prova_dvd/Song.mp3:1:fadein:2:fadeout:2 /mnt/foto/prova_dvd/Song.mp3:1:fadein:2:fadeout:2
- Dissolvenza in ingresso sulla prima foto
fadein:1 /mnt/foto/prova_dvd/img_0080.jpg:5 crossfade:2 /mnt/foto/prova_dvd/img_0081.jpg:5 crossfade:2 /mnt/foto/prova_dvd/img_0082.jpg:5 crossfade:2 /mnt/foto/prova_dvd/img_0083.jpg:5 crossfade:2 /mnt/foto/prova_dvd/img_0084.jpg:5 crossfade:2 /mnt/foto/prova_dvd/img_0085.jpg:5 crossfade:2 /mnt/foto/prova_dvd/img_0086.jpg:5 crossfade:2 /mnt/foto/prova_dvd/img_0087.jpg:5 crossfade:2 /mnt/foto/prova_dvd/img_0088.jpg:5 crossfade:2 /mnt/foto/prova_dvd/img_0089.jpg:5 fadeout:1 background:1 fadein:1 title:5:Realizzato da Tondo background:0::black fadeout:1
Che io ho modifcato alla fine per i "titoli di coda".
[modifica] Passo 1: dvd-slideshow
# dvd-slideshow -f Il_mio_primo_DVD.txt
Visto che ho aggiunto troppi file audio, ci ha pensato lui a saltarli e utilizzare solo i necessari...
[dvd-slideshow]##################################### [dvd-slideshow] Working on track 1 audio file 0 [dvd-slideshow] /mnt/foto/prova_dvd/Song.mp3 [dvd-slideshow] Volume adjust=0.95 [dvd-slideshow] Original audio track length=0:3:46.717 [dvd-slideshow] Fade in time=0:0:2.000 Fade out time=0:0:2.000 sox: Fade: warning: End time passed end-of-file. Padding with silence [dvd-slideshow] Adding 0:0:1.000 to beginning of audio file [dvd-slideshow] This audio plays in slideshow from 0:0:1.000 to 0:3:47.717 [dvd-slideshow] ############### [dvd-slideshow] Working on track 1 audio file 1 [dvd-slideshow] /mnt/foto/prova_dvd/Song.mp3 [dvd-slideshow] Volume adjust=0.95 [dvd-slideshow] Original audio track length=0:3:46.717 [dvd-slideshow] Fade in time=0:0:2.000 Fade out time=0:0:2.000 sox: Fade: warning: End time passed end-of-file. Padding with silence [dvd-slideshow] This audio plays in slideshow from 0:3:47.717 to 0:7:34.434 [dvd-slideshow] ############### [dvd-slideshow] Working on track 1 audio file 2 [dvd-slideshow] /mnt/foto/prova_dvd/Song.mp3 [dvd-slideshow] Volume adjust=0.95 [dvd-slideshow] Original audio track length=0:3:46.717 [dvd-slideshow] Fade in time=0:0:2.000 Fade out time=0:0:2.000 sox: Fade: warning: End time passed end-of-file. Padding with silence [dvd-slideshow] This audio plays in slideshow from 0:7:34.434 to 0:11:21.151 [dvd-slideshow] ############### [dvd-slideshow] Working on track 1 audio file 3 [dvd-slideshow] /mnt/foto/prova_dvd/Song.mp3 [dvd-slideshow] Volume adjust=0.95 [dvd-slideshow] Original audio track length=0:3:46.717 [dvd-slideshow] Fade in time=0:0:2.000 Fade out time=0:0:2.000 [dvd-slideshow] This audio plays in slideshow from 0:11:21.151 to 0:12:15.000 [dvd-slideshow] ############### [dvd-slideshow] Skipping un-needed audio file 4 [dvd-slideshow] ############### [dvd-slideshow] Skipping un-needed audio file 5 [dvd-slideshow] ############### [dvd-slideshow] Creating ac3 audio... [dvd-slideshow]############################################################ [dvd-slideshow] Multiplexing audio and video... [dvd-slideshow]############################################################
[modifica] Passo 2: dvd-menu
Se abbiamo un solo video conviene fare un DVD senza menu, che una volta inserito nel lettore parta senza mostrarci menu "inutili".
# dvd-menu -nomenu -f Il_mio_primo_DVD.xml
Se invece vogliamo mostrare un menu, procediamo come segue.
# dvd-menu -t 'Primo tempo' -t 'Secondo tempo' -f Primo_tempo.xml -f Secondo_tempo.xml -n '- Il mio video -'
[modifica] Passo 3: mkisofs
# mkisofs -dvd-video -udf -o primo-dvd.iso dvd_fs
I: -input-charset not specified, using iso-8859-15 (detected in locale settings) 45.42% done, estimate finish Sun Dec 2 16:10:56 2007 90.92% done, estimate finish Sun Dec 2 16:10:56 2007 Total translation table size: 0 Total rockridge attributes bytes: 0 Total directory bytes: 4096 Path table size(bytes): 42 Max brk space used 0 11008 extents written (21 MB)
[modifica] Errore
Utilizzando dvd-slideshow alla fine di tutto potreste incappare in un errore simile a questo anche se avete i codec ac3 e apparentemente è tutto ok. Questo è dovuto ad una opzione di ffmpeg sulla codifca audio che ora prevedere di esplicitare la unità di misura del bitrate.
Output #0, ac3, to '/home/tondo/projet_dvd/dvd-slideshow_temp_7554/audio1.ac3': Stream #0.0: Audio: ac3, 48000 Hz, 5:1, 0 kb/s Stream mapping: Stream #0.0 -> #0.0 Error while opening codec for output stream #0.0 - maybe incorrect parameters such as bit_rate, rate, width or height [dvd-slideshow] ERROR during ffmpeg execution! [dvd-slideshow] see /home/tondo/projet_dvd/dvd-slideshow.log for details [dvd-slideshow] cleanup...
Effettuate la patch come scritto in fondo alla pagina. Dopo di che tutto dovrebbe filare liscio.
Potrebbe però presentarsi lo stesso problema nell'utilizzo di dvd-menu e basta fare la stessa cosa, ovvero
[modifica] Patch da adottare
[modifica] dvd-slideshow
- Modificare il file /usr/bin/dvd-slideshow con un normale editor di testo (Nano/Vim/Vi o altri):
- Cercare la sezione sottostante intitolata setup audio parameters
- E aggiungere una k al parametro audio_bitrate
- audio_bitrate=224 diventa audio_bitrate=224k e così anche per audio_bitrate=128 e audio_bitrate=192.
- Dovrebbe trattarsi delle linee 3989, 3997 e 4004 rispettivamente.
# setup audio parameters
if [ "$vcd" -eq 1 ] ; then
ac3=0 # force mp2
audio_bitrate=224k
video_bitrate='1152'
audio_sample_rate=44100
mplex_type=1
aspect_ratio="4:3"
mpeg2enc_params="-v 0 -4 2 -2 1 -H -b 1150 -n n -s -f $mplex_type"
elif [ "$svcd" -eq 1 ] ; then
ac3=0 # force mp2
audio_bitrate=128k
video_bitrate='4500'
audio_sample_rate=44100
mplex_type=4
aspect_ratio="4:3"
mpeg2enc_params="-v 0 -4 2 -2 1 -H -b 2500 -n n -s -f $mplex_type"
else
audio_bitrate=192k
video_bitrate='3800'
audio_sample_rate=48000
mplex_type=8
if [ "$widescreen" -eq 1 ] ; then
aspect_ratio="16:9"
mpeg2enc_params="-v 0 -a 3 -q 4 -4 2 -2 1 -s -M 0 -f $mplex_type"
else
aspect_ratio="4:3"
mpeg2enc_params="-v 0 -a 2 -q 4 -4 2 -2 1 -s -M 0 -f $mplex_type -E -N -R 2"
fi
fi
[modifica] dvd-menu
- Cercare le diciture audio_bitrate e come sopra aggiungere una k
if [ "$vcd" -eq 1 ] ; then
# setup audio parameters
ac3=0
audio_bitrate=224k
audio_sample_rate=44100
mplex_type=1
ffmpeg_target='vcd'
elif [ "$svcd" -eq 1 ] ; then
# setup audio parameters
ac3=0
audio_bitrate=224k
audio_sample_rate=44100
mplex_type=4
ffmpeg_target='svcd'
else
audio_bitrate=128k
audio_sample_rate=48000
mplex_type=8
ffmpeg_target='dvd'
fi
- cercare l' IF sottostante (basta cercare "192") e aggiungere una k anche qua.
if [ "$ac3" -eq 1 ] ; then
checkforprog ffmpeg
echo "[dvd-menu] Creating ac3 audio..."
check_rm "$tmpdir/audio.ac3"
ffmpeg -i "$tmpdir/audio.wav" -vn -y -ab 192k -acodec ac3 -ar ... ... ...
if [ "$fadein" -eq 1 ] || [ "$fadeout" -eq 1 ] ; then
ffmpeg -i "$tmpdir/fade_audio.wav" -vn -y -ab 192k -acodec ac3 -ar ... ... ...
fi

