====== DVD-Video: Teoria ======
E' indispensabile che sul disco esista una corretta struttura con delle directory ''**VIDEO_TS**'' e ''**AUDIO_TS**'' valide e dei file ''**VOB**'', ''**BUP**'' e ''**IFO**'' validi. Se questi requisiti non sono rispettati è probabile che il DVD-Video non venga letto dai normali lettori DVD (anche se potrebbe venir letto dai lettori DVD sul computer o nei più versatili lettori MPEG4).
^ Estensione ^ Contenuto ^
| IFO | Informazioni sulla disposizione del contenuto del DVD (inizio dei capitoli, dove sono le tracce audio, ecc.) |
| BUP | Contiene un backup del file IFO |
| VOB | **DVD Video Object**. In generale contiene una traccia audio/video. Si tratta di un flusso dati MPEG-2, cioè l'unione (multiplexing) di un flusso video MPEG-2 e di un flusso audio (generalmente nei formati AC3 e DTS) ed evenutalmente dei sottotitoli |
| VIDEO_TS.IFO | Contiene le informazioni di controllo per tutto il contenuto video del DVD e per il Video Manager (root menu). |
| VIDEO_TS.VOB | Contiene le informazioni video per il Video Manager (root menu). |
La directory ''**AUDIO_TS**'' avrà un contenuto solo sui DVD-Audio, normalmente sarà vuota per i DVD-Video, tuttavia deve esistere. Tutti i nomi delle directory e dei file devono essere in maiuscolo. Il primo file sul disco deve essere ''**VIDEO_TS.IFO**'', il lettore leggerà questo e da quello saprà come accedere a tutti i contenuti del DVD.
La disposizione fisica dei file sul disco deve seguire le regole di ''**VIDEO_TS.IFO**'' e degli eventuali file ''**VTS_XX_0.IFO**''. Se ad esempio ''VIDEO_TS.IFO'' dice che ''VTS_XX_0.IFO'' si trova al settore 345 (offset rispetto a VIDEO_TS.IFO), così deve essere. Ci sono regole simili in tutti i file ''IFO''. E' anche indispensabile che il file ''**VTS_XX_1.VOB**'' sia posizionato esattamente prima del file ''**VTS_XX_2.VOB**'', e così via. Questo perché un lettore DVD non ha idea di cosa sono i singoli file ''VOB'' e riproduce tutto a partire dal settore X fino al settore Y.
A partire dalla versione 1.11a27 alpha/beta ''mkisofs'' ha la capacità di analizzare il contenuto dei file IFO e disporre di conseguenza i file sul DVD-Video.
mkisofs -dvd-video -V DVD_TITLE -o /DVD_PROJECTS/homedvd.img /DVD_PROJECTS/HOMEDVD/
isoinfo -i homedvd.img -l
Il comando ''isoinfo'' deve mostrare che i file ''VIDEO_TS.IFO'' occupa i primi settori dell'immagine. Se si sta eseguendo il backup di un DVD-Video, la distanza in settori tra un file e l'altro deve essere la stessa nell'originale e nella copia.
===== Contenuto dei file VOB =====
^ VMGM | **Video Manager Menu** detto anche root Menu, è il primo livello della struttura di un DVD video. Le informazioni di navigazione menu sono conentue nel file ''**VIDEO_TS.IFO**'' (e nella copia ''**.BUP**'') mentre le informazioni audio/video sono contenute nel file ''**VIDEO_TS.VOB**''. Il pulsante **Title** del telecomando riporta a questo livello del DVD. |
^ VTSM | **Video Titleset Menu**. Al secondo livello della struttura di un DVD ci sono i //titleset//, ciascuno corredato dal proprio menu. Il menu è contenuto nel corrispondente file ''**VTS_nn_0.IFO**'' e nella copia di backup ''**.BUP**''. Il pulsante **Menu** del telecomando riporta a questo livello del DVD. |
^ Titleset | Tutti i file che compongono un determinato titleset hanno il nome che inizia con ''**VTS_nn**'', dove nn è il numero del titleset che varia da 01 a 99. Ogni DVD ha almeno un titleset. |
^ Title | Ogni titleset contiene uno o più titoli. L'insieme dei titoli è suddiviso in uno o più oggetti video (file ''**.VOB**''). Il primo oggetto video di un titleset è un file con nome ''**VTS_nn_1.VOB**''. |
^ Chapters | I titoli sono suddivisi in capitoli. I capitoli costituiscono i punti di ingresso al video (selezione scene). Quando il lettore raggiunge la fine di un capitolo, passa automaticamente al successivo. |
^ Cells | La cella è l'unità base di riproduzione video. Ogni cella è identificata da un ID numerico univoco. L'ordine in cui le celle sono visualizzate è stabilito da una **Program Chain** (PGC), questo consente la creazione di percorsi di visualizzazoine differenziati per lo stesso insieme di celle. Questa struttura può essere utilizzata per varie opzioni di riproduzione, come selezione del //parental level//, selezione dell'angolo di ripresa, selezione della storia. |
^ Audio streams |
^ Subpictures | Subpictures (or **subtitles**) are 4 color bitmaps which are overlayed over the video stream. Buttons in navigation menus are made with subpictures too. |
==== Limiti dei menu di navigazione ====
Il menu di primo livello (**VMGM**) può passare solo a:
* Un'altro menu VMGM
* Al primo menu VTSM di un titleset
* All'inizio di un titleset
Un menu di secondo livello (menu del titleset, **VTSM**) può passare a:
* Un'altro menu VTSM dello stesso titleset
* A un titolo o ad un capitolo nello stesso titleset
* Al primo VMGM del disco
===== Creare un DVD-Video minimale =====
Vedere anche la pagina **[[dvd_video_creation|DVD Creation on Linux]]**.
==== Preparare la traccia audio/video ====
Per fare un DVD minimale (una sola traccia video, una sola traccia audio, niente menu, niente sottotitoli, niente titoli extra...) si deve preparare una traccia video mpeg e una traccia audio AC3 con queste specifiche:
* DVD PAL: video MPEG-2 720x576, 25 fps (**DVD** oppure **DVD (lavc)** in Avidemux)
* DVD NTSC: video MPEG-2 720x480 352x480 352x240, 29.97 fps (**DVD** oppure **DVD (lavc)** in Avidemux)
* Audio AC-3 48kHz (**FFm AC3** in Avidemux)
Con il comando ''**file**'' si controlla che il formato delle due tracce sia corretto:
$ file disk1_title1.ac3
disk1_title1.ac3: ATSC A/52 aka AC-3 aka Dolby Digital stream, 48 kHz,,
complete main (CM) 2 front/0 rear, LFE on,, 256 kbit/s reserved Dolby Surround mode
$ file disk1_title1.m2v
disk1_title1.m2v: MPEG sequence, v2, MP@ML interlaced Y'CbCr 4:2:0 video, 4CIF PAL, 4:3, 25 fps
==== Miscelare in un file mpeg DVD-Video ====
Con il comando ''**mplex**'' (dal pacchetto ''**mjpegtools**'') si unisce la traccia audio a quella video, ottenendo un flusso che corrisponde alle specifiche DVD Video:
mplex -f 8 -o streams/title1.mpeg streams/title1.m2v streams/title1.ac3
Per de-multiplexare (separare) audio e video una volta multiplexati esiste il tootl ''**mpgtx**'', vedere anche ''**mpginfo**'' e le relative pagine di manuale.
==== Convertire in un titleset ====
Con questo comando viene creato un titleset unico costituito da un solo capitolo, con tutto il materiale video fornito.
dvdauthor -o dvd/ streams/title1.mpeg
Il titleset contiene anche un titleset menu (VTSM), senza però alcuna funzione particolare di selezione, jump a scene, ecc. Il risultato sarà la creazione nella directory ''**dvd/**'' dei seguenti file:
^ VTS_01_0.IFO | Menu di navigazione del titleset |
^ VTS_01_0.BUP | Copia di VTS_01_0.IFO |
^ VTS_01_1.VOB | Stream audio/video, primo file |
^ VTS_01_n.VOB | Eventuali file seguenti dello stream audio/video |
==== Creare il root menu ====
Il menu principale del DVD (VMGM) non avrà niente per la selezione del titolo o delle scene, provvederà semplicemente ad iniziare l'esecuzione del video.
dvdauthor -o dvd/ -T
I file che vengono aggiunti alla directory ''**dvd/**'' sono:
^ VIDEO_TS.IFO | Menu di navigazione principale del DVD |
^ VIDEO_TS.BUP | Copia di VIDEO_TS.IFO |
^ VIDEO_TS.VOB | Stream audio/video del menu principale del DVD |
==== Creare l'immagine ISO ====
A questo punto la directory ''**dvd/**'' contiene tutti i file necessari ad un corretto DVD-Video, si prepara l'immagine ISO per la masterizzazione:
mkisofs -dvd-video -V SUPER8_DISK1 -o super8_disk1.iso dvd/
Vedere quindi come **[[..:masterizzare_dvd|materizzare il DVD]]**.
===== Riferimenti web =====
* How to burn a DVD-Video under Linux with mkisofs and dvdrecord: [[http://dvd.chevelless230.com/]]
* DVD Authoring [[http://linuxgazette.net/issue83/stoddard.html]]
* Howto author AVI->DVD with menus using Linux only ! [[http://forums.gentoo.org/viewtopic.php?t=117709]]
* DVD Technical Guide [[http://www.pioneer.co.jp/crdl/tech/dvd/1-e.html]]