mediainfo.js使用复盘

Examples | mediainfo.js 官方举例页面

1.MediaInfo是什么

MediaInfo是一个能读取音频和视频文件并分析和输出音视频信息的工具,能输出的内容包括视频信息,音轨,字幕等。他是采用BSD协议(类似MIT)的开源项目,可以免费商业。

具体效果如下图,这是输出text形式的结果,还支持输出json,xml,和html。

const fileinput = document.getElementById('fileinput')
const output = document.getElementById('output')

const onChangeFile = (mediainfo) => {
  const file = fileinput.files[0]
  if (file) {
    output.value = 'Working…'

    const readChunk = async (chunkSize, offset) =>
      new Uint8Array(await file.slice(offset, offset + chunkSize).arrayBuffer())

    mediainfo
      .analyzeData(file.size, readChunk)
      .then((result) => {
        output.value = result
        // var jsonstr=JSON.parse(result);
        // const videoTrack = jsonstr.media.track.find(track => track['@type'] === 'Video');

        // // 提取CodecID
        // if (videoTrack) {
        //     const codecId = videoTrack.CodecID;
        //     console.log(`CodecID值为: ${codecId}`);
        // } else {
        //     console.log('未找到Video类型的轨道信息');
        // }
      })
      .catch((error) => {
        output.value = `An error occured:\n${error.stack}`
      })
  }
}
//format参数指定输出的类型
MediaInfo.mediaInfoFactory({ format: 'json' }, (mediainfo) => {
  fileinput.removeAttribute('disabled')
  fileinput.addEventListener('change', () => onChangeFile(mediainfo))
})
2.怎么使用

官网其实举例依旧很完善了,不过我用的是在网页直接引用,但我又不想引用CDN的链接。

1.直接下载官网静态页举例中的https://unpkg.com/mediainfo.js,放到自己项目下的目录中

2.在网页中引用

        <script src="../js/media/mediainfo.js" type="text/javascript"></script>

3.到这里问题来了,我直接没接触过这方面的东西,我以为直接引用就可以了,因为官方例子也就是这样。但是我下载到本地,发现报错缺少一个叫 MediaInfoModule.wasm 的文件。但是我在GitHub上和官网都没有找到这个文件。

那怎么办?此时我想到的举例的页面可以,那么CDN的链接是不是预加载了这个文件,然后使用浏览器,使用F12大法,果然在其中找到了这个文件。很好,反手一个另存为将文件放在了mediainfo.js的文件夹下

4.再次测试,问题还是存在,还是找不到文件,mediainfo.js提示在它的上级目录中没找到这个MediaInfoModule.wasm文件,但我又不想乱放文件。然后我在mediainfo.js搜MediaInfoModule.wasm找到了如下图的配置,将它的前面加上所在文件夹名称后,重新加载页面即可

至此 我在本地实现了正常调用mediainfo.js。

  • 3
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值