Java ile GroupDocs.Metadata kullanarak mkv meta verilerini çıkarma

Bu kapsamlı rehberde Java’da mkv meta verilerini nasıl çıkarılır konusunu GroupDocs.Metadata kütüphanesini kullanarak öğreneceksiniz. Medya kataloğu oluşturuyor, kodlama parametrelerini doğruluyor ya da küçük resim oluşturmayı otomatikleştiriyor olun, Matroska (MKV) meta verilerini programatik olarak okumak sayısız manuel saati tasarruf ettirir. Nedenlerini, önkoşulları, tam kurulum adımlarını ve EBML başlıklarını, segment bilgilerini, etiketleri ve iz (track) verilerini ortaya çıkaran ayrıntılı kod parçacıklarını adım adım inceleyeceğiz.

Hızlı cevaplar

  • “read mkv metadata java” ne anlama geliyor? Java kullanarak MKV dosyalarından Matroska konteyner meta verilerini (başlıklar, codec’ler, süreler vb.) programatik olarak çıkarmaktır.
  • Hangi kütüphaneyi kullanmalıyım? GroupDocs.Metadata for Java, Matroska ve 50+ diğer format için tam özellikli, yüksek performanslı bir API sunar.
  • Lisans gerekir mi? Değerlendirme için ücretsiz deneme çalışır; ticari bir lisans tüm deneme sınırlamalarını kaldırır.
  • Diğer formatları da okuyabilir miyim? Evet – aynı API MP4, AVI, MOV, MP3 ve daha birçok konteyneri okur.
  • Çalışma zamanında internet erişimi gerekli mi? Hayır – JAR sınıf yolunuzda olduğunda tüm çıkarma işlemleri yerel olarak gerçekleşir.

Matroska (MKV) meta verileri nedir?

Matroska (MKV) meta verileri, bir Matroska konteyneri içinde depolanan yapısal ve açıklayıcı bilgilerin koleksiyonudur; EBML başlığı (dosya sürümü ve belge türü), segment detayları (süre, muxing uygulaması), kullanıcı tanımlı etiketler (başlıklar, açıklamalar) ve iz (track) özellikleri (audio/video codec ID’leri, dil, bit hızı) gibi. Bu verilere erişmek, aranabilir kataloglar oluşturmanıza, dosya bütünlüğünü doğrulamanıza veya küçük resim oluşturma gibi otomatik iş akışlarını yönlendirmenize olanak tanır.

Neden Java ile mkv meta verilerini okuyalım?

Java’dan MKV meta verilerini okumak, binlerce video dosyasının otomatik olarak kataloglanmasını, yayınlamadan önce codec ve dil gereksinimlerinin doğrulanmasını ve başlıklar, süreler ve iz dilleriyle aranabilir veri tabanlarının doldurulmasını sağlar. Ayrıca, birden çok konteynerden video meta verilerini çıkarmak için tek bir kod tabanı sunarak bakım yükünü azaltır ve medya hattınızda tutarlı kalite kontrolleri yapılmasını garantiler.

Neden GroupDocs.Metadata for Java kullanmalıyım?

GroupDocs.Metadata for Java, Matroska, MP4, AVI ve MOV dahil 50+ giriş ve çıkış formatını destekleyen olgun bir kütüphanedir. Kapsayıcı yapılarını akış (stream) olarak işler, bu sayede çok‑gigabayt dosyalarda bile bellek tüketimi düşük kalır. API, düşük seviyeli EBML ayrıştırmasını soyutlayarak iş mantığınıza odaklanmanızı sağlar. Entegrasyon, tek bir Maven bağımlılığı eklemek kadar basittir ve kütüphane en yeni codec spesifikasyonlarını karşılayacak şekilde sürekli güncellenir.

Önkoşullar

  • GroupDocs.Metadata for Java sürüm 24.12 veya üzeri.
  • Java Development Kit (JDK) 8 veya daha yeni bir sürüm yüklü.
  • Bağımlılıkları yönetmek için Maven (veya manuel JAR yönetimi).
  • Test amaçlı bir MKV dosyası, kodunuzdan referans verebileceğiniz bir klasörde bulunmalı (ör. YOUR_DOCUMENT_DIRECTORY).

GroupDocs.Metadata for Java kurulumu

GroupDocs.Metadata for Java, Matroska (MKV) dahil 50’den fazla dosya formatından meta veri okumasını sağlayan bir kütüphanedir. Projenize Maven ile ekleyin veya JAR dosyasını manuel olarak indirin.

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>

Doğrudan indirme:
Maven kullanmak istemiyorsanız, en son sürümü GroupDocs.Metadata for Java releases adresinden indirin.

Lisans edinme

Özellikleri keşfetmek için ücretsiz deneme ile başlayın. Üretim ortamı için bir lisans satın alın veya deneme sınırlamalarını kaldırmak amacıyla GroupDocs üzerinden geçici bir lisans alın.

Temel başlatma ve kurulum

Aşağıda GroupDocs.Metadata ile bir MKV dosyasını açmak için gereken minimum kod yer almaktadır.

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
        }
    }
}

GroupDocs.Metadata ile Java’da mkv meta verilerini nasıl okuyabilirim

