使用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工具打开

 

 这就是咱们想要的内容了

相关文章
相关标签/搜索