FFmpeg:获取视频Metadata信息(参考metadata.c)
如果不是特别熟悉C/C++,又要使用FFmpeg.API处理一些简单的音视频业务,那么可以使用org.bytedeco:ffmpeg-platform,下面记录一下使用ffmpeg-platform获取视频Metadata信息的方法。
使用FFmpeg.API获取Metadata信息比较简单,参考ffmpeg的metadata.c示例,实现代码如下:
public class Metadata {
public static void main(String[] args) throws IOException {
readMetadata("t.mp4");
}
public static void readMetadata(String input) throws IOException {
AVFormatContext fmt_ctx = new AVFormatContext(null);
AVDictionaryEntry tag = new AVDictionaryEntry(null);
try {
int ret = avformat.avformat_open_input(fmt_ctx, input, null, null);
if (ret < 0) {
throw new IOException(ret + ":avformat_open_input error");
}
ret = avformat.avformat_find_stream_info(fmt_ctx, (AVDictionary) null);
if (ret < 0) {
throw new IOException(ret + ":avformat_find_stream_info error");
}
// To iterate through all the dictionary entries, you can set the matching key
// to the null string "" and set the AV_DICT_IGNORE_SUFFIX flag.
// ::av_dict_iterate::
while (Objects
.nonNull(tag = avutil.av_dict_get(fmt_ctx.metadata(), "", tag, avutil.AV_DICT_IGNORE_SUFFIX))) {
System.out.printf("%s=%s\n", tag.key().getString(), tag.value().getString());
}
} finally {
avformat.avformat_close_input(fmt_ctx);
}
}
}
打印信息:
major_brand=isom
minor_version=512
compatible_brands=isomiso2mp41
encoder=Lavf59.27.100
欢迎关注微信公众号号:HiIT青年
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理