我必须开发一个应用程序,它将从服务器流式传输 RTP视频流,然后在我的Android设备上播放。我还必须在另一个Android设备上创建一个rtp服务器,此客户端应用程序将从该设备流式传输视频。
但是,我发现Rtp流很难直接播放(没有RTSP)。如何在android / java中实现这样的播放器。
我知道Vitamio,但我怀疑它是否可以发挥rtp。
如果我错了,请纠正我,我真的可以帮忙。
答案 0 :(得分:1)
您可以使用URI包来读取视频流,请尝试播放RTSP视频流:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
final VideoView vidView = (VideoView)findViewById(R.id.myVideo);
MediaController vidControl = new MediaController(this);
vidControl.setAnchorView(vidView);
vidView.setMediaController(vidControl);
vidView.setVideoPath("rtsp://184.72.239.149/vod/mp4:BigBuckBunny_175k.mov");
vidView.start();
}
答案 1 :(得分:0)
MediaPlayer课程可以直接播放RTSP,因此您不必开发客户端。对于服务器,要么实现RTSP,要么使用某些库。如果您不需要支持许多同时发生的客户,那么相对容易做到。
答案 2 :(得分:0)
另一种选择是使用ExoPlayer。实际上,当前的ExoPlayer官方版本不支持RTSP / RTP。但是,正如问题issue 55所示,存在一个有效的拉取请求#3854,以添加此支持。
同时,您可以克隆不支持RTSP(分支dev-v2-rtsp)的原始作者exoplayer fork:
git clone -b dev-v2-rtsp https://github.com/tresvecesseis/ExoPlayer.git.
我已经对其进行了测试,并且效果很好。作者正在积极努力解决许多用户所报告的问题,我希望RTSP / RTP支持在某个时候成为正式exoplayer的一部分。