-
Notifications
You must be signed in to change notification settings - Fork 334
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Incorrect parsing of "meta" box for screen recording file with Quicktime #309
Comments
I am getting a similar error with any video shot on the Samsung Galaxy S10. In my case as far as I can tell segmenting still works and the moov box is found and seems reasonable. I am able to stream the segments over WebRTC to MSE in a browser. And BTW this is an absolutely awesome package. Using the latest version of mp4box.js [0:00:00.001] [ISOFile] Processing buffer (fileStart: 0) |
The problem seems to be that the ISOBMFF and QTFF specifications define the The ISOBMFF spec defines The QTFF spec defines I'm not sure if QTFF is supposed to be supported in mp4box.js, or what should happen when the two differ in definition. Likely related: #120 |
@davemevans great investigation work! Is there a way to distinguish which version we are using? If not, we could try to parse using one format and if it doesn't fit the number of bytes try parsing using the second format. It's not ideal but would work. |
We could just bail after the |
Same error here for video taken with a Samsung XCover:
|
I have the same error with video taken with Xiaomi phone and mp4box.js 0.52
|
Yes I observed the same issue as @davemevans 2 years ago filming on my mobile device (huawei p30 lite), many android phones still output quicktime type metabox, but files do not include the brand in the ftyp box (at least mine didnt). |
14496-12 defines meta as FullBox('meta', version = 0, 0), so maybe the best way to parse meta to look at the bytes following |
I'm not sure that will work. What is the byte following |
@bradh you need to check 4 bytes, it will be zero for fullbox (isobmff) and non zero for quicktime box (hdlr) (bigendian 32 bit interpretation), sorry typed byte instead of bytes ;-) |
Possible. Does quicktime use 0x00 0x00 0x00 0x00 in the same way as the ISO BMFF - to mean "to end of file"? |
@bradh I don't believe that syntax is explicitly defined, but my main point here is the difference in syntax between the metaBox from QuickTime and the MetaBox from ISOBMFF. So far no version or flags are specified for the ISOBMFF version so the typical syntax would be sizemeta0x00 0x00 0x00 0x00 for the isobmff and size meta [4 bytes > 0] for the QuickTime MetaBox. |
https://issuetracker.google.com/issues/232971800 indicates that Google are going to keep doing this. They suggest a slightly different work around to parsing based on checking for |
I saved a screen recording mp4 file with sound with Quicktime (mp4_with_sound.mov.zip). If you open this file in the filereader.html, you can see this in the console:
The text was updated successfully, but these errors were encountered: