Sinful coder

The Adobe Flash plugin for Quicktime seems to only support movies with a duration of 2^24 milliseconds. That’s about 4 hours and 39 minutes. Funny enough, I had reason to compress a 4 hour and 41 minute movie today. The FLV format is supposed to support up to 2^32, using an extended timestamp attribute, but it sure doesn’t seem like the plugin makes use of it. After 16777216 milliseconds, we roll back to zero.

Interestingly though, the files are still valid and playable, they just can’t be indexed properly by the various FLV metadata injectors. And progressively downloading a four hour movie isn’t such a great choice.

The fix? When you’re injecting metadata, watch for the timestamp to roll and then just tack on an extra 2^24 to all the timestamps from there on out. It’s a bit dirty, but it’ll work, since the truth is you’re matching timestamps to byte offsets – once you’ve built your metadata array, the timestamps in video packets don’t matter.

Leave a Reply

Your email address will not be published. Required fields are marked *