44
votes

I am developing an Android application in which I want to publish as well as stream a video...

What I want is:

  1. My app records a video and that video is sent to the server

  2. The recorded video will be streamed live to another Android device at the same time..

I have completed the first task using javac and ffmpeg. I am stuck in the second task. I have searched a lot to stream the video from the server, but I didn't succeed. I don't want to use WebView and play the video in it. I want an RTMP player. This task has been completed in iOS... I want the same for Android. What is some link to fulfill my task?

P.S.:

I am using wowza server and RTMP stream. I would like to stream RTMP video (.flv)... If no solution is available, I would like to switch to RTSP and for that also, need a working link to follow..

Now I have switched to RTSP player [with wowza server] as I have not found an RTMP player without webview. How do I fix this issue?

3
I have question about RTSP server. Are you using some free server or do you have your own. In case of our own server give me some info about it. Is it a normal server just like Http and do we need to code service on the server side that listen to stream? Please guide me here - umerk44
We have used wowza server. - SweetWisher ツ
@SweetWisherツThere is a simple question I am trying to use the same which you tried walking-productions.com/notslop/2013/01/16/… sometimes crash...latency is on higher side. How did you manage to resolve the issue? Please reply... - Saty
If you're not set on using Wowza, you could use red5pro.com which provides an SDK for Android and iOS. - Paul Gregoire

3 Answers

22
votes

You can easily do it via Vitamio Lib. Vitamio can play 720p/1080p HD, mp4, mkv, m4v, mov, flv, avi, rmvb, rm, ts, tp and many other video formats in Android and iOS. Almost all popular streaming protocols are supported by Vitamio, including HLS (m3u8), MMS, RTSP, RTMP, and HTTP.

Download Vitamio Bundle from here.

And a demo from here.

A tutorial from here.

3
votes

I am using Adobe AIR to play RTMP and it's awesome. I found the answer here; see the code:

function init_RTMP():void
{
    streamID  = "RT_2";
    videoURL = "rtmp://fms5.visionip.tv/live/RT_2";

    vid = new Video();

    nc = new NetConnection();
    nc.addEventListener(NetStatusEvent.NET_STATUS, onConnectionStatus);
    nc.addEventListener(AsyncErrorEvent.ASYNC_ERROR, asyncErrorHandler);
    nc.connect(videoURL);
}

private function onConnectionStatus(e:NetStatusEvent):void
{
    if (e.info.code == "NetConnection.Connect.Success")
    {
        trace("Creating NetStream");
        netStreamObj = new NetStream(nc);

        metaListener = new Object();
        metaListener.onMetaData = received_Meta;
        netStreamObj.client = metaListener;

        netStreamObj.play(streamID);
        vid.attachNetStream(netStreamObj);
        addChild(vid);
    }
}
1
votes

If you don't have any other options, you can use spydroid-ipcamera, which is an open source project. It's an alternative for your requirements. I have checked it and it provides live video treaming.