GroupDocs.Metadata for Java で ASF メタデータを抽出

はじめに

今日のデジタル環境では、マルチメディアコンテンツを効率的に管理することが重要です。メディアファイルから ASF メタデータを抽出 する必要がある場合、手作業で行うと時間がかかりミスも起きやすくなります。本チュートリアルでは、 GroupDocs.Metadata for Java を使用して ASF のさまざまなプロパティを読み取り表示する方法を解説し、資産の整理・検索・処理を自信を持って行えるようにします。

学習内容

  • Java プロジェクトに GroupDocs.Metadata を設定する方法
  • 作成日、ファイル ID、フラグなど ASF メタデータを抽出 する方法
  • ASF ファイルに埋め込まれたコーデック情報を読み取る方法
  • 詳細なメタデータ記述子とベースストリームプロパティを表示する方法

それでは、前提条件から始めましょう。

クイックアンサー

  • What does “extract ASF metadata” mean? プログラムから ASF ファイルに埋め込まれた情報(タイムスタンプ、コーデック、記述子など)を読み取ることを指します。
  • Which library is required? GroupDocs.Metadata for Java(バージョン 24.12 以降)。
  • Do I need a license? 開発時は無料トライアルまたは一時ライセンスで動作します。商用・本番環境では正式ライセンスが必要です。
  • What Java version is supported? JDK 8 以上。
  • Can I use Maven? はい – Maven が推奨される依存関係マネージャです。

前提条件

  • Java Development Kit (JDK) 8 以上がインストールされていること。
  • IDE(IntelliJ IDEA や Eclipse など)で快適にコーディングできる環境。
  • Maven が IDE に設定されていること(任意ですが推奨)。
  • Java と外部ライブラリの基本的な知識。

Java 用 GroupDocs.Metadata の設定

Maven のインストール

pom.xml にリポジトリと依存関係を追加します。

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

直接ダウンロード

Maven を使用したくない場合は、GroupDocs.Metadata for Java releases から最新の JAR をダウンロードしてください。

ライセンスの概要

  • 無料トライアル – GroupDocs のウェブサイトで評価用に利用可能。
  • 一時ライセンス – 開発中に制限なくすべての機能を試せます。
  • フルライセンス – 商用または本番環境での導入に必須。

基本的な初期化

以下は GroupDocs.Metadata で ASF ファイルを開くための最小コードです。

import com.groupdocs.metadata.Metadata;

class MetadataExample {
    public static void main(String[] args) {
        try (Metadata metadata = new Metadata("YOUR_DOCUMENT_DIRECTORY/input.asf")) {
            // Your code for accessing metadata properties will go here.
        }
    }
}

ASF メタデータとは何ですか?

ASF(Advanced Systems Format)は、Microsoft が提供するストリーミング形式で、音声・動画・メタデータを単一コンテナに格納します。メタデータには作成タイムスタンプ、コーデック情報、ストリーム記述子などが含まれます。 ASF メタデータを抽出 することで、ファイルの出所やエンコードパラメータ、コンテンツの説明をプログラムから取得でき、メディアライブラリやトランスコーディングパイプライン、コンプライアンス監査に不可欠です。

GroupDocs.Metadata で ASF メタデータを抽出する理由

  • ゼロコード解析 – 低レベルの ASF パーサーを自前で実装する必要がありません。
  • リッチオブジェクトモデル – 直感的な Java クラスを通じてプロパティ、コーデック、記述子、ストリーム詳細にアクセスできます。
  • クロスプラットフォーム – Java が動作するあらゆる OS で利用可能です。
  • ライセンスの柔軟性 – トライアルから始め、必要に応じてフルライセンスへ拡張できます。

実装ガイド

以下のセクションでは、 ASF メタデータを抽出 する具体的なコード例を段階的に示します。

基本的な ASF メタデータプロパティの読み取り

Overview – 作成日、ファイル ID、フラグといった基本情報を取得します。

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

class ReadBasicProperties {
    public static void main(String[] args) {
        try (Metadata metadata = new Metadata("YOUR_DOCUMENT_DIRECTORY/input.asf")) {
            AsfRootPackage root = metadata.getRootPackageGeneric();
            com.groupdocs.metadata.core.AsfPackage asfPackage = root.getAsfPackage();

            System.out.println("Creation date: " + asfPackage.getCreationDate());
            System.out.println("File id: " + asfPackage.getFileID());
            System.out.println("Flags: " + asfPackage.getFlags());
        }
    }
}

Why it matters: 作成日を把握することでバージョン管理が容易になり、ファイル ID はシステム間で資産を一意に識別できます。

ASFコーデック情報の表示

Overview – オーディオ・ビデオストリームで使用されているコーデックを列挙します。

import com.groupdocs.metadata.core.AsfCodec;

class ReadCodecInformation {
    public static void main(String[] args) {
        try (Metadata metadata = new Metadata("YOUR_DOCUMENT_DIRECTORY/input.asf")) {
            AsfRootPackage root = metadata.getRootPackageGeneric();
            com.groupdocs.metadata.core.AsfPackage asfPackage = root.getAsfPackage();

            for (AsfCodec codecInfo : asfPackage.getCodecInformation()) {
                System.out.println("Codec type: " + codecInfo.getCodecType());
                System.out.println("Description: " + codecInfo.getDescription());
                System.out.println("Codec information: " + codecInfo.getInformation());
                System.out.println(codecInfo.getName());
            }
        }
    }
}

