在Android上不使用webview(WOWZA服务器)直播RTMP / RTSP播放器

时间:2013-12-04 04:27:14

标签: android video ffmpeg rtsp wowza

我正在开发一个Android应用程序,我想在其中发布以及流式传输视频......

我想要的是:

  1. 我的应用会录制视频,并将该视频发送到服务器

  2. 录制的视频将同时直播到另一台Android设备..

  3. 我已使用javac and ffmpeg完成了第一项任务。我陷入了第二个任务。我已经搜索了很多来从服务器流式传输视频,但我没有成功。我不想使用WebView 并在其中播放视频。我想要一个RTMP播放器。此任务已在iOS中完成...我想要同样适用于Android。什么是完成我的任务的链接?

    P.S:

    我正在使用 wowza服务器和RTMP流。我想流式传输RTMP视频(.flv)...如果没有可用的解决方案,我想切换到RTSP,为此,需要一个工作链接来跟进..

    现在我已经切换到 RTSP播放器[使用wowza服务器] ,因为我还没有找到没有webview的RTMP播放器。我该如何解决这个问题?

6 个答案:

答案 0 :(得分:22)

您可以通过Vitamio Lib轻松完成。 Vitamio可以在Android和iOS中播放720p / 1080p HD,mp4,mkv,m4v,mov,flv,avi,rmvb,rm,ts,tp以及许多其他视频格式。 Vitamio几乎支持所有流行的流媒体协议,包括HLS(m3u8),MMS,RTSP,RTMP和HTTP。

here下载Vitamio Bundle。

来自here的演示。

来自here的教程。

答案 1 :(得分:3)

我正在使用Adobe AIR来播放RTMP,这真棒。我找到了答案here;看到代码:

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);
    }
}

答案 2 :(得分:1)

如果您没有任何其他选项,可以使用spydroid-ipcamera,这是一个开源项目。它可以满足您的要求。我已经检查了它,它提供了实时视频处理。

答案 3 :(得分:0)

您可能想尝试使用可以轻松播放rtmp的Adobe AIR,并将AIR应用程序展示给Android。

将AIR应用程序部署到Android: http://help.adobe.com/en_US/air/build/WSfffb011ac560372f-5d0f4f25128cc9cd0cb-8000.html

答案 4 :(得分:0)

答案 5 :(得分:0)

我在我的一个应用程序中使用了libVLC并且效果很好。 https://github.com/mrmaffen/vlc-android-sdk