9

Ok. So there are a bagillion different Android devices. I have a video streaming service, works wonderfully for iOS. My app has a live video feature and a saved video clip playback feature (which streams to the device too). I've run some tests on different Android devices and get a whole bunch of different playback results. I am using a 640x480 h.264 base profile video. Streaming that video works only on some devices. For other devices, that same video stream can be made to stream at low resolution and that works on some devices, but still not others. The high profile streaming goes through http://www.wowzamedia.com/ (rtsp) and doesn't work on any Android device (but works on iPhone). The lowest and worst option is Motion JPEG, which works on all tested devices so far.

So my question is, how can I figure out (without having to test every device out on the market) if the device will play: 640x480 h.264 base profile - if that wont work then play the low resolution video - if that doesn't work, default to Motion JPEG.

Also, any idea why my rtsp transcoded through wowza works on the iPhone but not on any Android device (not even the Motorola Atrix)?

weekens
  • 8,064
  • 6
  • 45
  • 62
spentak
  • 4,627
  • 15
  • 62
  • 90

3 Answers3

3

Streaming on android is an absolute mess. Most devices don't support anything higher than Baseline 3.0. If you encode for iPhone 3, it should generally work via RTSP. Newer versions of android support HLS, but it's hit or miss and largely dependent on specific devices.

Ian Beyer
  • 118
  • 7
1

I resolved this problem. Check RTP-realization in your streaming service and x264 profile. My RTSP-server works fine on 90% devices.

p.s Some video frameworks in different Android versions can implement RTP and RTSP protocols with some differences.

radya
  • 422
  • 1
  • 5
  • 13
  • Could you clarify what you mean by "RTP realization"? I've been working with Wowza Media Server for nearly 5 years ( and was on the support team for a while ), and this term is completely unfamiliar to me. – Ian Beyer Dec 15 '12 at 00:10
  • I am sorry, I did not mean that. I am a beginner in English. I meant the RTP protocol implementation – radya Dec 17 '12 at 12:23
  • Ah, OK, I understand what you mean now - in Wowza, that's in Application.xml under MediaCaster->RTP->RTSP->RTPTransportMode - in V3 and up, it defaults to 'interleave' which is TCP. The other option is 'udp' which should be self-explanatory. – Ian Beyer Jun 17 '13 at 02:33
  • Recent versions of Android will do RTSP quite happily in an HTML5 – Ian Beyer Jun 17 '13 at 02:34
0

These are some of the links/issues which I have come across, while trying to make streaming work in varied devices.

MediaPlayer seekTo doesn't work for streams

MediaPlayer resets position to 0 when started after seek to a different position

MediaPlayer seekTo inconsistently plays songs from beginning

Basic streaming audio works in 2.1 but not in 2.2

MediaPlayer.seekTo() does not work for unbuffered position

Streaming video when seek back buffering start again in videoView/Mediaplayer

Even the big shots in stackoverflow are wondering about this

If you want just streaming without seeking (which is lame), this can be achieved. But then if you receive a call while you are watching, you will end up from the start.

Community
  • 1
  • 1
Samuel
  • 9,883
  • 5
  • 45
  • 57