LsDvd ou comment mettre à nu votre Dvd

Un petit utilitaire sympa que j’ai trouvé en cherchant pour avoir/éditer des infos dans les fichiers IFO des dvd (ça pour un post que vous verrez dans quelques jours).

Ici il ne fait que lister mais il liste bien.  En quelques secondes vous pourrez connaitre l’entièreté de la structure de votre DVD de façon sommaire.

lsdvd CHEMIN_DU_DVD

Ou alors plus de précisions sur les cellules,  les chapitres, les bandes-son, les sous-titres, les angles de vision, la video utilisée. Je vous indique les plus utile, pour le reste le man existe :

lsdvd -c CHEMIN_DU_DVD #Chapters information
lsdvd -a CHEMIN_DU_DVD #Audio Information
lsdvd -s CHEMIN_DU_DVD #Subtitles Information
lsdvd -x CHEMIN_DU_DVD #All information

Bref une véritable mine d’informations quand on sait à quel point la structure d’un dvd peut être parfois complexe et non intuitive pour le ‘ripper’ ou toute personne voulant en savoir un peu plus sur son DVD.

Autre petit truc sympa les différents formats d’exportations des données récupérées: par défaut c’est le plus simple, c’est la version pour les humains sinon il en existe pléthore d’autres (Perl hash, Python, Ruby, Xml).

lsdvd -Op CHEMIN_DU_DVD #Perl hash version
lsdvd -Ox CHEMIN_DU_DVD #XML Version

Il va de soit que l’on peut combiner les deux instructions.

Quelques exemples :

lsdvd DVD_FILM/
Title: 01, Length: 01:33:00.280 Chapters: 13, Cells: 14, Audio streams: 02, Subpictures: 02
Title: 02, Length: 00:00:21.060 Chapters: 01, Cells: 01, Audio streams: 01, Subpictures: 00
Longest track: 01

On peut remarquer 2 pistes sur ce DVD: une ayant la durée d’un film l’autre étant surement la vidéo du menu.
On peut également voir que la piste possède 13 chapitres, 2 bandes sons et 2 sous-titres.
Il notifie de la plus longue piste rencontrée.  Quand on a une structure de DVD plus complexe ça peut être pratique de pouvoir rapidement identifier la piste de son film.

lsdvd -c DVD_FILM/
Chapter: 01, Length: 00:06:37.370, Start Cell: 01
Chapter: 02, Length: 00:06:02.080, Start Cell: 02
Chapter: 03, Length: 00:11:01.320, Start Cell: 03
Chapter: 04, Length: 00:04:21.330, Start Cell: 04
Chapter: 05, Length: 00:09:33.130, Start Cell: 05
Chapter: 06, Length: 00:06:28.080, Start Cell: 06
Chapter: 07, Length: 00:06:21.410, Start Cell: 07
Chapter: 08, Length: 00:07:04.060, Start Cell: 09
Chapter: 09, Length: 00:07:59.370, Start Cell: 10
Chapter: 10, Length: 00:05:44.060, Start Cell: 11
Chapter: 11, Length: 00:10:58.170, Start Cell: 12
Chapter: 12, Length: 00:10:45.130, Start Cell: 13
Chapter: 13, Length: 00:00:00.090, Start Cell: 14

Plus d’infos sur les chapitres : la durée de chacun, et dans quelle cellule (concept propre aux DVD) il démarre.
Ici c’est surtout informatif, on ne pourra pas facilement utiliser les données. Un autre programme comme ‘dvdxchap’ (dont je parle ici) permet d’extraire les timecodes de début de chapitre afin de les utiliser dans des ogg ou encore des mkv.

ls -a DVD_FILM/
Audio: 1, Language: fr – Francais, Format: ac3, Frequency: 48000, Quantization: drc, Channels: 2, AP: 0, Content: Undefined, Stream id: 0x80
Audio: 2, Language: fr – Francais, Format: ac3, Frequency: 48000, Quantization: drc, Channels: 6, AP: 0, Content: Undefined, Stream id: 0x81

Deux bandes sons, une 5.1 très certainement (Channels: 6) et une stereo le tout en ac3 et visiblement que en français. le stream id est parfois utilisé sur certains logiciels de rippage (l’info peut être pratique quand on veut savoir quelle bande audio lui faire sélectionner)

