Javascript 是否使用多个文件流保存Blob?

Javascript 是否使用多个文件流保存Blob?,javascript,html,concatenation,filestream,ffmpeg.js,Javascript,Html,Concatenation,Filestream,Ffmpeg.js,我有两个UInt8阵列。第一个包含视频,第二个包含音频数据。 现在,我使用blob保存它们。我找不到任何关于如何将它们保存在一个文件中的解释 有人能提供一个代码示例吗 谢谢 编辑:对Matt Ellens的请求的评论我搬到这里是为了更好的可读性 不幸的是没有。我试着自己组装一个函数 var blob1 = new Blob([arrayConcat(video)], { type: 'application/octet-stream' }); var blob2 = new Blob([

我有两个UInt8阵列。第一个包含视频,第二个包含音频数据。 现在,我使用blob保存它们。我找不到任何关于如何将它们保存在一个文件中的解释

有人能提供一个代码示例吗

谢谢

编辑:对Matt Ellens的请求的评论我搬到这里是为了更好的可读性 不幸的是没有。我试着自己组装一个函数

var blob1 = new Blob([arrayConcat(video)], {
    type: 'application/octet-stream'
});
var blob2 = new Blob([arrayConcat(audio)], {
    type: 'application/octet-stream'
});
stream = new MediaStream();
stream.addTrack(arrayConcat(video));
stream.addTrack(arrayConcat(audio));
console.log(stream);

它总是说,如果我想添加曲目,我需要一个MediaStreamTrack。我当时正在搜索,发现了这个:。似乎只有网络摄像头和用户micro才能播放曲目,因为它们是由浏览器创建的。

我认为您可以这样组合两个缓冲区(我将假设您的媒体的mime类型):

让vidBlob=新Blob([videoData]{
类型:“应用程序/八位字节流”
});
设audBlob=新Blob([audioData]{
类型:“应用程序/八位字节流”
});
设medSrc=newmediasource;
让audscbuf=medSrc.addSourceBuffer('audio/mpeg3');
audscbuf.addEventListener('updateend',函数(\ux)
{
medSrc.endOfStream();
让vidSrcBuf=medSrc.addSourceBuffer('video/mp4');
appendBuffer(vidBlob.arrayBuffer());
vidSrcBuf.addEventListener('updateend',函数(\ux)
{
medSrc.endOfStream();
让objURL=URL.createObjectURL(medSrc);
//使用objURL保存这两个流。
});
});
appendBuffer(audBlob.arrayBuffer());

这是否回答了您的问题?你可以将你的代码编辑到你的问题中。我移动了它。谢谢你的建议谢谢你的回答。很抱歉,我无法让它运行。我尝试了firefox,但没有成功,因为根据这个答案,firefox不支持MediaSource。然后我尝试使用edge,这至少给了我一个可用的错误,即不支持mp4。我看到了一些mp4工作的例子。在前面提到的答案是书面的,我的文件需要特定的标题,但我不能保证这一点。有什么想法吗?答案是:这很奇怪。Firefox支持
MediaSource
。我在这里瞎飞,因为我没有两个数据数组可玩。如果我有更多的时间,我会有更深入的了解。firefox的错误是,如果我尝试附加缓冲区,它会说mediastream元素不可用