Clarification/correction to some of the posts here:
1. Flash Player 9 update 3 (v9r115) and above will play H.264s or FLVs equally. Anything earlier than that will NOT play H.264s. You should have a fallback script, like YouTube does.
2. The inability to seek on an H.264 has to do with the placement of the moov atom. QuickTime and a few other encoders places it at the end, but Flash needs it at the beginning, or else the entire file must be downloaded first. A utility like MP4Box will move the moov atom.
3. Any modern streaming server or pseudo-streaming script will allow Flash player (as long as its v9r115 or above) to seek to any valid timepoint, but this requires keyframe metadata in the file. Many encoders do not add keyframe metadata by default, for either FLV or H.264. It must be added by a metadata utility.
4. HTML5 doesn't offer the extras people have come to expect in Flash video players. JavaScript needs to be written and tested for cross-browser compatibility for things like endroll ads. These are the reasons HTML5 will not in the near term replace Flash player. People like Flash because of its consistency for anything beyond simply playing a video.
5. The note about not overdoing H.264 bitrate and size is a good one. Many people try to encode at HD resolutions using the standard H.264 profile. You need the encoding profile designed for HD, otherwise the user's playback experience will likely be compromised, even on a dual-core machine.
6. And yes, you need a player that knows how to stream, versus one that's written just for progressive download (where you can't seek to an arbitrary time that has not yet been downloaded). All of the popular players (JW Player, Flowplayer, etc.) have this feature built-in, but for many you need to tell it the protocol you're using. Otherwise it may assume progressive download and not allow seeks beyond the portion already downloaded.
|