当前位置: 首页 > Web前端 > vue.js

怎么判断视频-音频文件的编码格式,chrome无法播放MP4

时间:2023-03-31 23:20:57 vue.js

背景:在chrome上传的时候,发现同样的MP4格式在浏览器打开无法播放。研究:经过排查,发现是浏览器的兼容性问题。不同的浏览器播放不同的MP4格式编码,如图。解决方法:如果要在浏览器中播放,需要截取不同编码格式的文件,那么如何获取文件的编码格式呢?使用:mp4box.js通过官网配置的onReady方法获取文件的详细信息,如图:varMP4Box=require('mp4box');//或者您喜欢的任何导入方法。varmp4boxfile=MP4Box.createFile();mp4boxfile.onError=function(e){};mp4boxfile.onReady=function(info){};mp4boxfile.appendBuffer(数据);mp4boxfile.appendBuffer(数据);mp4boxfile.appendBuffer(数据);需要注意的是,MP4box接受文件一个Buffer对象,想详细看:/****@hack检测部分mp4视频的编码格式,用于检测chrome浏览器无法播放的问题。**参考链接:*1.*2,***/exportconstcheckVideoCode=(file:any,callback:Function)=>{constmp4boxFile=MP4Box.createFile();constreader=newFileReader();reader.readAsArrayBuffer(文件);reader.onload=function(e:any){constarrayBuffer=e.target.result;arrayBuffer.fileStart=0;mp4boxFile.appendBuffer(数组缓冲区);};mp4boxFile.onReady=function(info:any){callback(info);};};既然获取了当前视频的文件编码,那怎么知道能不能播放呢?放两张图对比哈:好像还是有些区别的,所以不同编码格式的mime也是不一样的,这样可以判断当前字段有没有avc字段。如果是这样,那么chrome不支持当前格式编码。参考资料:http://www.soolco.com/post/83098_1_1.htmlhttps://blog.csdn.net/tester1...https://github.com/gpac/mp4bo...