如何获取mp4的编解码器mime信息? [英] How to get mp4's codec mime information?

查看:140
本文介绍了如何获取mp4的编解码器mime信息?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

如何在JavaScript中获取MP4的 codec 信息,以便检查浏览器是否支持该信息?

How can I get a MP4's codec information in JavaScript so that I can check if the browser supports it?

const audioCodec = '';//<---?? exmaple: "mp4a.40.2"
const videoCodec = '';//<---?? example: "avc1.42e01e"
const video = document.getElementById('video');
const mimeCodec = 'video/mp4; codecs="' + audioCodec + ', ' + videoCodec + '"';

if (!('MediaSource' in window) || !MediaSource.isTypeSupported(mimeCodec)) {
    console.error('Unsupported MIME type or codec: ', mimeCodec);
}

推荐答案

我们没有内置的可访问方式,因此您必须自己解析文件或使用库来解析文件.

There is no built in way accessible to us, so you'd have to parse the files yourself, or use a library to do so.

在许多其他功能中, MP4Box.js 可以对mp4文件执行此操作

Among a lot of other features, MP4Box.js can do this for mp4 files.

const mp4boxfile = MP4Box.createFile();
mp4boxfile.onError = console.error;
mp4boxfile.onReady = (info) => {
  console.log( info.tracks.map( track => track.codec ) );
};
fetch( "https://dl.dropboxusercontent.com/s/hyeredbcn60feei/BigChunksBunny1.mp4" ).then( (resp) => resp.arrayBuffer() )
  .then( (buf) => {
    buf.fileStart = 0;
    mp4boxfile.appendBuffer( buf );
    mp4boxfile.flush();
  } );

<script src="https://gpac.github.io/mp4box.js/dist/mp4box.all.js"></script>

它们显然也具有简单"的含义.构建可能足以满足您的用例.

They apparently also have a "simple" build which may be enough for your use case.

这篇关于如何获取mp4的编解码器mime信息?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