3 ms·
You're correct about that there are different degrees of seeking support. Seeking VBR MP3 with perfect accuracy is trivial by forward-reading. However, this is
by eamsen 10y ago
You're correct about that there are different degrees of seeking support.
Seeking VBR MP3 with perfect accuracy is trivial by forward-reading. However, this is obviously highly inefficient on long duration seeks.
For instant seeking support, you need to (partly) depend on the optional VBR headers. This comes with its own set of issues, e.g., the most commonly used Xing header contains only 100 seek table entries, which may not provide enough resolution for large files.
I'm still surprised about the complete lack of support for those headers in AVFoundation, since I would consider it a low-hanging fruit in terms of improving usability for the majority of use cases (excluding pod casts).
Disclaimer: I've worked on MP3TrackDemuxer for Gecko/Firefox.
- Analemma_ 10y ago> However, this is obviously highly inefficient on long duration seeks. Is it that bad? On the podcast, Marco claimed that seeking forward through an MP3 to find the correct time is pretty efficient, and that the reason for all this trouble is that streaming (specifically, requesting the correct byte offset from the server, if you want to jump to a specific time on the stream) is the problem he's trying to tackle here. He said that if it weren't for the streaming use case, he'd be fine with forward-reading.
- MBCook 10y agoHe did say it wasn't an issue for downloaded files. For streaming I believe he said you only get eight bits, which over a two hour podcast is about 30 seconds of precision. Then of course the podcast sometimes goes longer, not to mention how long Gruber's podcast goes. Sounds like Matco is right it would work well for a 3 minute song but not s multi-hour podcast.