在Android设备上实现RTP流媒体播放器

时间:2014-04-11 06:37:46

标签: java android

我必须开发一个应用程序,它将从服务器流式传输 RTP视频流,然后在我的Android设备上播放。我还必须在另一个Android设备上创建一个rtp服务器,此客户端应用程序将从该设备流式传输视频。

但是,我发现Rtp流很难直接播放(没有RTSP)。如何在android / java中实现这样的播放器。

我知道Vitamio,但我怀疑它是否可以发挥rtp。

如果我错了,请纠正我,我真的可以帮忙。

3 个答案:

答案 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的一部分。