MediaInfo库的使用
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
編譯生成庫文件都很簡單,下載的源碼會有兩個第三方庫:ZenLib和zlibstate,以及源碼的主角MediaInfoLib,在windows環境下用Visual Studio就可以打開相應版本的工程文件就可以進行編譯了,如VS2015的工程文件在目錄libmediainfo_0.7.93_AllInclusive\MediaInfoLib\Project\MSVC2015下面,編譯完成可以生成相應的MediaInfo.lib和MediaInfo.dll兩個文件,放在我們自己新建的工程文件就可以使用了,新建的工程文件需要將MediaInfoDLL.h的頭文件放在工程當中,使用了MediaInfoDLL的命名空間,和聲明了兩個類:MediaInfo和MediaInfoList
基本使用說明
聲明對象:
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库的使用的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: windows player,wzpla
- 下一篇: delphi百度语音(支持语音识别和语音