基于librtmp搭建的RTMP推流器
先Build/Clean Project
清理下工程编译,然后Rebuild Project
,在app/build/intermediates/cmake
目录下,可以找到编译好的so库。
java层工具类RtmpHelper 存放在将工程app源码中的com.lqr.librtmp
包下。
将com.lqr.librtmp.RtmpHelper
与编译好的so库复制到自己工程对应的lib和src目录下,即可使用。
注意:RtmpHelper的包名必须是com.lqr.librtmp。
mRtmpHelper = new RtmpHelper();
mRtmpHelper.initLivePush(RTMP_URL); // 设置rtmp连接
mRtmpHelper.setOnConnectionListener(new OnConnectionListener() {
@Override
public void onConnecting() {
// 连接中...
}
@Override
public void onConnectSuccess() {
// 连接中成功...
}
@Override
public void onConnectFail(String msg) {
// 连接中失败...
}
});
// 发送关键帧信号(在发送关键帧之前发送)
mRtmpHelper.pushSPSPPS(sps, pps);
// 发送H.264数据(包括:关键帧,普通帧)
mRtmpHelper.pushVideoData(data, keyFrame);
mRtmpHelper.pushAudioData(data);
if (mRtmpHelper != null) {
mRtmpHelper.stop();
mRtmpHelper = null;
}
H.264视频编码与AAC音频编码,需要自己另行处理,与本库无关。