Как записать буфер 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;
}
Другие вопросы по тегам