[successivo] [precedente] [inizio] [fine] [indice generale] [indice ridotto] [translators] [docinfo] [indice analitico] [volume] [parte]
Il DVD video è semplicemente un disco con un file system UDF, contenente directory e file con nomi prestabiliti, inseriti nel file system con un ordine preciso. Anche un CD può contenere un file system di questo tipo ed essere usato per un filmato di breve durata.
Nonostante la semplicità della sua struttura, un DVD video è difficile da realizzare, quando non si dispone di strumenti che fanno tutto da soli (ammesso che lo facciano bene), perché di norma si devono rielaborare i file in modo da adattarli al formato previsto per i DVD stessi.
Un DVD video è costituito da un file system UDF, contenente le directory AUDIO_TS/
(che dovrebbe risultare vuota) e VIDEO_TS/
. Nella directory VIDEO_TS/
vengono inseriti diversi file, di cui i più importanti sono quelli con estensione .VOB
, che rappresentano un contenitore particolare per video MPEG-2 e audio (che può essere rappresentato con diversi formati). Le caratteristiche geometriche del formato video variano a seconda degli standard di riferimento.
|
Dal punto di vista dell'utilizzatore, il contenuto del DVD video è organizzato in «titoli», che a loro volta possono essere suddivisi in «capitoli».
I file contenuti nel DVD rispecchiano la suddivisione in «insiemi di titoli» o title set: VTS_mm_n.*
. In pratica, le cifre mm corrispondono all'insieme mm-esimo, mentre n rappresenta la n-esima porzione dello stesso. Spesso, gli insiemi di titoli sono singoli, pertanto la suddivisione che qui è stata indicata come mm rappresenta direttamente i titoli
I file che rappresentano un insieme di titoli (VTS_mm_n.*
) hanno una numerazione finale che ne rappresenta la porzione n-esima, perché nel DVD video non ci possono essere file più grandi di un gibibyte (simbolo: Gibyte), ovvero 230 byte, pertanto, diventa necessario suddividere i file .VOB
in questo modo. Evidentemente, questa suddivisione in porzioni da un gibibyte non può corrispondere a una suddivisione eventuale in capitoli.
Un DVD video contiene normalmente un menù, realizzato in forma di file .VOB
speciale: infatti, oltre che contenere un video MPEG-2 con lo sfondo del menù, deve contenere delle immagini che si evidenziano a seconda dell'azione che si compie (con il mouse o con il telecomando del lettore DVD); quindi, deve contenere dei riferimenti a dei titoli, in base alla selezione compiuta. In pratica, questo file .VOB
viene eseguito in modo ripetitivo, per dare il tempo all'utilizzatore di fare la selezione che desidera. Si intuisce che un menù può puntare ad altri sottomenù. Un DVD può anche fare a meno di un menù, ma in tal caso la sua esecuzione può essere solo sequenziale.
La copia di un DVD video che non abbia protezioni particolari, è un procedimento relativamente semplice: si copiano i file che contiene, con la stessa struttura in una directory; si riproduce un file-immagine con il file system UDF, rispettando l'ordine dei file; si incide la copia.
Si ricorda che la copia di un DVD video è un'operazione che deve essere autorizzata espressamente da chi detiene i diritti di autore. |
Viene mostrato il procedimento con un esempio, ipotizzando che il DVD sia letto e poi inciso da un lettore-masterizzatore collocato nell'unità del file di dispositivo /dev/sr0
:
#
mkdir /tmp/dvd
[Invio]
viene creata la directory /tmp/dvd/
per fare la copia del contenuto del DVD video;
#
mount -t auto /dev/sr0 /mnt/sr0
[Invio]
viene innestato il DVD video nella directory /mnt/sr0/
(che si presume essere già esistente);
#
cp -dpRv /mnt/sr0/* /tmp/dvd
[Invio]
viene copiato il contenuto del DVD video nella directory /mnt/sr0/
;
#
umount /mnt/sr0
[Invio]
viene staccato il DVD video dalla directory /mnt/sr0/
e quindi viene estratto anche dal lettore-masterizzatore;
#
mkisofs -dvd-video -o /tmp/dvd.img /tmp/dvd
[Invio]
viene creato il file /tmp/dvd.img
, contenente l'immagine del file system UDF, rispettando l'ordine necessario per i file di un DVD video;
#
growisofs -dvd-compat -Z /dev/sr0=/tmp/dvd.img
[Invio]
dopo aver inserito un DVD vergine nel masterizzatore (/dev/sr0
), si procede all'incisione;
#
rm -fr /tmp/dvd.img /tmp/dvd
[Invio]
al termine vengono cancellati i file temporanei che non servono più.
Si osservi che, di solito, i DVD video per cui non viene concessa la facoltà di copia da chi detiene i diritti di autore, contengono più dati rispetto alla capacità standard di un DVD vergine, complicando il procedimento di copia.
Il passo successivo alla copia pura e semplice di un DVD video consiste nell'estrarre solo alcuni file di proprio interesse, per realizzare con questi un DVD separato.
I file che contano sono quelli con estensione .VOB
che si trovano nella directory VIDEO_TS/
; con programmi come Xine, Totem o VLC, è possibile eseguirli per poter scegliere ciò che è di proprio interesse:
$
xine VTS_01_1.VOB
[Invio]
Una volta determinati quali sono i file da estrapolare per realizzare un altro DVD video, si deve realizzare una struttura nuova, a partire da questi file, con l'aiuto del programma Dvdauthor; (1) come nell'esempio seguente, dove si suppone che i file in questione si trovino nella directory corrente e che la struttura da creare debba essere collocata nella directory /tmp/dvd/
:
$
dvdauthor -o /tmp/dvd -f VTS_01_1.VOB VTS_01_2.VOB VTS_01_3.VOB
[Invio]
$
dvdauthor -o /tmp/dvd -T
[Invio]
Quindi, si passa alla creazione del file-immagine per l'incisione di un disco:
#
mkisofs -dvd-video -o /tmp/dvd.img /tmp/dvd
[Invio]
In questo caso, il disco che si ottiene è privo di menù e la sua esecuzione parte direttamente dal primo dei file indicati.
Si osservi che esistono tecniche di protezione contro la copia non autorizzata, tali da far sì che il procedimento mostrato in questa sezione produca un video di pessima qualità. |
Dvdbackup (2) è un programma che consente di estrapolare il contenuto di un DVD video, con la possibilità di sezionarne i titoli e anche i capitoli in modo preciso.
dvdbackup azione [altre_opzioni_di_azione] -i dispositivo_dvd [-o directory] |
Il modello sintattico mostra l'utilizzo normale del programma eseguibile dvdauthor, dove si vede che si usa inizialmente un'opzione che serve a definire l'azione da compiere; successivamente possono essere aggiunte altre opzioni che specificano ulteriormente l'azione da compiere; quindi è obbligatorio l'uso dell'opzione -i per indicare il file di dispositivo corrispondente al lettore contenente il disco da esaminare o da sezionare; infine, quasi sempre, è necessario mettere l'opzione -o con l'indicazione di una directory che deve essere usata, o creata, per inserirvi ciò che viene estrapolato dal disco dell'opzione -i.
Quando si usa l'opzione -o, nella directory indicata viene creata una sottodirectory con il nome corrispondente al titolo del DVD, ammesso che ci sia, oppure un altro nome (per esempio DVDROM/
o CDROM/
). In quella sottodirectory viene creata la directory VIDEO_TS/
, con i file estrapolati dal DVD video, in base alle altre opzioni usate.
|
Segue la descrizione di alcuni esempi.
$
dvdbackup -I -i /dev/hdc
[Invio]
Mostra una descrizione del disco contenuto nell'unità del file di dispositivo /dev/hdc
, secondo una forma simile all'esempio seguente, dove è presente un solo insieme di titoli, composto da tre titoli, che a loro volta contengono tre capitoli ognuno:
DVD-Video information of the DVD with title ... File Structure DVD VIDEO_TS/ VIDEO_TS.IFO 12288 VIDEO_TS.VOB 77824 VIDEO_TS.BUP 12288 VTS_01_0.IFO 12288 VTS_01_1.VOB 87541760 VTS_01_0.BUP 12288 Main feature: Title set containing the main feature is 1 The aspect ratio of the main feature is 4:3 The main feature has 1 angle(s) The main feature has 1 audio_track(s) The main feature has 0 subpicture channel(s) The main feature has a maximum of 3 chapter(s) in on of its titles The main feature has a maximum of 2 audio channel(s) in on of its titles Title Sets: Title set 1 The aspect ratio of title set 1 is 4:3 Title set 1 has 1 angle(s) Title set 1 has 1 audio_track(s) Title set 1 has 0 subpicture channel(s) Titles included in title set 1 is/are Title 1: Title 1 has 3 chapter(s) Title 1 has 2 audio channel(s) Title 2: Title 2 has 3 chapter(s) Title 2 has 2 audio channel(s) Title 3: Title 3 has 3 chapter(s) Title 3 has 2 audio channel(s) |
$
dvdbackup -M -n "dvd" -i /dev/hdc -o /tmp
[Invio]
Crea la directory /tmp/dvd/VIDEO_TS/
, mettendovi al suo interno tutto il contenuto del disco che si trova nel file di dispositivo /dev/hdc
. Il contenuto in questione si riferisce, comunque, a quello di un DVD video.
$
dvdbackup -T 1 -n "dvd" -i /dev/hdc -o /tmp
[Invio]
Crea la directory /tmp/dvd/VIDEO_TS/
, mettendovi al suo interno i file del primo insieme di titoli del disco che si trova nel file di dispositivo /dev/hdc
. I file in questione corrispondono al modello VTS_01_*
.
$
dvdbackup -t 2 -n "dvd" -i /dev/hdc -o /tmp
[Invio]
Crea la directory /tmp/dvd/VIDEO_TS/
, mettendovi al suo interno uno o più file .VOB
contenenti il secondo titolo del disco che si trova nel file di dispositivo /dev/hdc
.
$
dvdbackup -t 2 -s 1 -e 2 -n "dvd" -i /dev/hdc -o /tmp
[Invio]
Crea la directory /tmp/dvd/VIDEO_TS/
, mettendovi al suo interno uno o più file .VOB
contenenti i primi due capitoli del secondo titolo del disco che si trova nel file di dispositivo /dev/hdc
.
Come si intende dalla lettura della sezione precedente, per predisporre un DVD video con l'aiuto di Dvdauthor, è necessario disporre di file in formato VOB, con le caratteristiche geometriche previste dallo standard prescelto (PAL/SECAM o NTSC) e con una traccia audio stereofonica campionata a 48 000 Hz. Per la precisione, lo standard DVD PAL/SECAM richiede quadri da 720×576 punti grafici, mentre lo standard DVD NTSC richiede quadri da 720×480 punti grafici.
Generalmente, i file multimediali di cui si può disporre facilmente o che si possono produrre attraverso apparecchiature comuni, non dispongono delle caratteristiche richieste dallo standard DVD video e occorre procedere con diversi passaggi di trasformazione. Si suppone di disporre del file filmato.avi
, contenente video e audio, assolutamente incompatibili con lo standard DVD video. Si comincia estrapolando la componente video, trasformandola con l'aiuto di FFmpeg:
$
ffmpeg -i filmato.avi -f mpeg2video -hq -sameq -r 25
\
\-s 720x576 video.m2v
[Invio]
In questo modo si ottiene il file video.m2v
in formato MPEG-2 (solo video), con dimensioni e frequenza di quadro conformi allo standard PAL, indipendentemente dalle caratteristiche del file originale. Nello stesso modo si estrapola la componente audio, ma in tal caso non viene ancora modificata la campionatura:
$
ffmpeg -i filmato.avi -f wav audio.wav
[Invio]
Si ottiene il file audio.wav
, che si suppone avere una campionatura non appropriata, pertanto si rielabora con Sox, specificando anche di volere comunque due canali audio, per la stereofonia:
$
sox audio.wav -r 48000 -c 2 audio.48.wav resample
[Invio]
Si ottiene così il file audio.48.wav
che viene usato per generare un file MP2 con l'aiuto di Toolame:
$
toolame -b 128 audio.48.wav audio.mp2
[Invio]
A questo punto, con il programma mplex di Mjpegtools si possono aggregare i file video.m2v
e audio.mp2
in un file VOB adatto a Dvdauthor:
$
mplex -f 8 -V -o filmato.vob video.m2v audio.mp2
[Invio]
Si ottiene così il file filmato.vob
, che, come già mostrato nella sezione precedente, può essere trattato da Dvdauthor.
Viene mostrata una funzione di uno script di shell compatibile con lo standard POSIX, che ha lo scopo di produrre un file VOB appropriato a partire da un file contenente un filmato, che FFmpeg sia in grado di gestire:
|
Disponendo del file filmato.avi
, volendo generare il file filmato.vob
, aderente allo standard PAL, occorrerebbe chiamare la funzione mostrata, nel modo seguente:
|
Per inserire delle diapositive in un DVD video, occorre trasformare delle immagini fisse in filmati, contenenti una traccia audio, che eventualmente può essere silenziosa. A titolo di esempio, viene mostrato il procedimento per produrre un file VOB da un'immagine JPG (figura.jpg
) che ha già la geometria corretta per lo standard DVD video, con l'aiuto di strumenti contenuti del pacchetto Mjpegtools.
Si può creare un video YUV4MPEG con jpeg2yuv. In questo caso si vuole produrre un video di 10 s; considerato che si intende usare lo standard PAL, che prevede 25 quadri al secondo, occorre che il video contenga 250 quadri totali:
$
jpeg2yuv -f 25 -I p -L 0 -n 250 -j figura.jpg > video.y4m
[Invio]
Si ottiene così il file video.y4m
da convertire in formato MPEG-2, creando il file video.m2v
:
$
mpeg2enc -a 2 -n p -f 3 -b 200 -o video.m2v < video.y4m
[Invio]
Viene creato un file audio silenzioso, di 10 s, in formato MP2, con una frequenza di campionamento di 48 000 Hz in stereofonia:
$
dd if=/dev/zero bs=4 count=480000 |
\
\toolame -b 128 -s 48 /dev/stdin audio.mp2
[Invio]
Si ottiene il file audio.mp2
che si può usare assieme a video.m2v
per creare un contenitore multimediale MPEG2 (video e audio) con l'aiuto di mplex:
$
mplex -f 8 -V -o diapositiva.vob video.m2v audio.mp2
[Invio]
Si ottiene così il file diapositiva.vob
.
Viene mostrato una funzione di uno script di shell compatibile con lo standard POSIX, che ha lo scopo di produrre un file VOB appropriato a partire da un file contenente un'immagine fissa, che ImageMagic sia in grado di gestire:
|
Disponendo del file figura.png
, volendo generare il file diapositiva.vob
della durata di 15 s, aderente allo standard PAL, occorrerebbe chiamare la funzione mostrata, nel modo seguente:
|
La realizzazione di un Menù per un DVD video è una fase necessaria per produrre un risultato fruibile dall'utenza comune. Il menù è un file VOB che assomiglia idealmente a quello che si realizza a partire da un'immagine fissa, come nel caso delle diapositive, che però deve contenere delle informazioni aggiuntive. Dopo la realizzazione di un file VOB di questo tipo, occorre utilizzare Dvdauthor in modo leggermente diverso da quanto mostrato fino a questo punto, per collegare il menù agli altri file VOB esistenti.
Si crea inizialmente un disegno, con un programma appropriato, contenente al massimo tre colori, con una geometria approssimativa pari a quella dello standard DVD video che si vuole produrre. L'immagine potrebbe essere simile a quella che si vede nella figura 539.8.
|
Di questa immagine se ne deve preparare una copia, dalla quale va rimosso il titolo e va ridotta a soli due colori: il testo nero e lo sfondo bianco.
|
A questo punto occorre assicurarsi di avere le immagini della geometria esatta e occorre produrre alcune immagini derivate. Il primo file contenente il menù con il titolo sia fondale.jpg
; il secondo, senza titolo e solo in bianco e nero, sia pulsanti.jpg
. Vengono usati i programmi di ImageMagic per le varie conversioni.
$
convert -geometry 720x576! -posterize 3 fondale.jpg
\
\menu.background.jpg
[Invio]
Con questo primo comando viene prodotta l'immagine da usare come fondale del menù; come si vede si impone di adattare il file che si ottiene alla geometria dello standard PAL e di avere solo tre colori.
Successivamente, a partire dal file pulsanti.jpg
, si crea un file con soli due colori, dove il bianco deve annullarsi e diventare trasparente. Si ottiene il file menu.black.png
:
$
convert -geometry 720x576! -posterize 2 -transparent white
\
\pulsanti.jpg menu.black.png
[Invio]
|
Da questo file con la scritta nera e lo sfondo trasparente, si creano altri file, dove la scritta deve apparire con colori differenti:
$
convert -fill red -colorize 100% menu.black.png menu.red.png
[Invio]
$
convert -fill blue -colorize 100% menu.black.png menu.blue.png
[Invio]
$
convert -fill green -colorize 100% menu.black.png menu.green.png
[Invio]
|
|
|
Quindi si crea un filmato molto breve, in formato VOB, utilizzando il file menu.background.jpg
. In questo caso, però, si preferisce che il file finale (VOB) abbia l'estensione .mpg
, perché non si tratta ancora del file VOB definitivo:
$
jpeg2yuv -n 50 -I p -f 25 -j menu.background.jpg |
\
\mpeg2enc -n p -f 3 -b 200 -o menu.m2v
[Invio]
$
dd if="/dev/zero" bs=4 count=1600 |
\
\toolame -b 128 -s 48 /dev/stdin menu.mp2
[Invio]
$
mplex -f 8 -o menu.mpg menu.m2v menu.mp2
[Invio]
A questo punto si deve usare il programma spumux di Dvdauthor, che però richiede prima la preparazione di un file XML di configurazione, come quello seguente:
|
In base al contenuto di questo file di configurazione, lo spazio tra i pulsanti deve essere maggiore o uguale a 15 punti grafici; inoltre, l'ordine con cui si intendono disposti i pulsanti è per righe.
Supponendo di avere salvato il file XML di spumux con il nome menu.spumux, si può procedere così:
$
spumux menu.spumux < menu.mpg > menu.vob
[Invio]
Viene mostrata una funzione di uno script di shell compatibile con lo standard POSIX, che ha lo scopo di produrre un menù VOB appropriato a partire da un file contenente un'immagine fissa, unica, che ImageMagic sia in grado di gestire. Questo script produce però un risultato semplificato, in quanto si attende di ricevere una figura in bianco e nero, contenente esclusivamente le voci del menù, bordate in modo appropriato:
|
Disponendo del file menu.png
, volendo generare il file menu.vob
aderente allo standard PAL, occorrerebbe chiamare la funzione mostrata, nel modo seguente:
|
Naturalmente, la creazione del file VOB contenente il menù, non esaurisce il problema, dal momento che poi questo menù deve essere collegato ai contenuti del DVD. Nella sezione successiva si vede come usare Dvdauthor a questo fine.
Una volta creato il menù del DVD in un file VOB, occorre collegare questo menù al resto del DVD. Per fare questo si può usare Dvdauthor in un modo differente rispetto a quello mostrato fino a questo punto, preparando un file XML di configurazione appropriato.
Come accennato all'inizio del capitolo, il contenuto di un DVD può essere strutturato in «titoli» che a loro volta si articolano in «capitoli». In questa sezione si associa un titolo a ogni contenuto del DVD, facendo sì che ogni titolo contenga soltanto un capitolo. C'è da considerare che è possibile articolare il contenuto di un DVD in un menù principale e in altri menù inferiori, ma questa possibilità non viene descritta qui.
Si presume di avere preparato quattro filmati, già convertiti nel formato VOB. Si tratta dei file filmato-1.vob
, filmato-2.vob
, filmato-3.vob
e filmato-4.vob
. Si suppone che dopo la visualizzazione di uno di questi filmati si voglia tornare al menù. Quello che segue è il file XML da fornire poi a Dvdauthor:
|
Supponendo che il file XML si chiami dvd.xml
, si può utilizzare dvdauthor nel modo seguente:
$
dvdauthor -x dvd.xml
[Invio]
In base al contenuto del file dvd.xml
, si ottiene la directory /tmp/dvd/
, con il contenuto del DVD, da trasformare in file-immagine con mkisofs:
$
mkisofs -dvd-video -o dvd.img /tmp/dvd
[Invio]
Si ottiene così il file dvd.img
pronto per l'incisione del DVD.
Eseguendo il DVD con un programma come Xine o con un lettore DVD casalingo, si dovrebbe vedere un menù come quello che si vede nella figura successiva, dove il cursore si trova sopra il pulsante {Titolo 1
}.
|
Volendo fare in modo che dopo l'esecuzione di uno dei primi tre titoli si passi automaticamente al successivo, basta modificare così l'elemento titles del file dvd.xml
:
|
Dvdauthor ha una limitazione che impedisce di gestire più di 36 titoli in un solo menù. Tuttavia, più file VOB possono essere raggruppati in uno stesso titolo. L'esempio seguente mostra un file XML di configurazione di Dvdauthor, con tre titoli che si dividono alcuni file VOB. Si osservi che, in base alla configurazione mostrata, ogni file incluso in un titolo va a costituire un capitolo dello stesso.
|
Dvdauthor
VideoHelp.com
How to Create a DVD with a Menu
Rick Harris, Graver un DVD-VIDEO
<http://www.egs-howto.com/mambo/index.php?option=content&task=view&id=174>
Appunti di informatica libera 2006.07.01 --- Copyright © 2000-2006 Daniele Giacomini -- <daniele (ad) swlibero·org>
Dovrebbe essere possibile fare riferimento a questa pagina anche con il nome introduzione_ai_dvd_video.htm
[successivo] [precedente] [inizio] [fine] [indice generale] [indice ridotto] [translators] [docinfo] [indice analitico]