MediaInfo

MediaInfo是一款专门用来分析音频和视频的文件编码和内容信息的开源软件,通过MediaInfo可以快捷明了的获取多媒体文件信息,支持多平台(windows、mac、linux等),我们平时常用的K-Lite Codec Pack就集成MediaInfo的功能,相比FFmpeg,MediaInfo获取多媒体信息的方式更加快捷丰富。


MediaInfo获取的文件信息有

  • 内容信息:标题,作者,专辑名,音轨号,日期,总时间……
  • 视频:编码器,长宽比,帧频率,比特率……
  • 音频:编码器,采样率,声道数,语言,比特率……
  • 文本:语言和字幕
  • 段落:段落数,列表

支持的文件格式有
- 视频:MKV, OGM, AVI, DivX, WMV, QuickTime, Real, MPEG-1, MPEG-2, MPEG-4, DVD (VOB)…
- 编码器:DivX, XviD, MSMPEG4, ASP, H.264/AVC, H.265/HEVC, FFV1…
- 音频:OGG, MP3, WAV, RA, AC3, DTS, AAC, M4A, AU, AIFF…
- 字幕:SRT, SSA, ASS, SAMI…

主要特点

  • 支持众多视频和音频文件格式
  • 多种查看方式:文本,表格,树形图,网页……
  • 自定义查看方式
  • 信息导出:文本,CSV,HTML……
  • 三种发布版本:图形界面,命令行,DLL(动态链接库)
  • 与Windows资源管理器整合:拖放,右键菜单
  • 国际化:有多种界面语言供选择,使用的unicode字符集很容易实现本地化

编译

源码下载:https://mediaarea.net/zh-CN/MediaInfo/Download

编译生成库文件都很简单,下载的源码会有两个第三方库:ZenLibzlibstate,以及源码的主角MediaInfoLib,在windows环境下用Visual Studio就可以打开相应版本的工程文件就可以进行编译了,如VS2015的工程文件在目录libmediainfo_0.7.93_AllInclusive\MediaInfoLib\Project\MSVC2015下面,编译完成可以生成相应的MediaInfo.libMediaInfo.dll两个文件,放在我们自己新建的工程文件就可以使用了,新建的工程文件需要将MediaInfoDLL.h的头文件放在工程当中,使用了MediaInfoDLL的命名空间,和声明了两个类:MediaInfoMediaInfoList

基本使用说明

声明对象:

MediaInfo MI;
或者
MediaInfoList MIL;

查看使用的MediaInfo版本:

String MediaInfo = MI.Option(__T("Info_Version"), __T(";;")).c_str();

查看MediaInfo所有参数说明

String MediaInfo = MI.Option(__T("Info_Parameters")).c_str();

查看所有解码器说明

String MediaInfo = MI.Option(__T("Info_Codecs")).c_str();

打开视频文件

MI.Open(Url); 

显示视频的所有基本信息

MI.Option(__T("Complete"));
String MediaInfo = MI.Inform().c_str();

查看所有信息

MI.Option(__T("Complete"), __T("1"));
String MediaInfo = MI.Inform().c_str();

查看自定义信息

MI.Option(__T("Inform"), __T("General;FileSize=%FileSize%")); //文件大小
MI.Option(__T("Inform"), __T("Video;Format=%Format%")); //视频格式
MI.Option(__T("Inform"), __T("Audio;Format=%Format%")); //音频格式
To_Display += MI.Inform().c_str();

关闭对象

MI.Close();

例如一个视频文件的所有信息如下:

General
Complete name               : videoTest.mp4
Format                      : MPEG-4
Format profile              : Base Media
Codec ID                    : isom (isom/iso2/avc1/mp41)
File size                   : 908 KiB
Duration                    : 10 s 0 ms
Overall bit rate mode       : Variable
Overall bit rate            : 744 kb/s
Encoded date                : UTC 1970-01-01 00:00:00
Tagged date                 : UTC 1970-01-01 00:00:00
Writing application         : Lavf52.64.2Video
ID                          : 1
Format                      : AVC
Format/Info                 : Advanced Video Codec
Format profile              : Baseline@L3
Format settings, CABAC      : No
Format settings, ReFrames   : 3 frames
Codec ID                    : avc1
Codec ID/Info               : Advanced Video Coding
Duration                    : 10 s 0 ms
Bit rate                    : 607 kb/s
Nominal bit rate            : 1 024 kb/s
Width                       : 480 pixels
Height                      : 360 pixels
Display aspect ratio        : 4:3
Frame rate mode             : Variable
Frame rate                  : 24.000 FPS
Minimum frame rate          : 15.000 FPS
Maximum frame rate          : 30.000 FPS
Color space                 : YUV
Chroma subsampling          : 4:2:0
Bit depth                   : 8 bits
Scan type                   : Progressive
Bits/(Pixel*Frame)          : 0.146
Stream size                 : 741 KiB (82%)
Writing library             : x264 core 85 Ubuntu_2:0.85.1448+git1a6d32-4
Encoding settings           : cabac=0 / ref=3 / deblock=1:0:0 / analyse=0x1:0x111 / me=hex / subme=7 / psy=1 / psy_rd=1.00:0.00 / mixed_ref=0 / me_range=16 / chroma_me=1 / trellis=0 / 8x8dct=0 / cqm=0 / deadzone=21,11 / fast_pskip=1 / chroma_qp_offset=-2 / threads=4 / sliced_threads=0 / nr=0 / decimate=1 / mbaff=0 / constrained_intra=0 / bframes=0 / wpredp=0 / keyint=250 / keyint_min=25 / scenecut=40 / intra_refresh=0 / rc_lookahead=40 / rc=abr / mbtree=1 / bitrate=1024 / ratetol=3.9 / qcomp=0.60 / qpmin=10 / qpmax=51 / qpstep=4 / ip_ratio=1.41 / aq=1:1.00
Encoded date                : UTC 1970-01-01 00:00:00
Tagged date                 : UTC 1970-01-01 00:00:00Audio
ID                          : 2
Format                      : AAC
Format/Info                 : Advanced Audio Codec
Format profile              : LC
Codec ID                    : 40
Duration                    : 9 s 915 ms
Bit rate mode               : Variable
Bit rate                    : 132 kb/s
Channel(s)                  : 2 channels
Channel positions           : Front: L R
Sampling rate               : 44.1 kHz
Frame rate                  : 43.066 FPS (1024 spf)
Compression mode            : Lossy
Stream size                 : 160 KiB (18%)
Encoded date                : UTC 1970-01-01 00:00:00
Tagged date                 : UTC 1970-01-01 00:00:00

