ffmpeg vs mediainfo 用于获取缩略图和元数据

Posted

技术标签:

【中文标题】ffmpeg vs mediainfo 用于获取缩略图和元数据【英文标题】:ffmpeg vs mediainfo for getting thumbnail and metadata 【发布时间】:2012-07-10 18:35:57 【问题描述】:

我需要从视频文件中提取元数据信息以及该文件的缩略图。为此,我尝试了 ffmpeg,元数据(例如持续时间、分辨率、编解码器、creation_time 等)可以在标准输出上看到。如果我需要使用这些,我应该解析标准输出并提取我需要的元数据。

我还阅读了有关提供元数据的 MediaInfo 实用程序的信息。我不确定它是否可以提供缩略图。我还知道 MediaInfo 在后台不使用 ffmpeg。

我想知道是否有人同时具备 ffmpeg 和 MediaInfo 的工作知识,以及关于我上面提到的要求,是否有人可以建议两者中的哪一个更适合。

两者的内存占用比较也会很好。

【问题讨论】:

这需要在什么情况下实现?在网络上的 Bash 脚本、C 程序中? 我打算通过 C++ 代码调用程序并分析结果输出(例如在标准输出中发出) 【参考方案1】:

正确答案既不是 ffmpeg 也不是 mediainfo。好吧,反正不是完整的可执行文件。

ffmpeg 由一系列库组成,包括libavformat,它允许您使用多媒体容器格式。 Using libavformat and libavcodec by Martin Böhme 应该给你一个很好的介绍。

【讨论】:

【参考方案2】:

据我所知,MediaInfo 是开源的 (see here),它的库可以在 C++ 或 C# 的 Windows 环境中使用(它是一个 dll)。无需解析输出。它包含开发人员的文档和一些示例。

我不认为它可以提取缩略图。

【讨论】:

【参考方案3】:

您应该按照其他答案中的说明直接使用底层库。

但是,为了完整起见,如果您坚持使用单独的 shell 进程,不要解析 FFmpeg 的输出。相反,使用FFprobe,这是一种鲜为人知的工具,专门用于补充 FFmpeg 并简化元数据提取。

此外,使用 FFmpeg 或多或少可以像这样生成缩略图:

ffmpeg [-ss 10] -i input.avi -vframes 1 -s 320x240 thumbnail.png

调整大小以适应口味并使用可选的-ss 参数从视频开头以外的某个点抓取图像。

【讨论】:

是的。我之前检查过 ffprobe 。但我想我将不得不回到 ffmpeg 进行缩略图提取。而且从我目前收集到的信息来看,ffmpeg 似乎是大多数视频/音频操作的唯一进程。为什么我对仅将 ffprobe 用于元数据有点怀疑是因为我想确保我不会占用太多空间(我在 MIPS 嵌入式设备上使用这些)无论如何感谢您的意见 乐于助人。至少在我的安装中,与底层共享库相比,ffprobe/ffmpeg 二进制文件相对较小,因此包括 ffprobe 可能并不像您想象的那么昂贵。

以上是关于ffmpeg vs mediainfo 用于获取缩略图和元数据的主要内容,如果未能解决你的问题,请参考以下文章

ffmpeg文档29-放缩选项

使用 FFmpeg 检索和保存媒体元数据

Lambda nodejs - 不支持带有 libcurl 字节范围的 mediainfo

FFmpeg三件套之FFprobe使用介绍

如何从 Mediainfo 获取特定信息

如何用vs08编译ffmpeg