We’re experimenting with streaming MP4 VOD files over HLS/HTTP on Android. It seems to work fine, however, it takes quite long to start the stream. The same machine handles RTMP streams in less than a second (only tested that with MP3 files).
File details
Video-stream of ~ 1 second (320x180)
Audio-stream (AAC), 128k, ~ 6 minutes
Filesize is 6 MB
MP4 moov-atom has been moved to begin of file (no difference from not doing that, but just wanted to be sure)
Time it takes before starting
Android Wifi: 7 seconds
Android 3G: 15 seconds
Windows VLC: 3 seconds
On Android we don’t render the video-stream. Thus only the audio stream is being used.
Can these times be shortened on Wowza 2? (especially the wifi and 3G times)
We tried to stream using IPhone 5 and Ipad and accessed using ethereal (Wireshark). We also changed the bit rate using bandwidth limiter. The bit rate changes are visible through ethereal as different bitrate segments will be displayed.
We tried to stream using Android phone/tablet having the OS as ICS or jellybean. We also changed the bit rate, but it does not obtain the different bit rate segments and the browser crashes. Kindly help me with this issue.
Here is the Low Latency article. You will have lower latency using RTMP to your android browser.
RTMP is not an option unfortunately.
You might get better results if you use an audio-only stream.
We tried that before and we didn’t manage to get it working on Android (without 3rd party apps/libraries) from Wowza2 (AAC-file stream, it didn’t play on Android, worked fine in VLC etc.). However, we noticed that a different audio-only stream (from someone else) works as expected, but it’s a server Wowza3.1 server.
Does Wowza3 feature Android/HLS streaming improvements I’m not aware of? In other words: Would upgrading to Wowza3 fix these audio-only problems?
Thanks for your thoughts and I agree with you the HLS support in Android could’ve been better. However, we can’t use RTSP because a couple Dutch mobile providers block RTSP video-streaming for an unknown reason.
Does anyone else have any thoughts about these performance issues when using HLS?
I find that HLS performance varies wildly across different Android devices (even different devices running the same build of Android). Truthfully, I think the implementation is still half baked, and we can’t count on reliable performance.
For example. on my Galaxy Nexus running 4.1, sometimes an HLS stream will start playing almost instantly, sometimes it won’t start at all (using the same source and connection).
Perhaps the next version of Android will show greater stability, but if your use case allows, I’d opt for RTSP until Android’s HLS implementation becomes more reliable.