Mychapterdb - logiciel de chapitrage de vidéos (en particulier les mkv)

Soyez le premier à donner votre avis sur cette source.

Vue 16 449 fois - Téléchargée 1 103 fois

Description

Tout d'abord, voici une impression d'écran du logiciel:
http://mychapterdb.org/img/mychapterdb-view.png

Et voici le résultat lors de la lecture de la vidéo:
http://membres.lycos.fr/ftp242835074/MyChapterDB/rock-chapters.png

Ce logiciel permet de gérer les chapitres d'une vidéo. Il a été spécifiquement conçu pour les intégrer ou les extraire des fichier .MKV (format open-source, http://www.matroska.org), mais le fichier généré peut aussi être lu séparément de la vidéo par un lecteur tel que BSPlayer (même si c'est mieux de le muxer dans un MKV, c'est plus pratique).

Voici ce qu'il fait:
- Ouverture des fichiers .IFO des DVD-Vidéo, récupération des timestamps des chapitres dans la structure du IFO, corrige le bug du dernier chapitre.
- Ouverture des fichiers .MKV, récupération des chapitres et de leurs noms dans la structure du MKV.
- Ouverture des fichiers textes OGG CHAPTERS (générés par exemple par DVDDecrypter).
- Ouverture des fichiers textes XML qui contiennent des chapitres.
(supporte les différents codages -iso8859-1, utf8, etc...-)

- Édition des chapitres et de leurs timestamp dans une interface conviviale.

- Sauvegarde des chapitres en fichier texte OGG CHAPTERS.
- Sauvegarde des chapitres en fichier XML (conservant des informations supplémentaires du MKV).
(il suffit de mettre le .txt ou le .xml ainsi sauvé en entrée dans MKVToolNix pour chapitrer sa vidéo)

La structure sous-jacente est un arbre, ce qui donne la possibilité d'utiliser des sous-chapitres, mais aussi des listes de lecture, mais l'interface pour cela n'est pas encore programmée.

Nécessite JAVA 1.5.

Pour le télécharger, rendez-vous sur www.mychapterdb.org.

Pour plus d'infos:
http://www.unite-video.com/phpbb/viewtopic.php?t=6989
http://forum.doom9.org/showthread.php?p=700466

Source / Exemple :


http://matroska.epsylon.org/downloads/MyChapterDB.src.rar

Conclusion :


Bon maintenant je vais essayer d'expliquer ce que fait chaque module, ce qui permettra de trouver la partie du code source qui vous intéresse...

Déjà, le programme respecte le design pattern Model-View-Controller (MVC), avec une séparation au niveau des packages : un package model et un package view (controller est géré dans view). Le modèle est largement inspiré de la structure MKV à respecter, et par conséquent quasiment identique à la structure XML des fichiers à muxer en MKV.
La classe Session respecte le design pattern Singleton, et contient les informations d'environnement (gère un fichier de configuration, la présision -milli ou nano-, si les chapitres ont été sauvés, etc...).

Au niveau des parsers (modules qui permettent l'ouverture et la "compréhension" des différents types de fichiers), pour les débutants, le parseur OGG Chapters est intéressant (ouverture et lecture d'un fichier texte), pour les un peu plus confirmés, le parseur XML personnel (je n'ai pas utilisé d'api spécifique, j'ai fait mon propre parser XML) permet de voir comment lire un fichier XML sous forme d'arbre (même si ici il est spécifique à la lecture des chapitres).
Et enfin, pour ceux que ça intéresse, j'ai fait aussi mon propre parser IFO (qui permet de déterminer les chapitres à partir de la structure du DVD) et mon propre parser MKV (bah ouais ça n'a jamais été fait en java, d'hab c'est en c++, donc fallait bien le faire).
C'est de la lecture binaire, avec lecture d'entiers de taille variable (basée sur UTF8) pour le MKV.
D'ailleurs je remercie robux4 (développeur mkv) pour m'avoir un peu expliqué "en français" les spécifications techniques du mkv (qui sont disponibles ici: http://www.matroska.org/technical/specs/index.html), ainsi que alexnoe, développeur de avimuxgui, pour son aide, et pour m'avoir créé des MKV tordus pour tester si le programme les ouvrait :-)
Je remercie aussi Toff pour le lien vers la documentation sur la structure des .IFO qu'il m'a donné.

Pour les débutants, le code source des "writers" peut être intéressant aussi (génération de fichier texte et xml à partir du modèle).

Au niveau de l'interface, une classe qui gère toutes les images (ImageManager), un JTabbedPane (composant à onglets), une JTable éditable (avec son propre modèle utilisant le modèle de l'application).

Voilà à peu près ce qu'on peut dire au niveau du code source...

Si vous avez des questions ou des suggestions, n'hésitez pas :-)

Codes Sources

A voir également

Ajouter un commentaire

Commentaires

Messages postés
2835
Date d'inscription
lundi 11 août 2003
Statut
Modérateur
Dernière intervention
16 décembre 2006
10
Codes Sources étant un site concernant les sources, il n'y a aucun intérêt à avoir des liens externes vers les sources ... simple non ? ;-) De plus si demain tu coupes ou supprime le projet, la source n'a plus lieu d'être et ça en tant qu'administrateur on peut pas s'amuser à vérifier ...

En tout cas merci pour ta réaction rapide :p

++
Messages postés
29
Date d'inscription
lundi 20 décembre 2004
Statut
Membre
Dernière intervention
21 septembre 2007

Bah j'ai mis le lien qui est hébergé sur mon ftp lycos, en .rar.

C'est grave?
Messages postés
2835
Date d'inscription
lundi 11 août 2003
Statut
Modérateur
Dernière intervention
16 décembre 2006
10
Met la source en ZIP dans la source sinon : squizz !

++

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.

Du même auteur (rom1v)