我正在开发一个Android应用程序,我想在其中发布以及流式传输视频......
我想要的是:
我的应用会录制视频,并将该视频发送到服务器
录制的视频将同时直播到另一台Android设备..
我已使用javac and ffmpeg完成了第一项任务。我陷入了第二个任务。我已经搜索了很多来从服务器流式传输视频,但我没有成功。我不想使用WebView 并在其中播放视频。我想要一个RTMP播放器。此任务已在iOS中完成...我想要同样适用于Android。什么是完成我的任务的链接?
P.S:
我正在使用 wowza服务器和RTMP流。我想流式传输RTMP视频(.flv)...如果没有可用的解决方案,我想切换到RTSP,为此,需要一个工作链接来跟进..
现在我已经切换到 RTSP播放器[使用wowza服务器] ,因为我还没有找到没有webview的RTMP播放器。我该如何解决这个问题?
答案 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)
使用Vitamio检查此项目
答案 5 :(得分:0)
我在我的一个应用程序中使用了libVLC并且效果很好。 https://github.com/mrmaffen/vlc-android-sdk