/Rtsp-Android-Client

Andoird rtsp client module, can use surfaceview to display

Primary LanguageJava

RtspClient

  • 实现基本框架
  • 支持以UDP方式接收RTP报文 - [ ] 优化UDP报文解码
  • 支持以TCP方式接收RTP报文 - [ ] 优化TCP报文重组
  • 实现RTP报文重组 - [x] 支持FU-A报文重组 - [x] 支持单包NAL报文 - [ ] 增加常用NAL报文重组
  • 支持H264解码显示 - [x] 支持H264硬解码显示(Android 4.1以上版本支持) - [ ] 支持H264软解码显示
  • 支持ACC音频

使用方法

  1. 使用Jcenter仓库

compile "com.aaronhan:rtspclient:0.7"

  1. 调用RtspClient方法
private SurfaceView mSurfaceView;

//创建client,需要传入一个SurfaceView作为显示
String host = "rtsp://192.168.0.217/test.264"
RtspClient mRtspClient = new RtspClient(host);
mRtspClient.setSurfaceView(mSurfaceView);

//开始显示
mRtspClient.start();

//关闭,请在Activity销毁时调用此方法
//在UDP模式下即使销毁Activity某些RTSP服务器也会继续发送报文
mRtspClient.shutdown();

3.RtspClient调用详解

//使用RTP传输协议选择,支持"tcp"和"udp"传入值
String method = "udp";

//传入地址,需以rtsp://开头,如果只有IP,需以/结尾,如rtsp://xxx.xxx.xxx.xxx/
//支持地址后加入端口地址,"rtsp://ip:port/xxx"
//如未加入端口地址,则使用默认地址554
String host = "rtsp://192.168.0.217/test.264"

//可以单独传入port值,不在地址中增加
//如未传入port只,且地址中没有port,默认使用554
int port = 8554;

//支持传入用户名密码,某些RTSP服务器需要认证使用
String username = "admin";
String password = "admin";

//只传入地址或地址加端口
//默认无用户名密码认证,默认使用udp协议
RtspClient(host);
RtspClient(host,port);

//传入使用协议
RtspClient(method,host);
RtspClient(method,host,port);

//默认是udp协议,传入认证用户名和密码
RtspClient(host,username,password);
RtspClient(host,username,password,port);

//传入使用协议和认证信息
RtspClient(method,host,username,password);
RtspClient(method,host,username,password,port);