java调用jrtplib_GitHub - xhrong/Jrtplib4Android: 基于开源项目jrtplib,自主编译出jni依赖库,在Android平台上实现RTP/RTCP数据接收、发...

Jrtplib4Android项目基于jrtplib,提供了在Android上接收和发送RTP/RTCP数据的示例,包括H264数据分包发送和时间水印功能。注意使用android-ndk-r14b编译,不适用AS自带NDK。示例包括接收端的数据回调、发送端的H264分包发送和RTP数据发送。同时实现了NV21到NV12转换、角度旋转及时间水印添加。项目还包含了Android摄像头数据采集、编码、RTSP对接和RTP数据转发功能。
摘要由CSDN通过智能技术生成

Jrtplib4Android

基于开源项目jrtplib,自主编译出jni依赖库,在Android平台上实现RTP/RTCP数据接收、发送等示例。(包含H264数据分包发送,添加时间水印等)

注意:本人采用的是android-ndk-r14b,并不是as自带的。!!!(自带的会出现各种异常)

app编译项目

接收端实现的功能:

1、接收rtp数据,回调数据至java(目前只有byte[],length,isMarker,可根据需求自行修改);

2、接收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格式数据上,添加时间水印;

test项目是实际应用项目

1、Android实现采集摄像头数据,异步编码为H264数据,通过jni发送至指定接收端;

2、实现网络摄像机RTSP协议对接(单通道视频流);

3、实现接收RTSP服务端的RTP数据,转发至指定接收端。(项目使用是局域网接收摄像机,通过Android手机传递至公网服务器);

使用方法

RtpHandle是RTP相关jni操作对象。

initSendHandle方法适用于只发送数据;

initReceiveHandle方法适用于只接收数据;

initReceiveAndSendHandle方法适用于接收并转发数据;

YuvOsdUtils是时间水印相关jni操作对象。

initOsd方法初始化;

addOsd方法实时添加时间水印;

releaseOsd方法最后销毁时调用;

建议与反馈

项目中关于回调数据,建议不要在回调线程中直接处理。一些性能上的优化,暂时使用java来处理。由于本人项目要求不高,暂时没有在jni中实现缓存队列来处理性能问题(本人也不是做C++,不是很熟悉队列的实现和线程的控制)。欢迎大家提供好的建议和修改意见,有时间会及时完善。联系邮箱:1564063766@qq.com

https://blog.csdn.net/sun8532685/article/details/100703331

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值