Ошибка рендера ffmpeg.wasm в браузере

При локальном рендере видео с использованием библиотеки ffmpeg.wasm в браузере Chrome очень часто в процессе рендера вылетает ошибка с кодом SBOX_FATAL_MEMORY_EXCEEDED. Используется стандартный набор команд. Код ниже полуфейковый, поскольку очень длинный, но описывает приблизительный алгоритм действий. Мощность компьютера и загруженность оперативной памяти не влияет, используемые видеофайлы минимального размера. Кто-нибудь с этим сталкивался и как можно решить эту проблему?? Ошибка в процессе рендера

const videoGenerate = async (project) => {
  const ffmpeg = createFFmpeg({
      corePath: 'ffmpeg/ffmpeg-core.js',
      workerPath: 'ffmpeg/ffmpeg-core.worker.js'
  });
  await loadFfmpeg(ffmpeg);
  project.projectName = "Default";
  project.fileType = "video/mp4";

  const resultVideo = {
    title: `${project.projectName}ConcatenatedVideo.mp4`,
  };
  // *For fetchFile method and ffmpeg.FS('writeFile', title, file);
  await uploadObjects(project.projectName, ffmpeg);
  // *
  const command = ['-i', project.video, resultVideo.title];
  await ffmpeg.run(...command);
  await ffmpeg.FS("unlink", resultVideo.title);
  resultVideo["blob"] = ffmpeg.FS('readFile', title);
  return resultVideo.blob;
};

Используются данные зависимости: "@ffmpeg/core": "^0.8.5", "@ffmpeg/ffmpeg": "^0.9.7". Обновление библиотеки до последней версии так же ни к чему не приводит.


Ответы (1 шт):

Автор решения: Руслан Кундиус

Если кому-то пригодится - я разобрался)) Использовал фреймворк VUE. Доступ к ffmpeg командам был в отдельном файле js. При обращении к этому файлу каждый раз загружал библиотеку в память. Очистка переменных не помогла, потому что в этой библиотеке используется некий emscripten https://emscripten.org/docs/api_reference/Filesystem-API.html . Решение задачи - загружаю библиотеку один раз при монтировании главного компонента в Store и передаю переменную со стора в данный файл (при обращении).

→ Ссылка