Как записать буфер UInt8Array в формат мультимедийного файла из браузера?
В моем JavaScript-коде, запущенном в браузере, я разбил видео на отдельные буферы аудио и видео потоков. И аудио, и видеокадры представлены в виде буфера UInt8Array, и я хочу записать его на диск в.aac /.mp4 или другом файле мультимедийного формата, который должен воспроизводиться VLC или другими медиапроигрывателями. Я нашел некоторые ответы на stackru, касающиеся записи typed-array в файл двоичного формата на диске, но файл, который мне нужно сохранить, это надлежащие медиа-файлы. Как мне записать TypedArray в памяти для аудио / видео файлов на диске в JavaScript.
1 ответ
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;
}