J’ai téléchargé récemment une image ISO contenant des clips et un menu DVD. Celle ci n’était pas lisible par mplayer:
$ mplayer -dvd-device image.iso dvd://
libdvdnav:DVDOpenFileUDF:UDFFindFile /VIDEO_TS/VIDEO_TS.IFO failed
libdvdnav:DVDOpenFileUDF:UDFFindFile /VIDEO_TS/VIDEO_TS.BUP failed
libdvdread: Can't open file VIDEO_TS.IFO.
Can't open VMG info!
No stream found to handle url dvd://
libdvdnav:DVDOpenFileUDF:UDFFindFile /VIDEO_TS/VIDEO_TS.IFO failed
libdvdnav:DVDOpenFileUDF:UDFFindFile /VIDEO_TS/VIDEO_TS.BUP failed
libdvdread: Can't open file VIDEO_TS.IFO.
Can't open VMG info!
No stream found to handle url dvd://
En montant l’image, on peut quand même bien vérifier la présence des fichiers prétendus « manquants »:
# mkdir image ; mount -o loop image.iso image/
# ls -l image/VIDEO_TS/VIDEO_TS.{BUP,IFO}
-r-xr-xr-x 1 root root 12288 Apr 8 00:36 image/VIDEO_TS/VIDEO_TS.BUP
-r-xr-xr-x 1 root root 12288 Apr 8 00:36 image/VIDEO_TS/VIDEO_TS.IFO
# ls -l image/VIDEO_TS/VIDEO_TS.{BUP,IFO}
-r-xr-xr-x 1 root root 12288 Apr 8 00:36 image/VIDEO_TS/VIDEO_TS.BUP
-r-xr-xr-x 1 root root 12288 Apr 8 00:36 image/VIDEO_TS/VIDEO_TS.IFO
D’où venait le problème ? Il vient du fait que l’image soit une image ISO 9660 et non une image UDF.
# file image.iso
image.iso: ISO 9660 CD-ROM filesystem data 'blabla'
image.iso: ISO 9660 CD-ROM filesystem data 'blabla'
Solution: Reconstruire une image UDF. Pour cela, rien de plus facile qu’un coup de mkisofs (http://freshmeat.net/projects/mkisofs/):
# mkisofs -r -udf -o image.udf image/
[...]
# file image.udf
image.udf: UDF filesystem data (version 1.5) 'CDROM'
[...]
# file image.udf
image.udf: UDF filesystem data (version 1.5) 'CDROM'
(Note: image/ a été monté juste avant. Ce répertoire contient un répertoire VIDEO_TS et un AUDIO_TS)
Il ne reste plus qu’à profiter de son image dvd toute fraiche:
$ mplayer -dvd-device image.udf dvdnav://
[...]
Playing dvdnav://.
libdvdnav: Using dvdnav version 4.1.4
libdvdread: Using libdvdcss version 1.2.10 for DVD access
libdvdnav: DVD Title: CDROM
libdvdnav: DVD Serial Number: 4C05646C00000000
libdvdnav: DVD Title (Alternative):
libdvdnav: Unable to find map file '/root/.dvdnav/CDROM.map'
[...]
[...]
Playing dvdnav://.
libdvdnav: Using dvdnav version 4.1.4
libdvdread: Using libdvdcss version 1.2.10 for DVD access
libdvdnav: DVD Title: CDROM
libdvdnav: DVD Serial Number: 4C05646C00000000
libdvdnav: DVD Title (Alternative):
libdvdnav: Unable to find map file '/root/.dvdnav/CDROM.map'
[...]