S3 Flowshield: Why does my video take forever to load?
Since this has tripped me up twice – with no excuse for the second time since Flowshield support had given me the friggin’ answer two months prior – I figured I’d post this here so I can find it again.
The reason it takes forever for videos to start playing in Flowshield is because of an encoding issue. Some encoders place all the metadata at the end of a video file. I can’t think of any logical reason to do that, but it’s something that has to be dealt with since videos won’t start playing until the metadata has been read. That means that the entire video has to be downloaded before it’ll play. Since that’s pretty much the antithesis to streaming, it’s really, really irritating. Here’s what Rapid Crush, makers of S3Flowshield, had to say:
The slow start is not an S3FlowShield or FlowPlayer issue. It is an encoding and Adobe Flash issue. In order for the flash player to start playing the video before it is fully downloaded, the metadata (information about the video) must be placed at the start of the file. Unfortunately, some encoders place this data at the end of the file instead, so the player cannot start playing the video until the entire file is downloaded and the metadata can be read. You can see more information and how to fix the files at these URLs:
The information and proposed fixes on those sites above can get quite technical. Fortunately, there is a free and easy to use utility to fix the files that can be found here:
I used the tool linked at the bottom and it worked a treat. A video that was taking 47.5 seconds to preload before the fix now takes just shy of 5 seconds to start playing. I can live with that.
And since one never knows whether things will continue to live on the intertubes, I’m preserving it here for posterity: QTIndexSwapper
Since this is flash based, will it work on mobile devices?
It does. Just tested it on my iPhone and it works as expected. Either they’ve changed the plugin so that it doesn’t rely on Flash, or they’ve added a mobile fallback.