需求:上传视频的时候需要知道该视频的帧数等信息,input的file直接读取是不能读取帧数的

方式:通过引入mediainfo.js来获取视频的帧率和视频的总时长,用帧率*时长得出总帧数

栗子:

上面输出格式是 text 我们可以根据需要将格式设为 json 对象,这样就能获取想要的信息了

//这是text 格式
MediaInfo({ format: 'text' }, (mediainfo) => {fileinput.addEventListener('change', () => onChangeFile(mediainfo))
})
//可以改为 json 对象格式
MediaInfo({ format: 'object' }, (mediainfo) => {fileinput.addEventListener('change', () => onChangeFile(mediainfo))
})

然后在 get_file_info 方法中将需要的信息获取出来使用就可以了

function get_file_info(mediainfo, file) {let getSize = () => file.sizelet readChunk = (chunkSize, offset) =>new Promise((resolve, reject) => {let reader = new FileReader()reader.onload = (event) => {if (event.target.error) {reject(event.target.error)}resolve(new Uint8Array(event.target.result))}reader.readAsArrayBuffer(file.slice(offset, offset + chunkSize))})return mediainfo.analyzeData(getSize, readChunk).then((result) => {// 如果是object,可以拿到结果对象let res = result.media.track[1];console.log(res)//获取帧数和总时长console.log(res.FrameRate,res.Duration);}).catch((error) => {output.value = `${output.value}\n\nAn error occured:\n${error.stack}`})
}

注意,当传入.avi格式时是不能获取到帧率的,因为我的视频格式统一是25帧率,所以我给了一个默认值25。详细信息见官网的使用

这个demo需要放到http服务中访问才能正确使用,或者使用CDN在线地址引入mediainfo.js

<script src="https://unpkg.com/mediainfo.js/dist/mediainfo.min.js" ></script> 

mediainfo 在线使用地址

demo下载地址(这个demo需要放到http服务中才能正确使用)

mediainfo.js获取视频详细信息,js获取视频帧数相关推荐

  1. 获取linux详细信息,Linux 获取网口详细信息

    一般来说,研究 ifconfig.c 源代码就可以达到目的了. 但是Linux已经提供了比较方便的获取网口信息的方式: [philip@catonbj ~]$ cat /sys/class/net/e ...

  2. PHP 获取服务器详细信息

    PHP 获取系统信息,PHP 获取服务器详细信息 获取系统类型及版本号:    php_uname()                                   (例:Windows NT ...

  3. 淘宝/天猫API接口,item_sku - 淘宝商品SKU详细信息查询,淘宝/天猫获取sku详细信息 API 返回值说明

    欢迎使用淘宝API接口(item_sku - 淘宝商品SKU详细信息查询 ) 你好! 这是你使用我们的淘宝API接口获取商品详细接口说明. 测试地址:获取Key和secret 测试结果: Reques ...

  4. 淘宝API接口:获取sku详细信息

    今天分享的是淘宝平台API,item_sku - 获取sku详细信息 点击注册测试地址(获取Key和secret) { "item": { "num_iid": ...

  5. 微信小程序控制台 报错 对应的服务器证书无效 控制台输入 showRequestInfo() 可以获取更详细信息 原因是ssl证书过期 重新申请即可

    微信小程序控制台 报错 对应的服务器证书无效.控制台输入 showRequestInfo() 可以获取更详细信息 报错原因:域名下的SSL证书过期 我这边报错的原因是ssl证书过期 重新申请后就好了, ...

  6. NX二次开发-UFUN获取工程图详细信息UF_DRAW_ask_drawing_info

    NX二次开发-UFUN获取工程图详细信息UF_DRAW_ask_drawing_info NX9+VS2012#include <uf.h> #include <uf_draw.h& ...

  7. 淘宝/天猫如何获取sku API接口,item_sku - 获取sku详细信息

    一.接口参数说明: 通过淘宝/天猫app中分享至PC端的短链接商品ID,通过调用item_sku - 获得sku接口,可以得到接口要的商品sku详情数据. 点击获取测试key和secret 请求地址: ...

  8. 淘宝API接口(item_sku - 获取sku详细信息)

    今天分享淘宝API接口:获取sku详细信息,包括其他各大电商平台都在使用范围内 想了解的可以进去看看:点击测试 参数示例: {     "item": {         &quo ...

  9. Android获取歌曲详细信息

    Android获取歌曲详细信息 一.目标 二.实现方案 三.HTML方案 四.JSON方案 五.接下来 六.Finally 在<Android实现歌词笔记构思>时,构思了如何在笔记中添加歌 ...

  10. SSH初探:通过查看GPU的PID获取USER详细信息

    笔者课题组公用服务器,有时候遇到长时间训练占用GPU的情况,可以通过查看GPU的PID获取USER详细信息,从而沟通协商GPU的使用. watch -n 1 nvidia-smi 上面这个指令在Lin ...

最新文章

  1. 同义词词林 java_基于同义词词林扩展版的词语相似度计算
  2. deepin关机卡桌面_喜大普奔:发现一个惊艳的电脑操作系统Deepin
  3. go语言实现排序算法
  4. python开发工具排名-7款公认比较出色的Python IDE,你值得拥有!
  5. mysql only_full_group_by报错的问题(转)
  6. kafka0.9 java commit_kafka0.9.0及0.10.0配置属性
  7. Python 全局变量和局部变量迷惑人的小示例
  8. linux下使用yum安装新版php7.0
  9. HNOI2013 游走
  10. cocos2d-x游戏实例(14)-纵版射击游戏(1)
  11. matlab tf离散,求matlab离散化程序对于一个二阶传函,求其在MATLAB中的离散化程序.抱歉,没办法写清楚传函表达式.我试试:Gp(...
  12. 实验一(高见老师收)
  13. servlet设置cookie实验
  14. ehcache使用_Mybatis整合(Redis、Ehcache)实现二级缓存,恕我直言,你不会
  15. GitHub学习一-本地电脑与GitHub绑定
  16. Leetcode: Pascal's Triangle II
  17. 媒体查询以及flexbox,响应式图片
  18. VMware Workstation 12 Pro 安装mac系统中遇到的一些问题:
  19. 蓝桥杯Python题目(二)
  20. 高通平台批量解析SN号的脚本

热门文章

  1. 2022 国赛 C题 古代玻璃制品的成分分析与鉴别
  2. 你的华为手机总是杀后台,很烦人!那是这4个设置没关闭吧
  3. dell服务器之开启虚拟化功能,dell服务器自带虚拟(dell服务器开启虚拟化技术)...
  4. c#背单词小程序视频_C#背单词小程序
  5. 日常买淘宝tb号有什么特别要注意的事项吗?
  6. 文件恢复+html乱码怎么办,数据恢复的文件都是乱码怎么办
  7. Mac+Typora颜色快捷键设置
  8. matlab的三相电源在哪,Matlab-Three-Phase Source(三相电源)
  9. 【c语言】通讯录【动态完整版有排序和文件操作】
  10. ICEC-电子爱好者协会-基本学习大纲(必须实行)