HackerTrans
TopNewTrendsCommentsPastAskShowJobs

der_rod

no profile record

comments

der_rod
·в прошлом году·discuss
> They didn't modify anything other than the build, to exclude certain dependencies.

To be clear here: They do modify it further than that by applying a number of patches.

For example, they replace libx264 with OpenH264 which also requires some changes to the UI code since it is (unfortunately) hardcoded to expect x264 to exist. While there have been efforts to upstream those changes, they have not yet been merged.
der_rod
·2 года назад·discuss
Unfortunately, some of the most popular/problematic software (default Windows video player and explorer) does not support `sidx` boxes.
der_rod
·2 года назад·discuss
The mdat box does not have a defined structure, and the specification actually states that attempting to define a structure is almost certainly a mistake. In order to find the data the player is looking for it has to read the moov box, which contains the byte offsets and sizes of "chunks" of data. Since there is no requirement for chunks to be contiguous, or even in the same file, we can simply skip over the fragmentation-related boxes within the data box.
der_rod
·2 года назад·discuss
A hah, that sounds cool, looking forward to the writeup!
der_rod
·2 года назад·discuss
> Having recently written my own fragmented-MP4 remuxing library, I felt this pain too, and my soon-to-be-published writeup has very similar things to say about the ISO's paywalling practices.

Would be curious to hear what goals you had with writing a muxer yourself as well, given that most people just use LibAV/GStreamer/GPAC and call it a day.

> I think one of the hardest parts of ISO-BMFF, aside from spec availability, is that it's pretty hard to implement "cleanly", making existing code confusing to use as reference. (My own implementation is certainly not clean either)

I certainly wouldn't call the OBS implementation "clean" either. It's very much inspired by the FFmpeg/LibAV implementation since that one is fairly straightforward (not a lot of abstraction), and gets the job done (and also is GPL/LGPL so not a huge concern looking at it).