Server to stream RTSP to android - android

Can Flash Media Server 3.5 serve a video rtsp stream to the Android media player?
Or do we need to use Wowza or red5 to serve an rtsp stream to the Android media player rtsp client?
Are there any other rtsp servers to consider when the video needs to be viewed on Android (without the Adobe Flash app)?

Try darwin streaming server. This can stream MPEG-4 and 3GPP.
Note that Videoplayer in Android supports RTSP streaming as per 3GPP PSS Streaming specifications. i.e fileformat is 3GP/MP4 and the supported codecs are MPEG-4 Video, AVC, MPEG4 Audio, AMR, and H263.
One potential drawback with darwin is you need 3rd party tools to do hinting first.There are several free hinting tools. Definitely worth a try.
DarwinStreaming Server Link

FMS 3.5 does not support rtsp streaming.

I could manage to play a RTSP stream in Android 2.3 with HTML5 on default browser, no external app, no flash plugin.
<audio autoplay="autoplay" controls="controls" autobuffer="autobuffer" loop="loop">
<source src="rtsp://74.115.208.37:1935/live/luxweradio2_8403.stream" type="audio/mpeg" />
</audio>
I explain each part:
-I'm using the default Android browser (also worked in Dolphin)
-The loop="loop" part made the stream actually play continuously, without that I heard like 0.1 seconds of audio each time I clicked play. Is this a hack or what?
-The autoplay="autoplay" part works, it actually auto-plays after some seconds (no feedback like "loading..." though)
-The type="audio/mpeg" for me it seems like Android browser ignores that, I've tried others like video/3GPP (yes, video) and still worked!
-I'm not sure if autobuffer="autobuffer" actually does anythinhg 'cause it isn't part of the HTML5 audio tag definition, but I've seen so many "bad" things that work... I should test some cases with and without, but it's pretty late now here in Argentina :P

WOWZA 3 is able to serve the same stream in RTMP, HTTP and RTSP. I have it running it. It is publish as RTMP and delivered as RTMP, HTTP and RTSP at the same time.
See this:
http://www.wowza.com/forums/content.php?36#publish
Hope it helps.

My Media Server / library supports streaming to Android or any other compatible RtspClient.
http://net7mma.codeplex.com/
Check out the article on CodeProject # http://www.codeproject.com/Articles/507218/Managed-Media-Aggregation-using-Rtsp-and-Rtp
If you need anything else let me know!

Related

How to play live AAC stream on Android with html5 audio element

I am trying to embed an html5 audio tag in a page to allow playing a live AAC+ stream coming from an Icecast server.
According to the media formats developer's guide, Android supports playback for several AAC flavors, either inside an MPEG-4 container or in ADTS.
I have successfully played AAC-encoded audio files in an MPEG-4 container, thus:
<audio controls="controls">
<source src="http://www.example.com/audio/program1.mp4" type="audio/mp4"/>
</audio>
However, I have not been able to play any AAC live stream (which, as far as I understand, is output by Icecast using ADTS) with the audio tag. I have tried setting different types (e.g., "audio/aac", which the player says it can "probably" play) as well as different file extensions for the stream URL. Nothing works. The player, by the way, initializes as if everything is OK, then when you press the play button nothing happens (other than the play button changing to a pause icon).
The only way I have been able to play a live AAC stream is by using a URL pointing to a .sdp manifest containing a link to an RTSP version of the stream. The browser then hands off the stream to the native audio player or another audio app, which plays it after a brief buffering period. This is not an option for us, as we would like to use a simple Icecast server for our stream.
Is there just no way to play a live AAC stream on Android via HTTP? It seems iOS supports it, but not Android.
From the lack of responses to the contrary, I have to conclude that the answer to the original question is, "No, it is not possible to use the HTML5 audio tag to play a live AAC+ stream from an Icecast server".
I am posting an answer to share what I ended up doing.
My first inclination was simply to set up a second Icecast stream using MP3 instead of AAC. This will work, but you must be willing to accept the buffering delay that Android's audio player introduces with MP3 streams. Unfortunately, at 64 kpbs Android makes you wait for over 40 seconds before it will start playing the MP3 stream. Admittedly, 64 kpbs is not very good quality for MP3, but even at 128 kbps the buffering takes over 20 seconds, enough for listeners to conclude that the stream is down. So MP3 is not an option for us.
My eventual solution was to ask our CDN to add a Wowza application that pulls from the AAC+ Icecast stream and transmuxes it using HLS.
Now my audio tag looks like this:
<audio controls="controls">
<source src="http://www.example.com/wowza/stream.m3u8"/>
<source src="http://www.example.com/audio/aac"/>
</audio>
Note that I had to list the HLS source first, because otherwise the Android device will actually pick the Icecast stream and try to play it, which it can't (you'd think it would know enough not to do that).
So in the end Android does play a live AAC+ stream with no delay, as long as it is delivered via HLS, and not directly from Icecast. I must say I was very disappointed with Android, both its lack of support for direct Icecast AAC+ and for its poor handling of live MP3 streams, especially since the competition (iOS) handles everything you throw at it without blinking.

