Rtsp-Android-Client

Introduction: 一个 android rtsp 传输客户端,传入 surfaceView 可直接显示,支持 TCP/UDP 传输 RTP 报文
More: Author   ReportBugs   
Tags:
RTP-
  • [x] 实现基本框架
  • [x] 支持以 UDP 方式接收 RTP 报文
    • [ ] 优化 UDP 报文解码
  • [x] 支持以 TCP 方式接收 RTP 报文
    • [ ] 优化 TCP 报文重组
  • [x] 实现 RTP 报文重组
    • [x] 支持 FU-A 报文重组
    • [x] 支持单包 NAL 报文
    • [ ] 增加常用 NAL 报文重组
  • [x] 支持 H264 解码显示
    • [x] 支持 H264 硬解码显示(Android 4.1 以上版本支持)
    • [ ] 支持 H264 软解码显示
  • [ ] 支持 ACC 音频

使用方法

  1. 使用 Jcenter 仓库

    compile "com.aaronhan:rtspclient:0.7"

  2. 调用 RtspClient 方法 ```java 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 调用详解
```java
//使用 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);
Apps
About Me
GitHub: Trinea
Facebook: Dev Tools