[最新]php-MediaInfo獲取媒體信息

php獲取視頻時(shí)長?獲取音軌信息?獲取媒體文件的詳細(xì)信息?
php-mediainfo了解一下

準(zhǔn)備工作

個(gè)人博客地址為:https://dangbowen.com,歡迎加入收藏夾
本機(jī)或者服務(wù)器必須有medainfo
linux

$ sudo apt-get install mediainfo

mac

$ brew install mediainfo

測試軟件是否可用,可以在mplayer提供的各種媒體文件用來測試

$ mediainfo 'http://samples.mplayerhq.hu/FLV/Enigma_Principles_of_Lust-part.flv'
General
Complete name                            : http://samples.mplayerhq.hu/FLV/Enigma_Principles_of_Lust-part.flv
Format                                   : Flash Video
File size                                : 500 KiB
Duration                                 : 11 s 711 ms
Overall bit rate                         : 350 kb/s
Tagged date                              : UTC 2011-02-27 11:00:33
Tagging application                      : inlet media FLVTool2 v1.0.6 - http://www.inlet-media.de/flvtool2

Video
Format                                   : AVC
Format/Info                              : Advanced Video Codec
Format profile                           : Main@L2.1
Format settings                          : CABAC / 3 Ref Frames
Format settings, CABAC                   : Yes
Format settings, ReFrames                : 3 frames
Codec ID                                 : 7
Duration                                 : 11 s 711 ms
Width                                    : 426 pixels
Height                                   : 240 pixels
Display aspect ratio                     : 16:9
Frame rate mode                          : Constant
Frame rate                               : 30.000 FPS
Original frame rate                      : 29.970 (29970/1000) FPS
Color space                              : YUV
Chroma subsampling                       : 4:2:0
Bit depth                                : 8 bits
Scan type                                : Progressive

Audio
Format                                   : AAC
Format/Info                              : Advanced Audio Codec
Format profile                           : LC
Codec ID                                 : 10-2
Duration                                 : 11 s 702 ms
Channel(s)                               : 2 channels
Channel positions                        : Front: L R
Sampling rate                            : 22.05 kHz
Frame rate                               : 21.533 FPS (1024 SPF)
Compression mode                         : Lossy

當(dāng)你能看到上面顯示的各種信息時(shí)說明你的環(huán)境已安裝mediainfo

安裝php-mediainfo

  1. github: php-mediainfo

  2. composer安裝如下

$ composer require mhor/php-mediainfo

實(shí)際使用過程

  1. 使用之前仔細(xì)看github中的readme中的Extra里面有這么一個(gè)提示:Support new mediainfo version (>=17.10) 所以在初始化類的時(shí)候需如下:
$mediaInfo = new MediaInfo();
$mediaInfo->setConfig('use_oldxml_mediainfo_output_format', true);//這句必須加,因?yàn)槟壳暗膍ediainfo版本早超過17.1,所以需要主動申明下config的格式
$mediaInfoContainer = $mediaInfo->getInfo('music.mp3');

現(xiàn)在百度和谷歌大部分的php-mediainfo資料都是16年左右的,當(dāng)時(shí)mediainfo版本沒有到17.1所以你如果按照他們的實(shí)際過程操作會提示錯(cuò)誤,由于我在操作的時(shí)候根據(jù)錯(cuò)誤提示修改了包的源碼,雖然數(shù)據(jù)順利取到了,但是寬高和duration數(shù)值都是個(gè)位數(shù)(僅發(fā)現(xiàn)的bug),我還納悶這么成熟的包應(yīng)該不會有這樣的bug,最后仔細(xì)看了下readme文件,發(fā)現(xiàn)尾部這個(gè)提示后才覺得自作聰明要不得,這個(gè)坑因?yàn)樽约合垢脑创a耽誤了小一個(gè)小時(shí).

  1. 初始化類并處理返回值獲得文件大小代碼,$url是可以為遠(yuǎn)程文件或者本地文件
$mediaInfo = new MediaInfo();
$mediaInfo->setConfig('use_oldxml_mediainfo_output_format', true);
$mediaInfoContainer = $mediaInfo->getInfo($url);
//打印下 $mediaInfoContainer 變量,你就可以獲取所有關(guān)于媒體信息的詳細(xì)數(shù)據(jù)
$jsonInfo = json_encode($mediaInfoContainer);
$jsonInfo = json_decode($jsonInfo);
$general = $jsonInfo->general;
//獲取文件的size大小 單位是 bit,general是基礎(chǔ)信息
$data['size'] = $general->file_size->bit;
  1. 獲取文件format,可以用來邏輯判斷 視頻 還是 音頻 還是 圖片 來取對應(yīng)信息,比如圖片是沒有duration字段的,視頻和音頻是包含音軌信息的等.
