如何一條Mediainfo --Inform語(yǔ)句同時(shí)獲取視頻參數(shù)和音頻參數(shù)多個(gè)Parameters

mediainfo是一個(gè)能獲取多媒體文件詳細(xì)信息的軟件,包括內(nèi)容信息,視頻信息,音頻信息,文本信息等,有了它我們可以查看視頻的寬高,比例,播放時(shí)長(zhǎng),音軌,比特率等等信息

準(zhǔn)備工作

個(gè)人博客地址為:https://dangbowen.com,歡迎加入收藏夾
參考php-mediainfo教程安裝mediainfo并實(shí)際操作栗子看能否正確調(diào)用mediainfo命令

命令詳解

先讓我們看下一個(gè)普通視頻文件的信息都包含哪些

$ 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

能看到格式,size大小,寬,高,duration等等常用信息,讓我們一一用mediainfo命令來(lái)獲取

獲取文件格式

$ mediainfo --Inform="General;%Format%" 'http://samples.mplayerhq.hu/FLV/Enigma_Principles_of_Lust-part.flv'
Flash Video

返回的是general下的format信息,比如你要的是video下的format信息呢

$ mediainfo --Inform="Video;%Format%" 'http://samples.mplayerhq.hu/FLV/Enigma_Principles_of_Lust-part.flv'
AVC

這會(huì)拿到的是Video信息下的format,切記這里獲取參數(shù)的大小寫(xiě)是嚴(yán)格區(qū)分的.這2個(gè)栗子可以發(fā)現(xiàn)如果想獲取mediainfo各個(gè)參數(shù)的信息是先找到 分類(lèi)名(類(lèi)似General,Video,Audio)->參數(shù)(Format,Width這種),格式就是 用mediainfo的Inform

mediainfo --Inform="分類(lèi)名;%參數(shù)名%" 'http://samples.mplayerhq.hu/FLV/Enigma_Principles_of_Lust-part.flv'

這個(gè)格式記住可以獲取你想要的任何參數(shù)

讓我們來(lái)練習(xí)一下:
套用格式獲取duration信息

$ mediainfo --Inform="Video;%Duration%" 'http://samples.mplayerhq.hu/FLV/Enigma_Principles_of_Lust-part.flv'
11711

我們可以看到取出來(lái)的播放時(shí)長(zhǎng)單位是毫秒,而不是秒.

再來(lái)嘗試一下獲取文件大小:

$ mediainfo --Inform="General;%File size%" 'http://samples.mplayerhq.hu/FLV/Enigma_Principles_of_Lust-part.flv'

??? 為什么返回值是空呢,格式?jīng)]有錯(cuò)卻無(wú)法獲得文件的大小.
因?yàn)樵陲@示的參數(shù)都是格式化后的,所以你會(huì)看到File size之間是有空格的,如果想獲得文件大小應(yīng)該替換成FileSize

$ mediainfo --Inform="General;%FileSize%" 'http://samples.mplayerhq.hu/FLV/Enigma_Principles_of_Lust-part.flv'
512000

此時(shí)就順利獲取到了文件大小,那如何知道各個(gè)參數(shù)的真正參數(shù)名呢,用這個(gè)命令可以獲取所有的詳細(xì)參數(shù)的真實(shí)參數(shù)名

$ mediainfo --Info-Parameters
General
Count                     : Count of objects available in this stream
Status                    : bit field (0=IsAccepted, 1=IsFilled, 2=IsUpdated, 3=IsFinished)
StreamCount               : Count of streams of that kind available
StreamKind                : Stream type name
StreamKind/String         : Stream type name
....此處省略剩余行信息

參數(shù)顯示的太多,不方便我們查找,我們可以輸出到一個(gè)txt文件里

$ mediainfo --Info-Parameters > mediainfo_parameters.txt

打開(kāi)mediainfo_parameters.txt可以搜索FileSize
那行顯示 FileSize : File size in bytes,同理我們根據(jù)這個(gè)可以獲得你所需要的參數(shù)信息

看到這里你可能已經(jīng)能熟練使用這個(gè)命令獲取單個(gè)參數(shù)值,但是實(shí)際場(chǎng)景中可能獲取的參數(shù)是多個(gè)的
例如:同時(shí)獲取視頻的寬,高,播放時(shí)長(zhǎng)?
很簡(jiǎn)單每個(gè)參數(shù)都用%%包裹起來(lái)然后每個(gè)參數(shù)用,分割即可,命令如下:

$ mediainfo --Inform="Video;%Width%,%Height%,%Duration%" 'http://samples.mplayerhq.hu/FLV/Enigma_Principles_of_Lust-part.flv'
426,240,11711

此時(shí)我們可以一條語(yǔ)句獲得視頻的寬,高,播放時(shí)長(zhǎng)信息,這里的 逗號(hào) 可以替換別的字符,你可以用空格,|等可以自行嘗試一下,反正解析數(shù)據(jù)的時(shí)候?qū)?yīng)好相應(yīng)的字符就行.簡(jiǎn)單例子:

$ mediainfo --Inform="Video;%Width%|%Height%|%Duration%" 'http://samples.mplayerhq.hu/FLV/Enigma_Principles_of_Lust-part.flv'
426|240|11711