RTMP vs HLS vs HDS

I would like to stream a VOD/Live on following platforms using JW player but not sure which streaming is best suited for each platform
Desktop
iOS
Android
I understand RTMP will not play on mobile devices.
So do I need to go for RTMP for desktop and HLS for mobile or can I use only the HLS streaming for all the 3 platforms?
Or is there any other way to efficiently stream VODs/Live?
You could simply fall back to a vod MP4 file for Android. Here is a set up - http://www.longtailvideo.com/support/jw-player/29394/hls-with-mp4-fallback
For live on iOS. HLS is your only option. Because of this I usually like to use HLS everywhere. For Desktop something like JWPlayer premium can play HLS in flash.

Can flowplayer handle rtsp stream?

Flowplayer can play rtmp and http live stream but can i use the same player to play rtsp stream. I have rtsp stream for android which can be played using external player but it opens in fullscreen mode. I thought of putting it inside a frame but the external player opens outside of the frame in android device. So i want to use flowplayer to play rtsp stream in android. Is it possible and if not what to use.
I am fairly certain that Flowplayer, while a great solution for many things, cannot be extended to accept a straight RTSP stream. In any case, I don't believe there is a supported mobile version or plugin of Flowplayer for Android at this point. I have even seen reports that embedded flowplayers being viewed on Android have been sketchy at best.
I have, however, used ffserver and ffmpeg (http://ffmpeg.org/) to transcode the RTSP stream into .flv to be played with Flowplayer, but if a transcoded stream could be broadcast on your system, you'd be well on your way!
Mason

Mandatory to use Darwin or wowza or VLC to stream live video in android?

I want to know is it mandatory to use any of the streaming servers like Darwin,Wowza or VLC to stream an RTSP live stream video? I am receiving an RTSP link from my client and it tends to change everytime. I can successfully play it in the VLC player but on phone I cant see anything. I tried playing a sample link having .3gp extension and it worked fine. But my links dont have an extension. They look like this rtsp://122.166.229.151:1950/1346a0cf0ef7c2. Please help me.If its compulsory to use an extension or a server, I will continue working in that direction.
A streaming server (as you describe) isn't strictly necessary - as long as you can pull RTSP from whatever your source is, you should be able to see it. Most IP cameras have onboard RTSP servers (although I wouldn't put too many connections on it). If you can see it in VLC, the phone should be able to consume it as well, given that the codec used to encode is one supported by the android device (in most cases, if you're doing H.264 Baseline 3.0 with AAC, you should be good to go).
A streaming server like Wowza can make that stream available to a wider audience than pulling directly from the source device, but if you're not intending to broadcast to a wide audience, it's not required for streaming to Android devices.
Newer versions of Android (Gingerbread and later) are also able to consume Apple HTTP Live Streaming.

Windows Media Services streaming (using RSTP or HTTP) to Android

Is it possible to stream video to an Android device by using Windows Media Services? Which protocol should I use between RTSP and HTTP? Actually, I have a video file (MP4 format) at a server and I want to stream video files to an Andriod device.
Currently Android does not support adaptive streaming. I searched for some methods a while ago, but Android does not support any of them. No streaming via Windows Media Server, no support for Flash Media Server and HTTP Live Streaming also does not work. The last one would be the best solution since it does not depend on proprietary protocols - but unfortunately it uses a different container format MPEG-TS and a playlist file M3U8 which Android does not understand at the moment. There is an issue for this - you might want to stare it. ;-)
That said, I would recommend you to just upload the MP4 file to an HTTP server and play it via the HTTP url. If it doesn't play, you have to add some extra streaming information by hinting it - e.g. with MP4Box:
mp4box -hint <filename>
Have fun. :-)

Categories

Resources