User Tools

Site Tools


doc:appunti:linux:video:dvd_ifo_errors

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:

  1. Estrarre separatamente i flussi audio e video di ogni titleset con mplayer
  2. Rieseguire il multiplex con mplex
  3. Rigenerare un VTSM (menu) per ogni titleset con dvdauthor
  4. 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…

  1. Estrarre separatamente i flussi audio e video di ogni titleset con mplayer
  2. Creare i menu con DVDStyler
  3. Generare la struttura del DVD con DVDStyler
  4. 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:

  1. 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 720×576 pixel.
  2. Aggiungere il root menu (chiamato da DVDStyler vmMenu).
  3. Aggiungere un menu per la selezione scene.
  4. Si possono usare delle immagini come background dei menu: prepararle nel formato 720×576 (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.
  5. 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.
  6. 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.
  7. 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.
  8. Aggiungere nel menu i pulsanti per accedere ai capitoli.
  9. 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
doc/appunti/linux/video/dvd_ifo_errors.txt · Last modified: 2007/07/24 21:23 by 127.0.0.1