点此处可以下载已经写好的MediaInfoDemo

MediaInfo库的使用相关推荐

  1. J2EE中使用MediaInfo库获取视频信息

    MediaInfo 用来分析视频和音频文件的编码和内容信息,是一款是自由软件 (免费使用.免费获得源代码). 我在J2EE项目软件中集成了它的DLL,很好用. 下面简单记录一下它的使用方法. (系统开 ...

  2. C++中使用MediaInfo库获取视频信息

    MediaInfo 用来分析视频和音频文件的编码和内容信息,是一款是自由软件 (免费使用.免费获得源代码). 我在项目软件中集成了它的DLL,发现真的是非常好用! 下面简单记录一下它的使用方法. (系 ...

  3. MediaInfo库的编译 使用

    环境:windows10 VS2015 第一步:下载代码并编译 选择最后的一个标签.点击下载 下载后解压,选择 libmediainfo_AllInclusive\MediaInfoLib\Proje ...

  4. java mediainfo.dll_MediaInfo库的简单使用

    想到一个问题, 如何获得一个图像文件(比如jpg, bmp, png)的信息. 自己查查文件的格式, 写一个解析, 应该不困难; 但是找了下现成的, 发现MediaInfo库已经可以非常好的实现需要的 ...

  5. Media Player Classic - HC 源代码分析 6:MediaInfo选项卡 (CPPageFileMediaInfo)

    ===================================================== Media Player Classic - HC 源代码分析系列文章列表: Media P ...

  6. MediaInfo源代码分析 1:整体结构

    ===================================================== MediaInfo源代码分析系列文章列表: MediaInfo源代码分析 1:整体结构 Me ...

  7. MediaInfo在VS2019下的编译和使用

    文章目录 准备工作 MediaInfo编译 MediaInfo的使用 相关资源下载 准备工作 下载源码 下载地址 MediaInfo编译 将下载好的压缩包进行解压,用VS打开MediaInfoLib. ...

  8. [原创]使用python对视频/音频文件进行详细信息采集,并进行去重操作

    [原创]使用python对视频/音频文件进行详细信息采集,并进行去重操作 转载请注明出处 一.关于为什么用pymediainfo以及pymediainfo的安装 使用python对视频/音频文件进行详 ...

  9. Windows API参考大全

    第一章 Win32 API概论 1.1为什么使用 Wu32 API 在Windows程序设计领域处于发展初期时,Windows程序员可使用的编程工具唯有API 函数.这些函数在程序员手中犹如" ...

最新文章

  1. 基于Express+mongoose搭建的学生管理系统(2017-08-07)
  2. Python编程基础:第二十九节 异常Exception
  3. MySQL数据库 Too many connections
  4. [loj3056][hnoi2019]多边形
  5. 本来中午打算应付下随便吃点,可是连盐都没有放的辣椒炒蛋实在是令人不快...
  6. 【设计模式】适配器模式(Adapter Pattern)
  7. 查看openfrie是否连接mysql_openfire连接mysql数据库的字符集问题解决
  8. C++进阶教程之文件和流
  9. 《精进:如何成为一个很厉害的人》
  10. LVGL8.1笔记3--运行demo(2022-0611)
  11. python 爬取 js渲染_scrapy 爬取 javascript 动态渲染页面
  12. 邯郸百亿斤粮食生产 国稻种芯·中国水稻节:河北大市粮食经
  13. 解决IEEE会议模板引用bib文件时出现Bibliography not compatible with author-year citations
  14. 为什么显示D盘可用空间不多,但是明明包括隐藏文件也没有用那么多内存?(内含解决方案)
  15. python 存储图片_使用python存储网页上的图片实例
  16. Alist云盘视频加密助手:支持云盘视频文件加密与在线播放,不用再担心视频文件被和谐了!
  17. STM32f103微妙延迟函数
  18. qt的四舍五入_string.format 小数点 QT 对于float类型四舍五入
  19. Unity移动端Input触控和Window触摸屏电脑 控制相机旋转缩放
  20. java 整数的立方和_java编程题目:编写一个程序,输入一个三位正整数,输出个、十、百位数字的立方和。新手,请详细一点...

热门文章

  1. CCRC信息安全服务资质认证简介
  2. 大数据开发和python的区别_大数据技术和python开发工程师
  3. SQL中的and、or
  4. 苹果Mac电脑格式化数据怎么恢复?
  5. jpg格式转换成pdf免费版
  6. web前端技术:学习HTML、CSS、JavaScript
  7. 三菱FX3U 485ADP与4台欧姆龙E5cc温控器远程+本地通讯程序
  8. 通过对比 5 月补丁分析 win32k 空指针解引用漏洞
  9. 计算机系继续教育自我鉴定,继续教育自我鉴定
  10. C#模糊查询Access