在浏览器中运行的javascript代码中,我将视频解析为单独的音频和视频流缓冲区。音频和视频帧都是UInt8Array缓冲区的形式,我想将其写入.aac/.mp4或其他媒体格式文件中的磁盘,VLC或其他媒体播放器应该可以播放这些文件。我在stackoverflow上找到了一些答案,这些答案是关于将键入的数组写入磁盘上的二进制格式文件,但我需要保存的文件是正确的媒体文件。如何用javascript将内存中的TypedArray写入磁盘上的音频/视频文件。
function download(text, name) {
var a = document.createElement("a");
var buf = str2ab(text);
var fileNew = new Blob([buf], {
type: "image/jpeg"
});
a.href = URL.createObjectURL(fileNew);
a.download = name;
a.click();
}
function str2ab(str) {
var buf = new ArrayBuffer(str.length);
var bufView = new Uint8Array(buf);
for (var i=0, strLen=str.length; i<strLen; i++) {
bufView[i] = str.charCodeAt(i);
}
return buf;
}