K230 中间件API参考
1. 概述
1.1 概述
中间件在系统中的位置为k230_sdk/src/common/cdk/user/middleware
本文档描述相关的中间件部分,涉及可视对讲协议、混音、mp4格式封装与解封装、播放器等。
1.2 功能描述
1.2.1 可视对讲rtsp协议
参照ONVIF rtsp扩展,实现单线视频的可视对讲协议;
rtsp-server支持发送audio、video以及接收backchannel audio mediaSubSesisons.
rtsp-client支持接收audio、video以及发送backchannel audio mediaSubSessions.
相关描述见可视对讲协议章节
1.2.2 播放器
实现mp4文件播放。视频支持h264、h265,音频支持g711a/u。
1.2.3 混音
实现两路g711a/u混音。
1.2.4 MP4格式封装解封装
实现音视频与mp4格式间的封装与解封装。
2. API参考
2.1 可视对讲rtsp-server
KdRtspServer提供以下API:
- Init:初始化。
- DeInit:反初始化。
- CreateSession:创建rtsp session。
- DestroySession:销毁rtsp session。
- Start:开启rtsp-server服务。
- Stop:停止rtsp-server服务。
- SendVideoData:写入视频码流数据。
- SendAudioData:写入音频码流数据。
2.1.1 KdRtspServer::Init
【描述】
rtsp-server初始化。
【语法】
int Init(Port port = 8554, IOnBackChannel *back_channel = nullptr);
【参数】
参数名称 | 描述 | 输入/输出 |
---|---|---|
port | rtsp服务端口。 | 输入 |
back_channel | 对端来的音频数据回调指针。 | 输入 |
【返回值】
返回值 | 描述 |
---|---|
0 | 成功。 |
非0 | 失败。 |
【需求】
- 头文件:rtsp_server.h
- 库文件:
【注意】
无。
【举例】
无。
【相关主题】
无。
2.1.2 KdRtspServer::DeInit
【描述】
反初始化。
【语法】
void DeInit();
【参数】
无。
【返回值】
无。
【需求】
- 头文件:rtsp_server.h
- 库文件:
【举例】
无。
2.1.3 KdRtspServer::CreateSession
【描述】
创建RtspSession。
【语法】
int CreateSession(const std::string &session_name, const SessionAttr &session_attr);
【参数】
参数名称 | 描述 | 输入/输出 |
---|---|---|
session_name | stream url。 | 输入 |
session_attr | session 配置参数。 | 输入 |
【返回值】
返回值 | 描述 |
---|---|
0 | 成功。 |
非0 | 失败。 |
【需求】
- 头文件:rtsp_server.h
- 库文件:
【注意】
【举例】
无。
2.1.4 KdRtspServer::DestroySession
【描述】
销毁rtsp session。
【语法】
int DestroySession(const std::string &session_name);
【参数】
参数名称 | 描述 | 输入/输出 |
---|---|---|
session_name | stream url。 | 输入 |
【返回值】
返回值 | 描述 |
---|---|
0 | 成功。 |
非0 | 失败。 |
【需求】
- 头文件:rtsp_server.h
- 库文件:
【注意】
【举例】
无。
【相关主题】
2.1.5 KdRtspServer::Start
【描述】
开启rtsp server服务。
【语法】
void Start();
【参数】
无。
【返回值】
无。
【需求】
- 头文件:rtsp-server.h
- 库文件:
【注意】 无
【举例】
无。
【相关主题】
2.1.6 KdRtspServer::Stop
【描述】
停止rtsp-server服务。
【语法】
void Stop();
【参数】
无
【返回值】
无
【需求 】
- 头文件:rtsp_server.h
- 库文件:
【注意】
【举例】
无。
2.1.7 KdRtspServer::SendVideoData
【描述】
写入视频码流数据。
【语法】
int SendVideoData(const std::string &session_name, const uint8_t *data, size_t size, uint64_t timestamp);
【参数】
参数名称 | 描述 | 输入/输出 |
---|---|---|
session_name | stream url | 输入 |
data | 视频码流地址。 | 输入 |
size | 视频码流大小。 | 输入 |
timestamp | 码流时间戳(毫秒) | 输入 |
【返回值】
返回值 | 描述 |
---|---|
0 | 成功。 |
非0 | 失败。 |
【需求】
- 头文件:rtsp_server.h
- 库文件:
【举例】
无。
2.1.8 KdRtspServer::SendAudioData
【描述】
写入音频码流数据。
【语法】
int SendAudioData(const std::string &session_name, const uint8_t *data, size_t size, uint64_t timestamp);
【参数】
参数名称 | 描述 | 输入/输出 |
---|---|---|
session_name | stream url | 输入 |
data |