使用 GroupDocs.Metadata 於 Java 提取影片中繼資料
在現代多媒體豐富的應用程式中,extract video metadata java 是索引、驗證及動態處理影片資產的核心需求。無論您是構建目錄服務、影片編輯套件,或是數位資產管理(DAM)系統,快速讀取 AVI 標頭資訊可節省大量手動工作時間,並避免昂貴的執行時錯誤。本教學將指導您如何載入 AVI 檔案、取得其寬度與高度,並使用 GroupDocs.Metadata for Java 存取其他標頭欄位。
快速回答
- 影片中繼資料提取能做什麼? 它讓您在不解碼整個影片串流的情況下,讀取諸如尺寸、影格數、編解碼器與時長等屬性。
- 哪個函式庫簡化 AVI 處理? GroupDocs.Metadata for Java 提供統一的純 Java API,支援超過 50 種影片與文件格式。
- 我需要授權才能試用嗎? 是的 – 免費試用或臨時授權即可用於開發與測試。
- 我可以使用 Maven 加入此函式庫嗎? 當然可以;以下提供 Maven 坐標。
- 是否可以提取影片尺寸? 可以 – 開啟檔案後呼叫
getHeader().getWidth()與getHeader().getHeight()。
從 AVI 檔案提取影片中繼資料(Java)
載入 AVI 檔案、讀取其標頭,並在僅幾行程式碼內取得寬度與高度值。本段落直接告訴您該怎麼做:以檔案路徑實例化 Metadata 類別,呼叫 getHeader() 取得 AviHeader 物件,然後讀取 getWidth() 與 getHeight() 屬性。API 只觸及標頭區段,因此即使是多 GB 影片也能快速且節省記憶體。
什麼是影片中繼資料提取?
影片中繼資料提取是以程式方式取得儲存在影片容器標頭中的描述資訊,例如編解碼器、解析度、影格率與時長。這些資料可即時取得,無需串流完整媒體,從而在您的 Java 應用程式中實現快速索引、驗證與條件處理。
為何使用 GroupDocs.Metadata for Java?
GroupDocs.Metadata 提供 純 Java、無相依性 的解決方案,可在任何 JVM 上運行,從桌面工具到雲端微服務皆適用。它支援 50 多種輸入與輸出格式(包括 AVI、MP4、MOV、WMV、FLV 以及影像序列),且能在不將整個內容載入記憶體的情況下讀取超過 10 GB 檔案的標頭區段。此函式庫亦內建授權彈性:試用、臨時與永久授權皆可使用。
前置條件
- GroupDocs.Metadata for Java(版本 24.12 或更新)
- JDK 8 或更新版本(建議使用 JDK 11)
- Maven 3.6+ 或 手動下載 JAR
- 具備 Java I/O 與例外處理的基本知識
設定 GroupDocs.Metadata for Java
使用 Maven
在您的 pom.xml 中加入以下相依性。此程式碼片段會從 Maven Central 取得最新的穩定版。
<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>
直接下載
如果您偏好手動方式,請從官方發行頁面下載 JAR。
GroupDocs.Metadata for Java releases
取得授權步驟
- 免費試用: 下載試用授權以開始測試。
- 臨時授權: 申請臨時金鑰,以在未購買的情況下進行延長測試。
- 正式授權: 從 GroupDocs 購買完整授權:GroupDocs。
基本初始化與設定
Metadata 類別是所有檔案層級操作的入口。它會開啟檔案、驗證格式,並提供特定格式的物件,例如 AviHeader。
import com.groupdocs.metadata.Metadata;
// Initialize Metadata object with the path to your AVI file.
try (Metadata metadata = new Metadata("path/to/your/file.avi")) {
// Your code for handling metadata goes here.
}
影片中繼資料提取:讀取 AVI 標頭屬性
概述
本節示範如何從 AVI 檔案讀取影片尺寸及其他關鍵屬性。此過程僅觸及標頭,適合大規模批次作業。
步驟 1:匯入必要類別
Metadata 與 AviHeader 是您將互動的核心類別。請在任何檔案操作之前先匯入它們。
import com.groupdocs.metadata.Metadata;
import com.groupdocs.metadata.core.AviRootPackage;
步驟 2:開啟 AVI 檔案
以您的 AVI 檔案路徑實例化 Metadata。建構子會驗證檔案並準備標頭物件以供讀取。
try (Metadata metadata = new Metadata("YOUR_DOCUMENT_DIRECTORY/InputAvi.avi")) {
// Code to access AVI properties.
}
步驟 3:存取 AVI 標頭屬性
getHeader() 會回傳 AviHeader 實例。之後您可以呼叫 getWidth()、getHeight()、getFrameRate() 以及其他 getter 以取得數值型中繼資料。
AviRootPackage root = metadata.getRootPackageGeneric();
String aviHeaderFlags = root.getHeader().getAviHeaderFlags();
int height = root.getHeader().getHeight();
int width = root.getHeader().getWidth();
long totalFrames = root.getHeader().getTotalFrames();
步驟 4:顯示屬性
列印或記錄取得的值。此範例使用 System.out.println,但您也可以將資料整合至任何後續工作流程。
System.out.println("AVI Header Flags: " + aviHeaderFlags);
System.out.println("Width: " + width + ", Height: " + height);
System.out.println("Total Frames: " + totalFrames);
如何取得影片寬度(Java)
寬度可透過 aviHeader.getWidth() 取得,該方法回傳水平像素數。了解寬度可協助您根據應用程式的解析度需求決定是否升級、縮小或拒絕影片。
如何取得影片高度(Java)
高度可使用 aviHeader.getHeight() 取得。利用此值可計算長寬比、產生正確尺寸的縮圖,或在發佈平台上強制執行最小高度標準。
管理特定格式的中繼資料
概述
除了 AVI,GroupDocs.Metadata 還提供通用的 Metadata API,可支援數十種格式。您可在不撰寫特定格式程式碼的情況下讀取、編輯或移除中繼資料。
步驟 1:準備中繼資料管理類別
為目標檔案建立 Metadata 實例,然後根據檔案類型呼叫相應的格式特定方法(例如 getAviHeader()、getMp4Header())。
import com.groupdocs.metadata.Metadata;
public class MetadataManagement {
public static void run(String documentPath) {
try (Metadata metadata = new Metadata(documentPath)) {
// Obtain root package for specific file format.
// Example for image files:
// ImageRootPackage imageRootPackage = metadata.getRootPackageGeneric();
// Perform operations such as reading or updating metadata.
}
}
}
實務應用
- 媒體存檔: 自動提取 AVI 尺寸以填充可搜尋的目錄,讓您能依解析度快速取得資產。
- 影片編輯軟體: 根據來源影片的寬度、高度與影格率動態調整時間軸、覆蓋層與特效。
- 數位資產管理(DAM): 為資產記錄加入精確的影片屬性,支援進階篩選,例如「所有寬度超過 1920 px 的影片」。
效能考量
- 目標化 I/O: 僅讀取標頭位元組,即使是多 GB 檔案,磁碟存取也僅數 KB。
- 記憶體使用量: API 採用 Java 的 try‑with‑resources 模式自動關閉檔案串流,防止記憶體洩漏。
- 批次處理: 處理數千支影片時,可在每個執行緒重複使用單一
Metadata實例,並平行處理檔案以最大化 CPU 使用率。
常見問題與解決方案
- 檔案路徑錯誤: 確認傳遞給
new Metadata(...)的路徑指向現有的 AVI 檔案;否則會拋出FileNotFoundException。 - 不支援的編解碼器: 稀有的 AVI 編解碼器可能不會公開所有標頭欄位;此時函式庫會回傳預設值(例如 0)。
- 授權錯誤: 若遇到授權例外,請確保試用或臨時授權檔案放置於專案根目錄,並透過
License.setLicense("license_path")進行引用。
常見問答
Q: 什麼是 GroupDocs.Metadata for Java?
A: 它是一個純 Java 函式庫,能在超過 50 種檔案格式(包括 AVI、MP4 等影片容器)中讀取、編輯與移除中繼資料。
Q: 我可以在未購買授權的情況下使用 GroupDocs.Metadata 嗎?
A: 可以 – 免費試用或臨時授權即可在開發與測試階段完整使用 API。正式上線則需永久授權。
Q: Maven 是唯一加入此函式庫的方式嗎?
A: 不是。您也可以從發行頁面下載 JAR,手動加入 classpath。
Q: 支援哪些影片格式的中繼資料提取?
A: AVI、MP4、MOV、WMV、FLV、MKV 等多種格式。完整清單請參閱官方文件。
Q: 如何有效處理非常大的影片檔案?
A: 使用串流 API,僅讀取標頭資訊,並使用 try‑with‑resources 確保資源關閉,以降低記憶體使用量。
結論
您現在已擁有一套完整、可投入生產的指南,使用 GroupDocs.Metadata 從 AVI 檔案 extract video metadata java。透過讀取寬度與高度等標頭屬性,您可以驅動智慧媒體工作流程、強化品質標準,並建立穩健的目錄系統。亦可使用相同 API 處理其他格式(MP4、MOV 等),擴充您的 Java 多媒體工具箱。
資源
- 文件說明:GroupDocs Metadata Documentation
- API 參考:GroupDocs API Reference
- 下載:Latest Releases
- GitHub 倉庫:GroupDocs.Metadata GitHub
- 免費支援論壇:GroupDocs Free Support
- 臨時授權:Obtain Temporary License
最後更新: 2026-10-06
測試環境: GroupDocs.Metadata 24.12 for Java
作者: GroupDocs