Extraire les métadonnées MKV en Java avec GroupDocs.Metadata

Les fichiers multimédias sont partout, et pouvoir lire leurs détails internes est crucial pour la gestion des médias, le catalogage et l’analyse. Dans ce tutoriel, vous apprendrez comment extraire les métadonnées mkv en java en utilisant la puissante bibliothèque GroupDocs.Metadata. Nous parcourrons la configuration de la bibliothèque, l’extraction des en‑têtes EBML, des informations de segment, des balises et des données de piste d’un fichier MKV, et vous montrerons des scénarios réels où ces connaissances sont utiles.

Réponses rapides

  • Que signifie « extract mkv metadata java » ? C’est le processus de lecture programmatique des métadonnées des fichiers MKV en Java.
  • Quelle bibliothèque devrais‑je utiliser ? GroupDocs.Metadata pour Java fournit une API complète pour les fichiers Matroska.
  • Ai‑je besoin d’une licence ? Un essai gratuit suffit pour l’évaluation ; une licence supprime les limites d’utilisation.
  • Puis‑je lire d’autres formats ? Oui, la même bibliothèque prend en charge MP4, AVI, MP3 et bien d’autres.
  • Un accès Internet est‑il requis à l’exécution ? Non, toute l’extraction se fait localement après l’ajout de la bibliothèque à votre projet.

Qu’est‑ce que les métadonnées Matroska (MKV) ?

Matroska est un format de conteneur ouvert et flexible. Ses métadonnées comprennent l’en‑tête EBML (version du fichier, type de document), les détails du segment (durée, application de multiplexage), les balises (titres, descriptions) et les spécifications des pistes (codecs audio/vidéo, langue). Accéder à ces données vous permet de créer des catalogues médias, de vérifier l’intégrité des fichiers ou de générer automatiquement des miniatures.

Pourquoi utiliser GroupDocs.Metadata pour Java ?

  • API complète – Gère EBML, segments, balises et pistes sans analyse bas‑niveau.
  • Optimisé pour les performances – Fonctionne efficacement même avec de gros fichiers.
  • Support multi‑format – Le même code peut être réutilisé pour d’autres conteneurs audio/vidéo.
  • Intégration Maven simple – Ajoutez une seule dépendance et commencez l’extraction.

Prérequis

  • GroupDocs.Metadata pour Java version 24.12 ou supérieure.
  • Java Development Kit (JDK) installé.
  • Maven (ou gestion manuelle des JAR).
  • Un fichier MKV pour expérimenter (placez‑le dans YOUR_DOCUMENT_DIRECTORY).

Configuration de GroupDocs.Metadata pour Java

Ajoutez la bibliothèque à votre projet en utilisant Maven ou téléchargez le JAR directement.

Maven:

<repositories>
   <repository>
      <id>repository.groupdocs.com</id>
      <name>GroupDocs Repository</name>
      <url>https://releases.groupdocs.com/metadata/java/</url>
   </repository>
</repositories>

<dependencies>
   <dependency>
      <groupId>com.groupdocs</groupId>
      <artifactId>groupdocs-metadata</artifactId>
      <version>24.12</version>
   </dependency>
</dependencies>

Téléchargement direct :
Si vous préférez ne pas utiliser Maven, téléchargez la dernière version depuis GroupDocs.Metadata for Java releases.

Acquisition de licence

Commencez avec un essai gratuit pour explorer les fonctionnalités. Pour une utilisation en production, achetez une licence ou obtenez une licence temporaire depuis GroupDocs afin de supprimer les limitations de l’essai.

Initialisation et configuration de base

Voici le code minimal nécessaire pour ouvrir un fichier MKV avec GroupDocs.Metadata.

import com.groupdocs.metadata.Metadata;
import com.groupdocs.metadata.core.MatroskaRootPackage;

