如何从各种视频文件格式中提取元数据,尤其是分辨率和使用的编解码器类型。 (还有所有其他的东西,比如作者)。我找不到相关的图书馆。
最佳答案
我找到了 MediaInfo , 它提供了有关视频或音频文件的数十种技术和标签信息。
subs4me's source tree 中有一个 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);
关于java - 如何从各种视频文件格式中提取元数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4941961/