Re: [mediacapture-record] Creation of Seekable Files (#119)

> A few years have passed and there is still no official solution. The good solution I've tried so far is this `webm-duration-fix` for those who need it. It supports fixing recording files larger than 2GB and has a low memory footprint when fixing. based on ts-ebml,Support browser and node。 https://github.com/buynao/webm-duration-fix
> 
> ```
> import fixWebmDuration from 'webm-duration-fix';
> 
> const mimeType = 'video/webm\;codecs=vp9';
> const blobSlice: BlobPart[] = [];
> 
> mediaRecorder = new MediaRecorder(stream, {
>   mimeType
> });
> 
> mediaRecorder.ondataavailable = (event: BlobEvent) => {
>   blobSlice.push(event.data);
> }
> 
> mediaRecorder.onstop = async () => {  
>     // fix blob, support fix webm file larger than 2GB
>     const fixBlob = await fixWebmDuration(new Blob([...blobSlice], { type: mimeType }));
>     // to write locally, it is recommended to use fs.createWriteStream to reduce memory usage
>     const fileWriteStream = fs.createWriteStream(inputPath);
>     const blobReadstream = fixBlob.stream();
>     const blobReader = blobReadstream.getReader();
>   
>     while (true) {
>       let { done, value } = await blobReader.read();
>       if (done) {
>         console.log('write done.');
>         fileWriteStream.close();
>         break;
>       }
>       fileWriteStream.write(value);
>       value = null;
>     }
>     blobSlice = [];
> };
> ```

this one can not run in project with es2022

-- 
GitHub Notification of comment by ZHENGYUN01
Please view or discuss this issue at https://github.com/w3c/mediacapture-record/issues/119#issuecomment-1153888129 using your GitHub account


-- 
Sent via github-notify-ml as configured in https://github.com/w3c/github-notify-ml-config

Received on Monday, 13 June 2022 13:03:57 UTC