public class MetadataExtraction {
    public static void main(String[] args) {
        try (Metadata metadata = new Metadata("YOUR_DOCUMENT_DIRECTORY/input.mkv")) {
            MatroskaRootPackage root = metadata.getRootPackageGeneric();
            // Access and manipulate metadata here
        }
    }
}

Comment extraire les métadonnées mkv en java avec GroupDocs.Metadata

Nous allons maintenant explorer chaque zone de métadonnées que vous pouvez lire.

Lecture de l’en‑tête EBML Matroska

L’en‑tête EBML stocke les informations de base du fichier telles que la version et le type de document.

import com.groupdocs.metadata.Metadata;
import com.groupdocs.metadata.core.MatroskaRootPackage;

public class ReadMatroskaEBMLHeader {
    public static void run() {
        try (Metadata metadata = new Metadata("YOUR_DOCUMENT_DIRECTORY/input.mkv")) {
            MatroskaRootPackage root = metadata.getRootPackageGeneric();

            String docType = root.getMatroskaPackage().getEbmlHeader().getDocType();
            String docTypeReadVersion = root.getMatroskaPackage().getEbmlHeader().getDocTypeReadVersion();
            String docTypeVersion = root.getMatroskaPackage().getEbmlHeader().getDocTypeVersion();
            String readVersion = root.getMatroskaPackage().getEbmlHeader().getReadVersion();
            String version = root.getMatroskaPackage().getEbmlHeader().getVersion();

            // Use the extracted header details as needed
        }
    }
}

Points clés

  • getRootPackageGeneric() vous donne le point d’entrée du package Matroska.
  • Les propriétés EBML (docType, version, etc.) vous aident à vérifier la compatibilité du fichier.

Lecture des informations de segment Matroska

Les segments décrivent la chronologie globale du média et les outils de création.

import com.groupdocs.metadata.Metadata;
import com.groupdocs.metadata.core.MatroskaRootPackage;

public class ReadMatroskaSegmentInformation {
    public static void run() {
        try (Metadata metadata = new Metadata("YOUR_DOCUMENT_DIRECTORY/input.mkv")) {
            MatroskaRootPackage root = metadata.getRootPackageGeneric();

            for (var segment : root.getMatroskaPackage().getSegments()) {
                String dateUtc = segment.getDateUtc();
                long duration = segment.getDuration();
                String muxingApp = segment.getMuxingApp();
                String segmentFilename = segment.getSegmentFilename();
                String segmentUid = segment.getSegmentUid();
                long timecodeScale = segment.getTimecodeScale();
                String title = segment.getTitle();
                String writingApp = segment.getWritingApp();

                // Process the extracted segment information as needed
            }
        }
    }
}

Points clés

  • getSegments() renvoie une collection ; chaque segment peut contenir son propre titre, sa durée et les détails de l’application de création.
  • Utile pour créer des listes de lecture ou valider les paramètres d’encodage.

Lecture des métadonnées de balises Matroska

Les balises stockent des informations lisibles par l’homme comme les titres, les artistes ou des notes personnalisées.

import com.groupdocs.metadata.Metadata;
import com.groupdocs.metadata.core.MatroskaRootPackage;
import com.groupdocs.metadata.core.MetadataProperty;

public class ReadMatroskaTagMetadata {
    public static void run() {
        try (Metadata metadata = new Metadata("YOUR_DOCUMENT_DIRECTORY/input.mkv")) {
            MatroskaRootPackage root = metadata.getRootPackageGeneric();

            for (var tag : root.getMatroskaPackage().getTags()) {
                String targetType = tag.getTargetType();
                String targetTypeValue = tag.getTargetTypeValue();
                String tagTrackUid = tag.getTagTrackUid();

                for (MetadataProperty simpleTag : tag.getSimpleTags()) {
                    String name = simpleTag.getName();
                    String value = simpleTag.getValue();

                    // Utilize the extracted tag information as needed
                }
            }
        }
    }
}

