[英]How can I extract meta data from various video file formats?
如何從各種視頻文件格式中提取元數據,尤其是分辨率和所用編解碼器的類型。 (還有其他所有東西,例如作者)。 我無法為此找到一個庫。
我找到了MediaInfo ,它提供了有關視頻或音頻文件的許多技術和標簽信息。
我發現subs4me的源代碼樹中有一個用於MediaInfo的JNI包裝器,我認為它非常有用。
以下是一些代碼片段,顯示了如何從媒體文件中提取一些信息:
File file = new File("path/to/my/file");
MediaInfo info = new MediaInfo();
info.open(file);
String format = info.get(MediaInfo.StreamKind.Video, i, "Format",
MediaInfo.InfoKind.Text,
MediaInfo.InfoKind.Name);
int bitRate = info.get(MediaInfo.StreamKind.Video, i, "BitRate",
MediaInfo.InfoKind.Text,
MediaInfo.InfoKind.Name);
float frameRate = info.get(MediaInfo.StreamKind.Video, i, "FrameRate",
MediaInfo.InfoKind.Text,
MediaInfo.InfoKind.Name);
short width = info.get(MediaInfo.StreamKind.Video, i, "Width",
MediaInfo.InfoKind.Text,
MediaInfo.InfoKind.Name);
int audioBitrate = info.get(MediaInfo.StreamKind.Audio, i, "BitRate",
MediaInfo.InfoKind.Text,
MediaInfo.InfoKind.Name);
int audioChannels = info.get(MediaInfo.StreamKind.Audio, i, "Channels",
MediaInfo.InfoKind.Text,
MediaInfo.InfoKind.Name);
vikiiii解決方案有效,但是我發現:
結果,我安裝了Windows MediaInfo應用程序並搜索了可用於創建一些Java Enum和簡化用法的鍵。
我在github https://github.com/clun/movies-metadata上創建了一個存儲庫,以將所有內容都放在同一位置。 只需在示例項目上運行mvn:test
即可獲取有關示例MP4,OGG,AVI,FLV,WEBM和MKV的信息。
這是測試的示例代碼:
MovieMetadata movieMedataData = new MovieMetadata("./src/test/resources/small.mkv");
movieMedataData.get(General.FORMAT);
movieMedataData.get(Video.DURATION_STRING);
movieMedataData.get(Video.WIDTH_STRING);
movieMedataData.get(Video.HEIGHT_STRING);
movieMedataData.get(Video.BITRATE_STRING);
movieMedataData.get(Audio.COMPRESSION_RATIO);
//...
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.