MediaInfo
一、简介
MediaInfo 用来分析视频和音频文件的编码和内容信息。
MediaInfo可以获得多媒体文件的哪些信息?
内容信息:标题,作者,专辑名,音轨号,日期,总时间……
视频:编码器,长宽比,帧频率,比特率……
音频:编码器,采样率,声道数,语言,比特率……
文本:语言和字幕
段落:段落数,列表
MediaInfo支持哪些文件格式?
视频:MKV, OGM, AVI, DivX, WMV, QuickTime, Real, MPEG-1, MPEG-2, MPEG-4, DVD (VOB)... (编码器:DivX, XviD, MSMPEG4, ASP, H.264, AVC...)
音频:OGG, MP3, WAV, RA, AC3, DTS, AAC, M4A, AU, AIFF...
字幕:SRT, SSA, ASS, SAMI...
MediaInfo有哪些主要功能和特点?
支持众多视频和音频文件格式
多种查看方式:文本,表格,树形图,网页……
自定义查看方式
信息导出:文本,CSV,HTML……
三种发布版本:图形界面,命令行,DLL(动态链接库)
与Windows资源管理器整合:拖放,右键菜单
国际化:有多种界面语言供选择 (软件界面)轻松实现本地化 (需要志愿者翻译语言文件)
MediaInfo主界面截图
二、源码获取途径
MediaInfo英文主页:
http://mediainfo.sourceforge.net/
MediaInfo中文主页:
http://mediainfo.sourceforge.net/zh-CN
MediaInfo开发者主页:
http://sourceforge.net/projects/mediainfo
源码svn下载地址:
https://mediainfo.svn.sourceforge.net/svnroot/mediainfo
三、使用指南
1. MediaInfo编译指南
支持Windows和Linux平台
推荐使用ms visual studio 2005。
* MSVC : Microsoft Visual C++ 9 (aka 2005) (for Visual Studio 7 (aka 2002) or 8 (aka 2003), you can edit .sln and .xxproj to be compatible. - .sln : "...Format Version 9.00" to 7.00 - .xxproj : "Version="8.00" or "Version="7.10" to 7.00 This is not always tested, but you should easily be able to adapt them for your compiler)
* BCB : Borland C++ Builder 6
* DevCpp : Dev-C++ (Dev-Cpp is an IDE for MinGW) (I am working on this release, not stable)
* MinGW : MinGW on Windows (I am working on this release, not stable)
* GCC : Linux GCC (I am working on this release, not stable)
2. MediaInfo SDK
MediaInfo除了有GUI和CMD两种使用方法,还可以在程序中使用MediaInfo库。
MediaInfo库有静态链接和动态链接两种方式,MediaInfo SDK的相关官方资料如下:
* Read this first (supported languages, versioning, conventions)
* Different ways of using the library
* How to begin quickly with MediaInfo
* More information about the programming interface
* The Doxygen documentation (full C++ API interface)
二、典型应用
MediaInfo的典型应用是使用其DLL库,用来提取媒体文件的信息。其特点是,支持的格式全、提取的信息丰富。当然,MediaInfo本身是开源的,其DLL库可以进行二次开发,可以扩充自定义格式,增加自定义功能。对于工程使用,MediaInfo模块和其它功能可以独立,使用上非常便捷,是一个值得推荐的开源工程。
三、相关源码
关于媒体信息解析,ffmpeg的libformat是用于媒体文件解析的,是parser的功能,支持格式也非常全,和MediaInfo有想通之处,在使用MediaInfo时遇到问题可以借鉴libformat的源码。