Metadata bir MKV dosyasını temsil eden ana sınıftır ve meta verilerine erişim sağlar. new Metadata("path/to/file.mkv") ile MKV dosyanızı yükleyin ve uygun getter’ları – getRootPackageGeneric(), getSegments(), getTags(), ve getTracks() – çağırarak her meta veri bölümünü alın. Bu tek zincir, düşük seviyeli ayrıştırma kodu yazmadan EBML başlığı, segment bilgileri, kullanıcı etiketleri ve bireysel iz detaylarına tam görünürlük kazandırır.

Matroska EBML başlığını okuma

EBML başlığı, sürüm, belge türü ve dosya boyutu gibi temel dosya bilgilerini saklar.
getRootPackageGeneric() açılan dosyanın EBML başlık paketini döndürür.

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
        }
    }
}

Anahtar noktalar

  • getRootPackageGeneric() Matroska paketinin giriş noktasını döndürür.
  • EBML özellikleri (docType, version vb.) daha derin işleme geçmeden dosya uyumluluğunu doğrulamanıza olanak tanır.

Matroska segment bilgilerini okuma

Segmentler, genel medya zaman çizelgesini, oluşturma araçlarını ve isteğe bağlı başlık bilgisini tanımlar.
getSegments() süre ve oluşturma detaylarını içeren segment nesneleri koleksiyonunu getirir.

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
            }
        }
    }
}

Anahtar noktalar

  • getSegments() bir koleksiyon döndürür; her segment kendi başlığını, süresini ve oluşturma uygulaması detaylarını tutabilir.
  • Bu veri, oynatma listeleri oluşturmak veya bir dosya topluluğu üzerindeki kodlama parametrelerini doğrulamak için faydalıdır.

Matroska etiket meta verilerini okuma

Etiketler, başlıklar, sanatçılar veya özel notlar gibi insan tarafından okunabilir bilgileri saklar.
getTags() dosyayla ilişkili etiket girişlerinin listesini döndürür.

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
                }
            }
        }
    }
}

Anahtar noktalar

  • Etiketler targetType (ör. movie, track) ile düzenlenir.
  • simpleTag girişleri TITLE=My Video gibi anahtar/değer çiftlerini tutar.

Matroska iz (track) meta verilerini okuma

İzler, konteyner içindeki ayrı audio, video veya altyazı akışlarını temsil eder.
getTracks() her bir izin teknik özelliklerine erişim sağlar.

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
            }
        }
    }
}

Anahtar noktalar

  • track.getType() akışın video, audio veya altyazı olduğunu belirtir.
  • codecId codec’i tanımlar (ör. V_MPEG4/ISO/AVC).
  • Bu bilgi, kod dönüştürme hatları, kalite kontrolleri ve dinamik akış kararları için kritiktir.

Java’da mkv meta verilerini okuma için yaygın kullanım senaryoları

  • Medya katalogları – Hızlı arama için başlıklar, süreler ve dil kodlarıyla veritabanı tablolarını doldurun.
  • Otomatik kalite kontrol – Her dosyanın gerekli etiketleri içerdiğini ve codec standartlarına uygun olduğunu yayın öncesi doğrulayın.
  • Dinamik akış – Çalışma zamanında kullanıcı tercihine göre uygun audio veya altyazı izini seçin.
  • İçerik taşıma – Meta verileri bir kez çıkarın, ardından yeni bir depolama sistemi veya içerik‑teslim ağına enjekte edin.

Yaygın sorunlar ve çözüm yolları

SemptomMuhtemel nedenÇözüm
NullPointerException when accessing getEbmlHeader()Dosya yolu hatalı veya dosya bulunamadınew Metadata("...") içindeki yolu doğrulayın ve dosyanın diskte mevcut olduğundan emin olun.
No tags returnedMKV dosyasında etiket öğeleri yokMeta veri etiketleri içeren bir medya dosyası kullanın (ör. MKVToolNix ile eklenmiş).
Slow processing on large filesYetersiz heap belleğiJVM heap’ini artırın (-Xmx2g veya daha yüksek) veya mümkünse dosyayı parçalara bölerek işleyin.

Sıkça sorulan sorular

S: Aynı kütüphane ile diğer video formatlarından meta veri çıkarabilir miyim?
C: Evet, GroupDocs.Metadata MP4, AVI, MOV ve daha birçok formatı destekler. API deseni aynıdır – sadece format için uygun kök paket sınıfını kullanın.

S: Üretim ortamında lisans gerekli mi?
C: Ticari bir lisans deneme sınırlamalarını kaldırır ve tam işlevselliği açar. Kütüphane değerlendirme amaçlı deneme modunda çalışır.

S: Çıkarma işlemi çevrim dışı mı gerçekleşir?
C: Kesinlikle. JAR sınıf yolunda olduğunda tüm meta veri okumaları yerel olarak, ağ çağrısı olmadan yapılır.

S: Kütüphane çok büyük MKV dosyalarında (birkaç GB) nasıl performans gösterir?
C: Kütüphane konteyner yapısını akış olarak işler, bellek kullanımını düşük tutar. Büyük etiket koleksiyonları için JVM heap’inin yeterli olduğundan emin olun ve çok büyük dosyalar işliyorsanız -Xmx değerini artırmayı düşünün.

S: Meta veriyi değiştirip dosyaya geri yazabilir miyim?
C: GroupDocs.Metadata öncelikle okuma üzerine odaklanır. Yazma desteği sınırlıdır; yazma‑geri yetenekleri için en son API belgelerine bakın.


Son Güncelleme: 2026-09-02
Test Edilen: GroupDocs.Metadata 24.12 for Java
Yazar: GroupDocs

İlgili Eğitimler