$ext = $general->format->shortName;
if ($ext == 'GIF' or $ext == 'JPEG' or $ext == 'PNG'){
    //圖片寬高 size $jsonInfo->images的結(jié)果是數(shù)組
    $image_info = $jsonInfo->images[0];
    $data['width'] = $image_info->width->absoluteValue ?: 0;
    $data['height'] = $image_info->height->absoluteValue ?: 0;
} elseif ($ext == 'MPEG-4') {
    //mp4格式文件 先獲取音軌數(shù)
    $data['audio_count'] = $general->count_of_audio_streams ?: 0;
    //$jsonInfo->videos獲得是視頻信息的數(shù)組,因?yàn)橐曨l文件里有可多包含多個(gè)視頻軌道
    $video_info = $jsonInfo->videos[0];
    //獲取第一個(gè)視頻的時(shí)長
    $data['duration'] = $video_info->duration->milliseconds ?: 0;
    //獲取第一個(gè)視頻的寬
    $data['width'] = $video_info->width->absoluteValue ?: 0;
    //獲取第一個(gè)視頻的高
    $data['height'] = $video_info->height->absoluteValue ?: 0;
}

最后

php-mediainfo是php處理媒體信息的一個(gè)擴(kuò)展包,如果是日常處理媒體信息的腳本,我們可以直接調(diào)用mediainfo命令來獲取各種想要的信息,詳情可以看這篇博客Mediainfo命令實(shí)操記錄

本文作者: Bowen
本文鏈接: https://dangbowen.com/php/extension/77969671.html
版權(quán)聲明: 本博客所有文章除特別聲明外罩驻,均采用 CC BY-NC-SA 4.0 許可協(xié)議舶沿。轉(zhuǎn)載請注明出處!

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末霎迫,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子誊册,更是在濱河造成了極大的恐慌波岛,老刑警劉巖,帶你破解...
    沈念sama閱讀 212,599評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件险耀,死亡現(xiàn)場離奇詭異弄喘,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)甩牺,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,629評論 3 385
  • 文/潘曉璐 我一進(jìn)店門蘑志,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人贬派,你說我怎么就攤上這事急但。” “怎么了搞乏?”我有些...
    開封第一講書人閱讀 158,084評論 0 348
  • 文/不壞的土叔 我叫張陵波桩,是天一觀的道長。 經(jīng)常有香客問我请敦,道長镐躲,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,708評論 1 284
  • 正文 為了忘掉前任侍筛,我火速辦了婚禮萤皂,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘匣椰。我一直安慰自己裆熙,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,813評論 6 386
  • 文/花漫 我一把揭開白布禽笑。 她就那樣靜靜地躺著入录,像睡著了一般。 火紅的嫁衣襯著肌膚如雪佳镜。 梳的紋絲不亂的頭發(fā)上僚稿,一...
    開封第一講書人閱讀 50,021評論 1 291
  • 那天,我揣著相機(jī)與錄音邀杏,去河邊找鬼贫奠。 笑死唬血,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的唤崭。 我是一名探鬼主播拷恨,決...
    沈念sama閱讀 39,120評論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼谢肾!你這毒婦竟也來了腕侄?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,866評論 0 268
  • 序言:老撾萬榮一對情侶失蹤芦疏,失蹤者是張志新(化名)和其女友劉穎冕杠,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體酸茴,經(jīng)...
    沈念sama閱讀 44,308評論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡分预,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,633評論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了薪捍。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片笼痹。...
    茶點(diǎn)故事閱讀 38,768評論 1 341
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖酪穿,靈堂內(nèi)的尸體忽然破棺而出凳干,到底是詐尸還是另有隱情,我是刑警寧澤被济,帶...
    沈念sama閱讀 34,461評論 4 333
  • 正文 年R本政府宣布救赐,位于F島的核電站,受9級特大地震影響只磷,放射性物質(zhì)發(fā)生泄漏经磅。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 40,094評論 3 317
  • 文/蒙蒙 一喳瓣、第九天 我趴在偏房一處隱蔽的房頂上張望馋贤。 院中可真熱鬧,春花似錦畏陕、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,850評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至崎页,卻和暖如春鞠绰,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背飒焦。 一陣腳步聲響...
    開封第一講書人閱讀 32,082評論 1 267
  • 我被黑心中介騙來泰國打工蜈膨, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留屿笼,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 46,571評論 2 362
  • 正文 我出身青樓翁巍,卻偏偏與公主長得像驴一,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個(gè)殘疾皇子灶壶,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,666評論 2 350

推薦閱讀更多精彩內(nèi)容