Javascript 上传前检查MP4是否为H264编码

Javascript 上传前检查MP4是否为H264编码,javascript,validation,video,ffmpeg,h.264,Javascript,Validation,Video,Ffmpeg,H.264,我已经建立了一个应用程序来管理上传广告,营销团队选择他们是想要一个图像还是视频广告,并填写一份带有标题、开始时间等的表格。这些数据然后存储在我的数据库中 然而,对于视频,还有一个额外的步骤,它们被上传到AWS,并且这种配置方式只适用于H264编码的视频 我想为视频添加一些客户端验证,我发现了一个相关问题,用于检查浏览器是否支持H264: 这是答案用来检查支持的代码 var testEl = document.createElement( "video" ), mpeg4, h264;

我已经建立了一个应用程序来管理上传广告,营销团队选择他们是想要一个图像还是视频广告,并填写一份带有标题、开始时间等的表格。这些数据然后存储在我的数据库中

然而,对于视频,还有一个额外的步骤,它们被上传到AWS,并且这种配置方式只适用于H264编码的视频

我想为视频添加一些客户端验证,我发现了一个相关问题,用于检查浏览器是否支持H264:

这是答案用来检查支持的代码

var testEl = document.createElement( "video" ),
    mpeg4, h264;

if ( testEl.canPlayType ) {
    // Check for h264 support
    h264 = "" !== ( testEl.canPlayType( 'video/mp4; codecs="avc1.42E01E"' )
        || testEl.canPlayType( 'video/mp4; codecs="avc1.42E01E, mp4a.40.2"' ) );
   );
我检查了控制台中的视频,比较了一个有H264编码的视频和一个没有H264编码的视频,在它们的属性中找不到任何与H264相关的内容。src列出了MP4,但没有列出其他内容:

src: data:video/mp4;base648766554654 etc.

例如,您需要一个用于JavaScript的MP4解析器

在MP4Box的情况下,您可以附加缓冲区,直到解析
moov
框,在最坏的情况下,这种情况可能发生在文件末尾

文档中的示例:

onReady()
返回文件信息:

其中有
曲目
,每个曲目都有相应的
编解码器

有关
编解码器
格式的详细信息,请参阅

var MP4Box = require('mp4box').MP4Box;
var mp4box = new MP4Box();
mp4box.onError = function(e) {};
mp4box.onReady = function(info) {};
mp4box.appendBuffer(data);
mp4box.appendBuffer(data);
mp4box.appendBuffer(data);
...
mp4box.flush();
mp4box.onReady = function (info) {
    console.log("Received File Information");
}