java - 如何从各种视频文件格式中提取元数据?

标签 java video

如何从各种视频文件格式中提取元数据,尤其是分辨率和使用的编解码器类型。 (还有所有其他的东西,比如作者)。我找不到相关的图书馆。

最佳答案

我找到了 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/

相关文章:

video - 从 ffmpeg 获取视频尺寸/分辨率/宽度 x 高度

javascript - 如何在全屏模式下自定义视频播放器并在全屏打开时向下滚动

ios - 如何在 iOS 中获取或编辑视频的 exif

Java 开发具有插件功能的应用程序

java - 无限循环的来源

java - 如何使用 Java 在 SoapUI 中设置和获取 TestStep 属性

matlab - 如何在 MATLAB 中使用网络摄像头录制视频?

c++ - 将像素格式从 CVPixelBuffer 映射到它们的等效 V4L

Java递归编译错误

java - 将 Stream 包装到 Flux 时的事务处理