Why it matters: コーデック情報は再生デバイスとの互換性確認や、トランスコードの必要性判断に重要です。

メタデータ記述子の表示

Overview – 言語、ストリーム番号、オリジナルタイトルなどの詳細記述子を取得します。

import com.groupdocs.metadata.core.AsfBaseDescriptor;
import com.groupdocs.metadata.core.AsfMetadataDescriptor;

class ReadMetadataDescriptors {
    public static void main(String[] args) {
        try (Metadata metadata = new Metadata("YOUR_DOCUMENT_DIRECTORY/input.asf")) {
            AsfRootPackage root = metadata.getRootPackageGeneric();
            com.groupdocs.metadata.core.AsfPackage asfPackage = root.getAsfPackage();

            for (AsfBaseDescriptor descriptor : asfPackage.getMetadataDescriptors()) {
                System.out.println("Name: " + descriptor.getName());
                System.out.println("Value: " + descriptor.getValue());
                System.out.println("Content type: " + descriptor.getAsfContentType());

                if (descriptor instanceof AsfMetadataDescriptor) {
                    AsfMetadataDescriptor metadataDescriptor = (AsfMetadataDescriptor) descriptor;
                    System.out.println("Language: " + metadataDescriptor.getLanguage());
                    System.out.println("Stream number: " + metadataDescriptor.getStreamNumber());
                    System.out.println("Original name: " + metadataDescriptor.getOriginalName());
                }
            }
        }
    }
}

Why it matters: 記述子は字幕の言語や元ファイル名など、カタログ化に役立つ文脈情報を提供します。

基本ストリームプロパティの表示

Overview – 各ベースストリームのビットレート、タイミング、言語情報にアクセスします。

import com.groupdocs.metadata.core.AsfBaseStreamProperty;

class ReadBaseStreamProperties {
    public static void main(String[] args) {
        try (Metadata metadata = new Metadata("YOUR_DOCUMENT_DIRECTORY/input.asf")) {
            AsfRootPackage root = metadata.getRootPackageGeneric();
            com.groupdocs.metadata.core.AsfPackage asfPackage = root.getAsfPackage();

            for (AsfBaseStreamProperty property : asfPackage.getStreamProperties()) {
                System.out.println("Alternate bitrate: " + property.getAlternateBitrate());
                System.out.println("Average bitrate: " + property.getAverageBitrate());
                System.out.println("Average time per frame: " + property.getAverageTimePerFrame());
                System.out.println("Bitrate: " + property.getBitrate());
                System.out.println("Stream end time: " + property.getEndTime());
                System.out.println("Stream flags: " + property.getFlags());
                System.out.println("Stream language: " + property.getLanguage());
                System.out.println("Stream start time: " + property.getStartTime());
                System.out.println("Stream number: " + property.getStreamNumber());
            }
        }
    }
}

Why it matters: ストリームプロパティは品質(ビットレート)の評価や、再生・編集時の音声・映像同期に役立ちます。

よくある問題とトラブルシューティング

症状考えられる原因対策
NullPointerExceptiongetAsfPackage() 呼び出し時に発生ファイルパスが間違っている、または有効な ASF コンテナではないパスを確認し、ファイルが正しい ASF 形式であることを確認してください
コーデック情報が表示されないASF ファイルがライブラリバージョンで認識されない独自コーデックを使用しているGroupDocs.Metadata を最新バージョンに更新するか、カスタムコーデックパーサーを使用してください
記述子リストが空ファイルにメタデータ記述子が含まれていない(エンコード時に除去された)メタデータが埋め込まれたソースファイルを使用するか、メタデータ保持設定で再エンコードしてください

よくある質問

Q: 同じライブラリを使って、他のビデオ形式からメタデータを抽出できますか? A: はい。GroupDocs.Metadata は MP4、MKV、AVI など、多くの形式をサポートしています。適切なパッケージクラスをインスタンス化するだけです。

Q: 抽出後に ASF メタデータを変更することはできますか? A: もちろんです。ライブラリはほとんどのプロパティに対して setter メソッドを提供しており、ファイルを編集して保存できます。

Q: 大きな ASF ファイルには 64 ビット JVM が必要ですか? A: 必ずしも必要ではありませんが、64 ビット JVM を使用するとヒープ領域が広くなり、非常に大きなメディアファイルを処理する際に役立ちます。

Q: ライセンスは試用版の使用にどのような影響を与えますか? A: 試用版ライセンスでは、すべての機能制限が解除されますが、特定の出力にウォーターマークが追加されます。本番環境では、フルライセンスをご購入ください。

Q: このコードは Android で実行できますか? A: GroupDocs.Metadata は Java SE 用にビルドされています。Android では、.NET バージョンまたは互換性のあるラッパーを使用する必要があります。

まとめ

このガイドに従って、 GroupDocs.Metadata for Java を使用した ASF メタデータの抽出 方法を習得できました。基本プロパティ、コーデック情報、詳細記述子、ストリーム属性を読み取ることで、メディア資産をフルに可視化できます。次のステップとして、バッチ処理パイプラインへの統合、検索可能なメタデータデータベースの構築、またはコードを拡張して ASF ファイルの編集・再保存を検討してください。


Last Updated: 2025-12-26
Tested With: GroupDocs.Metadata 24.12 for Java
Author: GroupDocs