我必须开发一个应用程序,从服务器流式传输RTP视频流,并在我的android设备上播放。我还必须在另一台安卓设备上创建一个rtp服务器,这个客户端应用程序将从该服务器流式传输视频。
但是,我发现Rtp流很难直接播放(没有RTSP)。我如何在android/java中实现这样一个播放器。
我知道维塔米奥,但我怀疑它是否能打rtp
如果我错了,请纠正我,我真的需要一些帮助。
您可以使用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();
}
MediaPlayer类可以直接播放RTSP,因此不必开发客户端。对于服务器,可以实现RTSP,也可以使用一些实现RTSP的库。如果您不需要同时支持许多客户端,那么这相对容易。
另一个选项是使用ExoPlayer。实际上,ExoPlayer的当前官方版本不支持RTSP/RTP。但正如问题55中所指出的,有一个活动的拉取请求#3854来添加此支持。
同时,您可以克隆支持RTSP(分支dev-v2-RTSP)的原始作者外部层分叉:
git clone -b dev-v2-rtsp https://github.com/tresvecesseis/ExoPlayer.git.
我测试过了,效果很好。作者们正在积极解决许多用户报告的问题,我希望RTSP/RTP支持在某个时候成为官方外部层的一部分。