yusitnikov / fix-webm-duration

navigator.mediaDevices.getUserMedia + MediaRecorder create WEBM files without duration metadata. This library appends missing metadata section right to the file blob.
MIT License
248 stars 48 forks source link

Issue Windows Player #11

Open Didi3333 opened 2 years ago

Didi3333 commented 2 years ago

Hi,

First of all thank you very much for this dev.

I'm faced an issue when i make a record of more than 3 seconds.

On Chrome, and VLC there are no impact but with the classic windows player Movie and TV the video doesn't displayed until the end

Analysing the webm with ffpmeg, it seems there is an error on a data:

image

The emplacement change on different record that i made. I also check with classic recorder without the fix and there is no error detected by FFmpeg.

Have you got an idea ?

yusitnikov commented 2 years ago

I'll take a look. Also, if you can attach a file example (before the fix), it will help.

Didi3333 commented 2 years ago

Hi,

Here the webm without the fix. I put in into a zip due to Github limitation

test_WithoutFix.zip

Regards

Didi3333 commented 2 years ago

Hi @yusitnikov, had you find time to check the file ?

theipster commented 2 years ago

Another repro example is: https://nickdesaulniers.github.io/netfix/demo/bufferAll.html (mentioned in the MDN docs).

theipster commented 2 years ago

After doing some research, it turns out that in order to implement this properly, the EBML header not only requires the Duration metadata but also requires adjusting the SeekHead and Cues metadata too.

I've got a working version here for reference, but feel free to trace that all the way back to the ts-ebml package's makeMetadataSeekable() function, which is where all the magic happens.

jimwong666 commented 1 year ago

hi, has the problem been solved?