ls -s DVD_FILM/
Subtitle: 01, Language: en – English, Content: Undefined, Stream id: 0x20,
Subtitle: 02, Language: nl – Nederlands, Content: Undefined, Stream id: 0x21,


Pour finir l’inspection: un sous titre en néerlandais et un en anglais.

Je me permet de montrer un petit extrait des autres formats d’exportation perl hash et xml :

Xml :


    UN_FILM/

        1
        5580.280
        
            1
            en
            English
            Undefined
            0x20
        
        
            2
            nl
            Nederlands
            Undefined
            0x21
        
    
    1

Hash Perl

our %lsdvd = (
  device => 'UN_FILM/',
  title => 'unknown',
  track => [
    {
      ix => 1,
      length => 5580.280,
      subp => [
        {
          ix => 1,
          langcode => 'en',
          language => 'English',
          content => 'Undefined',
          streamid => '0x20',
        },
        {
          ix => 2,
          langcode => 'nl',
          language => 'Nederlands',
          content => 'Undefined',
          streamid => '0x21',
        },
      ],
    }
  ],
  longest_track => 1,
);

Et voici un petit exemple d’une structure de DVD contenant une série :

lsdvd LE_DVD_SERIE/
Title: 01, Length: 02:52:56.010 Chapters: 29, Cells: 32, Audio streams: 03, Subpictures: 06 #Voir tous les épisodes du DVD d’un coup
Title: 02, Length: 00:00:01.000 Chapters: 02, Cells: 02, Audio streams: 03, Subpictures: 06
Title: 03, Length: 00:00:01.000 Chapters: 02, Cells: 02, Audio streams: 03, Subpictures: 06
Title: 04, Length: 00:00:01.000 Chapters: 02, Cells: 02, Audio streams: 03, Subpictures: 06
Title: 05, Length: 00:00:01.000 Chapters: 02, Cells: 02, Audio streams: 03, Subpictures: 06
Title: 06, Length: 00:00:01.000 Chapters: 02, Cells: 02, Audio streams: 03, Subpictures: 06
Title: 07, Length: 00:00:01.000 Chapters: 02, Cells: 02, Audio streams: 03, Subpictures: 06
Title: 08, Length: 00:43:15.076 Chapters: 08, Cells: 08, Audio streams: 03, Subpictures: 06 #Episode 1
Title: 09, Length: 00:43:12.253 Chapters: 08, Cells: 08, Audio streams: 03, Subpictures: 06
#Episode 2
Title: 10, Length: 00:43:13.310 Chapters: 08, Cells: 08, Audio streams: 03, Subpictures: 06 #Episode 3
Title: 11, Length: 00:43:14.076 Chapters: 08, Cells: 08, Audio streams: 03, Subpictures: 06 #Episode 4
Title: 12, Length: 00:07:44.186 Chapters: 09, Cells: 16, Audio streams: 03, Subpictures: 06 #Bande de lancement ou menu
Title: 13, Length: 00:00:00.176 Chapters: 01, Cells: 01, Audio streams: 03, Subpictures: 06
Title: 14, Length: 00:00:01.000 Chapters: 02, Cells: 02, Audio streams: 00, Subpictures: 00
Title: 15, Length: 00:00:01.000 Chapters: 02, Cells: 02, Audio streams: 00, Subpictures: 00
Title: 16, Length: 00:00:01.000 Chapters: 02, Cells: 02, Audio streams: 00, Subpictures: 00
Title: 17, Length: 00:00:01.000 Chapters: 02, Cells: 02, Audio streams: 00, Subpictures: 00
Title: 18, Length: 00:00:01.000 Chapters: 02, Cells: 02, Audio streams: 00, Subpictures: 00
Longest track: 01

Vous pouvez clairement admettre la complexité de la structure du DVD et le grand intérêt d’un programme tel que lsdvd pour repérer les segments qui nous intéressent.
Ici, si on voulait extraire les épisodes 1 par 1 du DVD on sait maintenant qu’il s’agit de la track 08-11 et on pourrait en demander les chapitres (‘dvdxchapter –title 8’).

Posted in Linux, Vidéo & Audio by El Gnap at April 8th, 2010.
Tags: , , , , , , , , ,

One Response to “LsDvd ou comment mettre à nu votre Dvd”

  1. […] mieux c’est de faire un tour dessus avec lsdvd.  Et un autre truc pratique c’est de taper un chiffre démesuré pour connaitre le nombre de […]