I have created a delivery system for HTTP Live Streaming using the Play! framework and FFMPEG. Files are encoded on different bandwidths and subsequent segmented for delivery, current, to iOS devices.
However, I would like to extend to embedded players (cross platform) on websites and in the future Android devices. What would be the best approach, without having too much hard drive space overhead. I could encode the MP4 files for the different bitrates, and leave them as one file.
Is there a way that the segmented files (using the FFMPEG segment function) could be used in a Flash player and on Android devices? It would keep the system simple, as FFMPEG seems to do a good job on creating the segments (taking in account keyframes etc.)
I could use JWPlayer, but I don’t have pseudo-live-streaming, so don’t think it could switch and searching would prove difficult. It could also mean that I would need to segment on the fly when a request from an iOS device comes, which adds a small delay and also some hard-drive/processor activity. To overcome the pseudo-live-streaming issue I could redact any request to an Apache server with it enabled, but will add further complexity. Not having pseudo-live streaming for the segmented files doesn’t seem that much of an issue as they are only 10 minutes each.
Anybody who has any thoughts on moving forward.
HLS is supported in the development version of jwplayer. A similar question: Is it possible to play HTTP Live Streaming video within Flash platform designed for iOS? (.m3u8 playlist)
HLS is also supported on Android version 3.0 and higher. Google seems to routinely break it, however.
An HLS only service might be sufficient for you. Another option is to use a server like Wowza that could provide HLS, progressive, and flash streaming from a single input. It’s not free, however.