使用mediainfo工具统计每个视频文件(媒体文件)播放时长
需求
1、运营那边需要统计大量视频文件的播放时长,并汇总记录到excel表中,问我有什么方法搞定
这边搜索了很多统计媒体文件时长的,主要有以下几种
1、使用java获取
2、使用python获取
3、使用mediainfo工具获取
由于自己对java刚懂点基础,要琢磨几天才能写出来,而python代码下载的第三方模块运行时总是报错。一时半会无法解决
最终采用mediainfo工具
1、下载和安装mediainfo工具
这边下载使用的mediainfo工具是1.8版本的
2、简单使用此工具查看一些媒体文件
在安装目录下找到此软件入口(可以发送个快捷方式到桌面,方便以后使用)
可以打开文件或者文件夹
先查看一个电影文件。有一些输出信息
点击下面按钮
可以看到一些定义好的输出格式,选择不同的格式,显示的信息不一样
这里选择树状图,可以看到很多信息
由于这里我只想要文件名和文件的播放时长,因此需要自定义输出信息
选项--参数设置
找到自定义
点击新建,自定义个名字,随便定义
点击OK之后弹出如下
保持第一行内容如下
General : %FileNameExtension%,%PlayTime/String1%
如下,点击OK保存
保持当前自定义的是自己刚刚写的
点击确定
点击左边的查看方式
查看方式选择自定义
可以看到输出信息如下
可以看到第一行左边是文件名,右边是时间
其它信息是多出来的。我们没配置,但是仍然默认多出来了。目前已经做到输出信息最少了,同时我们需要的都在
如果不想看到毫秒等信息。可以编辑输出的信息把string1改成string2
再次查看自定义信息,就没有秒和毫秒了
经过我测试,如果文件没超过一分钟,会显示为分钟和秒
如果文件超过1小时,会显示小时和分钟。
3、使用mediainfo工具查看一批媒体文件
前提是媒体文件都在此文件夹下
视频文件信息都出来了
如果文件比较多,可能要等一小会才会出现。我曾经统计过800个小视频文件。软件卡了5到10分钟才显示
4、对文件输出信息进行处理加工
右键--全选
复制到一个文本里
复制到文本文件里
接下来就是对这些信息进行加工了。只保留文件名和时间
方式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工具打开
这就是我们想要的内容了
使用mediainfo工具统计每个视频文件(媒体文件)播放时长的更多相关文章
- video.js不能控制本地视频或者音频播放时长
问题: 把视频放到本地,然后对视频进行测试,想要控制视频或者音频的播放时长,没办法做到,每次拉动进度条,都会使得本地视频重新播放 原因: 所有浏览器默认js无法访问本地地址,也就是说js不能对本地文件 ...
- MediaInfo用来分析视频和音频文件的编码和内容信息的超好用工具
转载:http://blog.csdn.net/ameyume/article/details/6718705 MediaInfo简介 MediaInfo 用来分析视频和音频文件的编码和内容信息. M ...
- python调用mediainfo工具批量提取视频信息
写了2个脚本,分别是v1版本和v2版本 都是python调用mediainfo工具提取视频元数据信息 v1版本是使用pycharm中测试运行的,指定了视频路径 v2版本是最终交付给运营运行的,会把v2 ...
- Django (七) token&静态文件&媒体文件
token&静态文件&媒体文件 1. token 1. 会话技术 2. 服务端会话技术 3. 它实际上就是手动实现的session 4. 实现token 4.1 在models.py中 ...
- C# 获取媒体文件播放时长
引用: Interop.Shell32.dll 方法: /// <summary> /// 获取媒体文件播放时长 /// </summary> /// <param na ...
- Java获取音频文件(MP3)的播放时长
最近的一个项目需要按照时间播放mp3文件,例如,播放10分钟的不同音乐. 这就意味着我得事先知道mp3文件的播放时长,以决定播放几遍这个文件. 方案一:Java的方式 找第三方的库,真的感谢这些提供j ...
- python 获取视频文件的大小,时长等
举例说明: import os import sys import xlwt from moviepy.editor import VideoFileClip file_dir = u"G: ...
- java获取音频文件播放时长
方法一: 在项目开发过程中,需要获取音视频文件时长.查询资料后发现 JAVE能够完美得到想要的结果,JAVE项目简介如下: The JAVE (Java Audio Video Encoder) li ...
- PHP获取视频的第一帧与时长
//获得视频文件的缩略图 function getVideoCover($file,$time,$name) { if(empty($time))$time = '1';//默认截取第一秒第一帧 $s ...
随机推荐
- 阶段02JavaWeb基础day01html&css
HTML 基础 概念 全写: HyperText Mark-up Language 译名: 超文本标记语言 超级文本标记语言是一种规范,一种标准, 超文本标记语言它通过标记符号来标记要显示的网页中的各 ...
- 如何验证代理ip的正确性
python requests 使用代理的话: proxy_list = ["aabbcc.aabbcc.169.aabbcc:8080", ] ip_p = random.cho ...
- JavaScript 获得客户端IP
Below are all the free active IP lookup services I could find and the information they return. If yo ...
- vue学习笔记——篇3
1.绑定计算后数据,三种方式: >1.红色框,通过method >2.黄色框,通过computed >3.蓝色框,通过watch 推荐computed,vue对computed做了缓 ...
- SPRINGMVC中的中文乱码处理
说到乱码处理,对于很多人来说是非常经常遇到的,现在来总结一下web工程中中文乱码处理的几个步骤,乱码处理大致可以分为一下几步,分别从页面到数据库: 页面传值到后台: 工程编码(最后一开始建立工程就设置 ...
- 无线局域网(WLAN)
无线局域网根据结构可以分为两大类:有固定基础设施的无线局域网和无固定基础设施的局域网. 有固定基础设施是指网络中已经预先存在了一批固定的数据处理和转发设备,这些固定设备可以通过有线方式连接其他网络或 ...
- 前端测试时,常用SQL
与后台联调页面,经常会验证数据正确性,这时候就需要会点SQL语句,以下是常用的SQL: 单表查询 select * from table 条件查询 select * from table where ...
- javascript 中的原型继承
javascript圆形变成的基本规则: 所有数据都是对象: 要得到一个对象,不是通过实例化类,而是找到一个对象作为原型并克隆它: 对象会记住它的原型: 如果对象无法响应某个请求,它会把这个请求委托给 ...
- Delphi编程之爬取贴吧图片最终版
接着前面两篇文章的内容,我们今天把这个贴吧爬取图片的程序完善,让它具有可以下载贴吧多页和帖子多页图片的能力. 主界面设计如下,包含3个labelededit,3个button,1个memo,1个str ...
- c++ 第二章知识梳理
2.1.c++语言概括 2.1.1)c++的产生 一个更好的c,由c演变而来 2.1.2)c++的特点 一是尽量兼容c,二是支持面向对象的方法.更安全,且简洁高效. 2.1.3~2.1.5 多数和C相 ...