# Jrtplib4Android
**Repository Path**: SmallUniv/Jrtplib4Android
## Basic Information
- **Project Name**: Jrtplib4Android
- **Description**: No description available
- **Primary Language**: Java
- **License**: Not specified
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2025-04-28
- **Last Updated**: 2025-04-28
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# Jrtplib4Android
基于开源项目jrtplib,自主编译出jni依赖库,在Android平台上实现RTP/RTCP数据接收、发送等示例。(包含H264数据分包发送,添加时间水印等)
注意:本人采用的是android-ndk-r14b,并不是as自带的。!!!(自带的会出现各种异常)
## app编译项目
1、Android实现采集摄像头数据,异步编码为H264数据,通过jni发送至指定接收端;
2、实现网络摄像机RTSP协议对接(单通道视频流);
3、实现接收RTSP服务端的RTP数据,转发至指定接收端。(项目使用是局域网接收摄像机,通过Android手机传递至公网服务器);
## jrtp编译项目
### 接收端实现的功能:
1、接收rtp数据,回调数据至java(目前只有byte[],length,isMarker,可根据需求自行修改);
2、接收rtp数据,解析PS流为H264数据;(1和2,具体要实现哪种,可以自己根据需求修改)
3、接收rtcp、bye命令等,回调至java,通过自定义的int值type来区分,同时传递了数据发送端的IP字符串。
### 发送端实现的功能:
1、实现FU-A分包发送H264数据;
2、实现发送RTP数据;
3、实现接收rtcp、bye命令等,回调至java,通过自定义的int值type来区分,同时传递了数据发送端的IP字符串。
## osd编译项目
### 实现的功能:
1、实现将NV21格式数据转换为NV12格式,并旋转角度;
2、实现在NV12格式数据上,添加时间水印;
## librtmp编译项目
### 实现的功能:
1、实现发送H264数据至rtmp服务器;
2、实现发送H264封装flv数据至rtmp服务器;
2、实现发送flv视频文件至rtmp服务器;
## 使用方法
RtpHandle是RTP相关jni操作对象。
initSendHandle方法适用于只发送数据;
initReceiveHandle方法适用于只接收数据;
initReceiveAndSendHandle方法适用于接收并转发数据;
YuvOsdUtils是时间水印相关jni操作对象。
initOsd方法初始化;
addOsd方法实时添加时间水印;
releaseOsd方法最后销毁时调用;
### 建议与反馈
项目中关于回调数据,建议不要在回调线程中直接处理。一些性能上的优化,暂时使用java来处理。
https://blog.csdn.net/sun8532685/article/details/100703331