====== Errori nella struttura di un DVD Video ====== Si tratta di errori logici del file **.IFO** oppure di errori nel **multiplexing**? Sembra che questi errori siano abbastanza diffusi, generati sia da programma di authoring DVD non troppo rigorosi (mondo Windows) sia forse da schemi di protezione vari. Questi errori non vengono in generale evidenziati dai lettori di DVD, anche i player software -- come **ogle** -- generalmente riescono a riprodurre il video. Il problema si presenta nel momento in cui si cerca di fare una copia del DVD. La procedura di backup in generale riesce a copiare su hard disk i dati richiesti, eventualmente generando alcuni messaggi di warning: dvdbackup -i /dev/dvd -o dvdbackup/ -n SUPER8_DISK1 -M *** Zero check failed in ifo_read.c:432 for vmgi_mat->zero_3 = 0x00000000010000000000000000000000000000 *** Zero check failed in ifo_read.c:977 for tt_srpt->zero_1 = 0x5150 ... ... Fallisce invece la creazione della nuova immagine ISO con ''**mkisofs**'': $ mkisofs -dvd-video -V SUPER8_DISK1 -o super8_disk1.iso dvdbackup/SUPER8_DISK1 I: -input-charset not specified, using UTF-8 (detected in locale settings) The pad was 861 for file VIDEO_TS.BUP The pad was 41 for file VIDEO_TS.IFO mkisofs: Implementation botch. Video pad for file VIDEO_TS.VOB is -6 mkisofs: Either the *.IFO file is bad or you found a mkisofs bug. ===== Primo tentativo fallito ===== Si tenta di creare una nuova struttura DVD estraendo con **mplayer** i titleset che interessano. Il **.VOB** del titleset non viene ricodificato, si perderebbe però la struttura del root menu (VMGM). In questo esempio si tenta il recupero solo del primo titleset: mplayer dvd://1 -dumpstream -dumpfile mpeg/title_01.mpeg -dvd-device dvdbackup/SUPER8_DVD1 dvdauthor -o dvd/ mpeg/title_01.mpeg ... ... WARN: Skipping sector, waiting for first VOBU... WARN: Skipping sector, waiting for first VOBU... WARN: Skipping sector, waiting for first VOBU... ERR: SCR moves backwards, remultiplex input. ===== Secondo tentativo fallito ===== Con **vobcopy** si copia ciascun titleset direttamente dal DVD (vobcopy non riesce a leggere da una directory di backup). Ogni titolo viene salvato nel suo singolo file **.VOB**, ma anche in questo caso dvdauthor fallisce: vobcopy -n 1 -i /dev/dvd --large-file -o vobcopy/ dvdauthor -o dvd/ vobcopy/DVD_VIDEO_RECORDER1-1.vob STAT: Processing vobcopy/DVD_VIDEO_RECORDER1-1.vob... ERR: SCR moves backwards, remultiplex input. ===== Terzo tentativo riuscito! ===== Sembra che il problema sia nel multiplexing dei flussi originali. Si è dovuto provvedere a: - Estrarre separatamente i flussi audio e video di ogni titleset con ''**mplayer**'' - Rieseguire il multiplex con ''**mplex**'' - Rigenerare un VTSM (menu) per ogni titleset con ''**dvdauthor**'' - Rigenerare im VMGM (root menu) per il DVD con ''**dvdauthor**'' L'operazione è risultata abbastanza semplice solo per il fatto che i titleset originali erano semplici: un solo titolo, un solo flusso audio, niente sottotitoli, ecc. La struttura del root menu (VMGM) originale e la suddivisione in capitoli viene perduta, l'unico vantaggio è che l'encoding audio e video non viene rieseguito, qiundi non c'è perdita di qualità in tal senso. mplayer dvd://1 -dumpvideo -dumpfile streams/title1.m2v -dvd-device SUPER8_DVD1/ mplayer dvd://1 -dumpaudio -dumpfile streams/title1.ac3 -dvd-device SUPER8_DVD1/ mplex -f 8 -o streams/title1.mpeg streams/title1.m2v streams/title1.ac3 dvdauthor -o dvd/ -t streams/title1.mpeg ... ... dvdauthor -o dvd/ -T mkisofs -dvd-video -V SUPER8_DISK1 -o super8_disk1.iso dvd/ Il VMGM (root menu) creato da dvdauthor con l'opzione ''**-T**'' senza ulteriori parametri non prevede menu per l'accesso ai titleset o ai capitoli. Così come i VTSM di default non hanno un menu per l'accesso diretto ai capitoli. Per creare un nuovo VMGM e per effettuare nuovamente la suddivisione in capitoli bisogna agire sui parametri di **dvdauthor**... ===== Quarto tentativo con DVDStyler ===== Con questo metodo si crea una struttura nuova per il DVD, generando un nuovo VMGM, ecc... - Estrarre separatamente i flussi audio e video di ogni titleset con ''**mplayer**'' - Creare i menu con DVDStyler - Generare la struttura del DVD con DVDStyler - Creare l'immagine ISO e masterizzarla Estrazione delle tracce audio/video (titoli) da riga di comando: for N in 1 2 3 4 5 6; do mplayer dvd://$N -dumpvideo -dumpfile dvd2/title$N.m2v -dvd-device FILM_8MM_DVD2/ mplayer dvd://$N -dumpaudio -dumpfile dvd2/title$N.ac3 -dvd-device FILM_8MM_DVD2/ done Operazioni eseguite con **DVDStyler**: - Pre creare l'immagine di sfondo del menu: con Avidemux preso un fotogramma del film e salvato come BMP. Con Gimp aggiustato luminosità, contrasto e colore. Ridimensionato 720x576 pixel. - Aggiungere il **root menu** (chiamato da DVDStyler **vmMenu**). - Aggiungere un menu per la **selezione scene**. - Si possono usare delle immagini come background dei menu: prepararle nel formato 720x576 (PAL). Nelle proprietà Audio/Video del menu conviene impostare l'**Aspect ratio** su **4:3**, altrimenti alcuni player li visualizzano in widescreen. Assegnare anche la proprietà **Title** per il //vmMenu// e la proprietà **Root** per i menu di //selezione scene// (in teoria non dovrebbe essere necessario): questo assegna i pulsanti del telecomando alle funzioni di navigazione dei menu del DVD. - Aggiungere i **titoli** (file audio/video): navigare nell'albero delle directory a sinistra, trascinare il file **.m2v** verso la parte in basso dello schermo, all'interno del menu. Trascinare il file **.ac3** sopra l'icona del file MPG, verificare le proprietà dell'icona che sia stato selezionato il corretto file audio e video. - Editare la **suddivisione in capitoli** e il **post command** per ciascun titolo (click destro, Properties). La suddivisione in capitoli successivi si indica con una stringa del tipo ''5:00,10:00''. Il primo capitolo è sottointeso che inizia all'istante 0. Il post command deve puntare al titolo successivo oppure al menu principale se si tratta dell'ultimo titolo. - Aggiungere nel root menu i **pulsanti per accedere ai titoli**. Controllare nelle proprietà che puntino (**jump to**) al titolo giusto e che il **focus** passi ai pulsanti adiacenti correttamente. - Aggiungere nel menu i **pulsanti per accedere ai capitoli**. - Creare la struttura del DVD: dal menu //File//, //Burn DVD//, scegliere l'opzione **just generate**. Nella directory prescelta viene creata la gerarchia con le directory ''VIDEO_TS'' e ''AUDIO_TS''. Infine, da riga di comando, si genera l'immagine ISO e la si masterizza: mkisofs -dvd-video -V FILM_8MM_DVD1 -o FILM_8MM_DVD1.iso dvd_tmp/ growisofs -dvd-compat -Z /dev/dvd=FILM_8MM_DVD1.iso