Points clés

  • Les balises sont organisées par targetType (par ex. movie, track).
  • Les entrées simpleTag contiennent des paires clé/valeur telles que TITLE=My Video.

Lecture des métadonnées de piste Matroska

Les pistes représentent les flux audio, vidéo ou sous‑titres individuels.

import com.groupdocs.metadata.Metadata;
import com.groupdocs.metadata.core.MatroskaRootPackage;

public class ReadMatroskaTrackMetadata {
    public static void run() {
        try (Metadata metadata = new Metadata("YOUR_DOCUMENT_DIRECTORY/input.mkv")) {
            MatroskaRootPackage root = metadata.getRootPackageGeneric();

            for (var track : root.getMatroskaPackage().getTracks()) {
                String trackType = track.getType();
                String codecId = track.getCodecId();
                String language = track.getLanguage();
                long duration = track.getDuration();
                
                // Process the extracted track information as needed
            }
        }
    }
}

Points clés

  • track.getType() indique s’il s’agit de vidéo, d’audio ou de sous‑titres.
  • codecId vous permet d’identifier le codec (par ex. V_MPEG4/ISO/AVC).
  • Ces données sont essentielles pour les pipelines de transcodage ou les contrôles de qualité.

Problèmes courants et dépannage

SymptômeCause probableSolution
NullPointerException lors de l’accès à getEbmlHeader()Chemin du fichier incorrect ou fichier introuvableVérifiez le chemin dans new Metadata("...") et assurez‑vous que le fichier existe.
Aucun tag retournéLe fichier MKV ne contient pas d’éléments de baliseUtilisez un fichier média contenant des balises de métadonnées (par ex. ajoutées via MKVToolNix).
Traitement lent sur de gros fichiersMémoire heap insuffisanteAugmentez le heap JVM (-Xmx2g ou plus) ou traitez le fichier par morceaux si possible.

Questions fréquentes

Q : Puis‑je extraire des métadonnées d’autres formats vidéo avec la même bibliothèque ?
R : Oui, GroupDocs.Metadata prend en charge MP4, AVI, MOV et bien d’autres. Le modèle d’API est similaire — il suffit d’utiliser la classe de package racine appropriée.

Q : Une licence est‑elle requise pour une utilisation en production ?
R : Une licence supprime les limites de l’essai et offre la pleine fonctionnalité. La bibliothèque fonctionne en mode essai pour l’évaluation.

Q : L’extraction se fait‑elle hors ligne ?
R : Absolument. Une fois le JAR présent sur votre classpath, toutes les lectures de métadonnées sont effectuées localement sans appels réseau.

Q : Comment cela se comporte‑t‑il sur des fichiers MKV très volumineux (plusieurs Go) ?
R : La bibliothèque diffuse la structure du conteneur, de sorte que l’utilisation de la mémoire reste modeste, mais assurez‑vous que votre JVM dispose d’un heap suffisant pour les collections de balises volumineuses.

Q : Puis‑je modifier les métadonnées et les réécrire dans le fichier ?
R : GroupDocs.Metadata se concentre principalement sur la lecture. Les capacités d’écriture sont limitées ; consultez la documentation API la plus récente pour tout support d’écriture éventuel.

Conclusion

Vous disposez maintenant d’un guide complet et prêt pour la production pour extraire les métadonnées mkv en java à l’aide de GroupDocs.Metadata. En exploitant les en‑têtes EBML, les informations de segment, les balises et les détails de piste, vous pouvez alimenter des catalogues médias, automatiser les contrôles de qualité ou enrichir les services de streaming vidéo. Expérimentez avec les extraits de code, adaptez‑les à vos propres flux de travail et explorez le support plus large de la bibliothèque pour encore plus de possibilités.


Dernière mise à jour : 2025-12-22
Testé avec : GroupDocs.Metadata 24.12 for Java
Auteur : GroupDocs