- 
          
 - 
                Notifications
    
You must be signed in to change notification settings  - Fork 1k
 
Open
Description
Describe the bug
When reloading from ST to MT, I can't reuse the (detached) ArrayBuffer which has been assigned as input data in the ST instance of FFmpeg
To Reproduce
async function makeConfig(mt) {
   return ({
        coreURL: await window.ffmpegUtil.toBlobURL(`${baseURL}/ffmpeg-core.js`, 'text/javascript'),
        wasmURL: await window.ffmpegUtil.toBlobURL(`${baseURL}/ffmpeg-core.wasm`, 'application/wasm'),
        workerURL = mt ? await window.ffmpegUtil.toBlobURL(`${baseURL}/ffmpeg-core.worker.js`, 'text/javascript') : null
   });
}
new FFmpeg();
await ffmpeg.load(await makeConfig(false));
await ffmpeg.writeFile("foo", new Uint8Array(data));
await ffmpeg.exec(['-i', "foo"]);
await ffmpeg.load(await makeConfig(true));
await ffmpeg.writeFile("foo", new Uint8Array(data));  // <-- TypeError: Cannot perform Construct on a detached ArrayBuffer
await ffmpeg.exec(['-i', "foo"]);Expected behavior
I should be able to switch from ST to MT and reuse the data.
Desktop (please complete the following information):
- OS: Ubuntu
 - Browser: Firefox 141 / Chromium 142
 
Additional context
After using ffprobe I know which codec the video is using. Only then can I choose whether MT is suitable. (For some codecs, like HEVC, it fails and thus must be avoided, but for all others it gives significant performances boost and is desirable)
Metadata
Metadata
Assignees
Labels
No labels