看到這里,你已經(jīng)會(huì)用一條命令獲取一個(gè)分類(lèi)下的多個(gè)參數(shù)信息了,那么如果是要求同時(shí)獲取視頻的寬,高,播放時(shí)長(zhǎng),音頻的format多個(gè)參數(shù)信息可以么?
這個(gè)問(wèn)題當(dāng)初也困擾了我一陣,命令各種嘗試之下終無(wú)解,最后發(fā)現(xiàn)mediainfo的inform命令是支持文件執(zhí)行的.例子如下:

#編輯一個(gè)文本放 一行命令
vi 1.txt
Video;%Width%|%Height%|%Duration%
wq
#命令調(diào)用該文本
$ mediainfo --Inform="file://1.txt" 'http://samples.mplayerhq.hu/FLV/Enigma_Principles_of_Lust-part.flv'
426|240|11711

#修改文本命令如下
vi 1.txt
Video;%Width%,%Height%,%Duration%,
Audio;%Format%
wq
#重新執(zhí)行命令
$ mediainfo --Inform="file://1.txt" 'http://samples.mplayerhq.hu/FLV/Enigma_Principles_of_Lust-part.flv'
426,240,11711,AAC

此時(shí)可以看到一條命令已經(jīng)可以獲得視頻的寬高播放時(shí)長(zhǎng)和音頻的format信息

最后

有的人會(huì)想為什么一定要一條命令這么費(fèi)勁巴拉的處理問(wèn)題呢?多一條命令也不會(huì)多慢?
當(dāng)你處理幾條,幾十條視頻數(shù)據(jù)的時(shí)候你用多條命令獲取這些參數(shù)可能影響不大,因?yàn)閿?shù)據(jù)量太小.但是實(shí)際問(wèn)題你可能一次要處理上十萬(wàn)條數(shù)據(jù),甚至上百萬(wàn),上千萬(wàn)個(gè)數(shù)據(jù)時(shí),那么精簡(jiǎn)的一條命令可以縮短腳本的響應(yīng)時(shí)間,提高任務(wù)的執(zhí)行速度,盡量減小了系統(tǒng)開(kāi)銷(xiāo),這是在生產(chǎn)環(huán)境實(shí)際處理數(shù)據(jù)后的一點(diǎn)經(jīng)驗(yàn).

本文作者: Bowen
本文鏈接: https://dangbowen.com/server/cdb35a50.html
版權(quán)聲明: 本博客所有文章除特別聲明外,均采用 CC BY-NC-SA 4.0 許可協(xié)議灯变。轉(zhuǎn)載請(qǐng)注明出處吩蔑!

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末幌甘,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子珠插,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 212,599評(píng)論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件蠕蚜,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡悔橄,警方通過(guò)查閱死者的電腦和手機(jī)靶累,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,629評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門(mén)腺毫,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人挣柬,你說(shuō)我怎么就攤上這事潮酒。” “怎么了邪蛔?”我有些...
    開(kāi)封第一講書(shū)人閱讀 158,084評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵急黎,是天一觀(guān)的道長(zhǎng)。 經(jīng)常有香客問(wèn)我侧到,道長(zhǎng)勃教,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 56,708評(píng)論 1 284
  • 正文 為了忘掉前任匠抗,我火速辦了婚禮故源,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘戈咳。我一直安慰自己心软,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,813評(píng)論 6 386
  • 文/花漫 我一把揭開(kāi)白布著蛙。 她就那樣靜靜地躺著删铃,像睡著了一般。 火紅的嫁衣襯著肌膚如雪踏堡。 梳的紋絲不亂的頭發(fā)上猎唁,一...
    開(kāi)封第一講書(shū)人閱讀 50,021評(píng)論 1 291
  • 那天,我揣著相機(jī)與錄音顷蟆,去河邊找鬼诫隅。 笑死,一個(gè)胖子當(dāng)著我的面吹牛帐偎,可吹牛的內(nèi)容都是我干的逐纬。 我是一名探鬼主播,決...
    沈念sama閱讀 39,120評(píng)論 3 410
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼削樊,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼豁生!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起漫贞,我...
    開(kāi)封第一講書(shū)人閱讀 37,866評(píng)論 0 268
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤甸箱,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后迅脐,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體芍殖,經(jīng)...
    沈念sama閱讀 44,308評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,633評(píng)論 2 327
  • 正文 我和宋清朗相戀三年谴蔑,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了豌骏。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片龟梦。...
    茶點(diǎn)故事閱讀 38,768評(píng)論 1 341
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖肯适,靈堂內(nèi)的尸體忽然破棺而出变秦,到底是詐尸還是另有隱情,我是刑警寧澤框舔,帶...
    沈念sama閱讀 34,461評(píng)論 4 333
  • 正文 年R本政府宣布蹦玫,位于F島的核電站,受9級(jí)特大地震影響刘绣,放射性物質(zhì)發(fā)生泄漏樱溉。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 40,094評(píng)論 3 317
  • 文/蒙蒙 一纬凤、第九天 我趴在偏房一處隱蔽的房頂上張望福贞。 院中可真熱鬧,春花似錦停士、人聲如沸挖帘。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,850評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)拇舀。三九已至,卻和暖如春蜻底,著一層夾襖步出監(jiān)牢的瞬間骄崩,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,082評(píng)論 1 267
  • 我被黑心中介騙來(lái)泰國(guó)打工薄辅, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留要拂,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 46,571評(píng)論 2 362
  • 正文 我出身青樓站楚,卻偏偏與公主長(zhǎng)得像脱惰,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子窿春,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,666評(píng)論 2 350

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