使用mediainfo工具統計每一個視頻文件(媒體文件)播放時長

需求java

一、運營那邊須要統計大量視頻文件的播放時長,並彙總記錄到excel表中,問我有什麼方法搞定python

 

這邊搜索了不少統計媒體文件時長的,主要有如下幾種linux

一、使用java獲取windows

二、使用python獲取bash

三、使用mediainfo工具獲取ssh

因爲本身對java剛懂點基礎,要琢磨幾天才能寫出來,而python代碼下載的第三方模塊運行時老是報錯。一時半會沒法解決curl

最終採用mediainfo工具ide

 

一、下載和安裝mediainfo工具工具

這邊下載使用的mediainfo工具是1.8版本的測試

 

 二、簡單使用此工具查看一些媒體文件

在安裝目錄下找到此軟件入口(能夠發送個快捷方式到桌面,方便之後使用)

 

能夠打開文件或者文件夾

 

先查看一個電影文件。有一些輸出信息

點擊下面按鈕

能夠看到一些定義好的輸出格式,選擇不一樣的格式,顯示的信息不同

 

 這裏選擇樹狀圖,能夠看到不少信息

 

因爲這裏我只想要文件名和文件的播放時長,所以須要自定義輸出信息

選項--參數設置

 

 找到自定義

 

點擊新建,自定義個名字,隨便定義

 

點擊OK以後彈出以下

 

 保持第一行內容以下

General           : %FileNameExtension%,%PlayTime/String1%

 

以下,點擊OK保存

保持當前自定義的是本身剛剛寫的

 

點擊肯定

點擊左邊的查看方式

 

 查看方式選擇自定義

能夠看到輸出信息以下

 

能夠看到第一行左邊是文件名,右邊是時間

其它信息是多出來的。咱們沒配置,可是仍然默認多出來了。目前已經作到輸出信息最少了,同時咱們須要的都在

若是不想看到毫秒等信息。能夠編輯輸出的信息把string1改爲string2

 

再次查看自定義信息,就沒有秒和毫秒了

通過我測試,若是文件沒超過一分鐘,會顯示爲分鐘和秒

若是文件超過1小時,會顯示小時和分鐘。

 

 

三、使用mediainfo工具查看一批媒體文件

前提是媒體文件都在此文件夾下

 

視頻文件信息都出來了

若是文件比較多,可能要等一小會纔會出現。我曾經統計過800個小視頻文件。軟件卡了5到10分鐘才顯示

 

 

 四、對文件輸出信息進行處理加工

右鍵--全選

 

 複製到一個文本里

 

 複製到文本文件裏

 

 接下來就是對這些信息進行加工了。只保留文件名和時間

 

 

方式1

linux命令特別熟的能夠選擇使用awk以及grep工具處理

grep General med.txt| awk -F ':[ ]' '{print $2}'  |awk -F 'Video' '{print $1}'

  

上面是把信息放在了med.txt文件裏的

先根據General過濾出文件名和時間這行,而後根據規律去掉文件名前面的字符串,而後去掉Video以及以後的字符串

 

 

方式2

使用windows版本的awk和grep工具

這裏下載了awk工具和grep工具,都是windows版本的

 

 

 這些命令工具都是從gnu網站下載的

http://gnuwin32.sourceforge.net/packages/gawk.htm

http://gnuwin32.sourceforge.net/packages/grep.htm

 

由於平時也用到了別的工具,本身都統一放在了下面目錄下,同時設置了環境變量,這樣就能夠在任意目錄下使用了

不少windows版本的命令

 

 添加工具目錄到環境變量裏

添加個mypath

內容以下

C:\mytools\core\bin;C:\mytools\curl;C:\mytools\grep\bin;D:\autossh-cygwin;D:\sed-4.2.1-bin\bin;C:\mytools\gawk\bin

而後把mypath假如到系統的path裏面

 

肯定以後

進入工具目錄下,把mediainfo提取出的信息,保存到med.txt裏面

 

 建立個bat文件,裏面內容以下

grep General med.txt| awk -F ":[ ]" "{print $2}"  |awk -F "Video" "{print $1}" >2.csv

  

 

雙擊運行此bat文件,會出現一個2.csv文件。這就是處理後的文件,使用excel工具打開

 

 這就是咱們想要的內容了

相關文章
相關標籤/搜索