关于人脸识别H5移动端拉取获得录像视频的问题

关于人脸识别H5移动端拉取获得录像视频的问题

我通过navigator.mediaDevices.getUserMedia拉起摄像头
我通过下面代码储存了录取视频的blob数组

//stream是navigator.mediaDevices.getUserMedia成功时返回的res
this.mediaRecorderData = new MediaRecorder(stream, {
                    mimeType: 'video/webm'
                });
this.mediaRecorderData.ondataavailable = (e) => {
                    if (e.data.size > 0) {
                        this.videoCecorded.push(e.data); //视频录制视频流数据
                    };
                };

然后通过下面代码将blob数组videoCecorded转换为file再转为base64(这里因为后端要mp4格式转的base64,以此只能先转file的mp4)

let blob = new Blob(_this.videoCecorded, {
                        type: "video/mp4"
                    });
let filename = new Date().getTime() + '.mp4';
                    let file = new File([blob], filename, {
                        type: 'video/mp4'
                    })    
let reader = new FileReader();
reader.readAsDataURL(file);
let base64
reader.onload = e => { 
                          base64 = e.target.result;
                          base64 = base64.split(',')[1];
                          console.log(base64)//这里的base64就是我目前最终得到的base64
}

现在遇到的问题是:
我直接拉起摄像头进行录制,这个base64后端一直报错,原因是视频有问题导致转的base64也有问题
如果我用手机录制一段人脸视频,通过工具手动转成base64并把其写死为接口入参,则接口是正确返回的
这样可以看出是我上面录制视频并转base64的地方出现了问题,请问怎么解决?

拉摄像头录的视频,是把什么格式的转换成mp4保存起来了,flv还是m3u8格式的?
与手机录制的视频格式比较一下