SkeyePlayer RTSP播放器库API接口说明

2023-04-19 15:36:04 浏览数 (2)

概述

libSkeyePlayer实现对RTSP直播流进行实时采集和解码显示,稳定,高效,低延时;解码可采用intel硬件解码和软件解码两种方式,能实时进行录像和快照抓图,OSD叠加等功能。

API接口函数定义

 int SkeyePlayer_Init();

函数说明:

播放器初始化,播放器使用之前调用;

参数说明:

 void SkeyePlayer_Release();

函数说明:

播放器资源释放,播放器不再使用以后调用;

参数说明:

int SkeyePlayer_OpenStream(const char url, HWND hWnd, RENDER_FORMAT renderFormat, int rtpovertcp, const char username, const char password, MediaSourceCallBack callback, void userPtr, bool bHardDecode);

函数说明:

播放器开始进行流播放;返回值为当前播放的通道ID,该ID在停止推流时需要用到;

参数说明:

Url:IN 字符串类型,表示当前要播放的流地址,Eg: rtsp://127.0.0.1:554/stream.sdp

HWnd: IN 窗口句柄类型,表示为当前播放器将显示的窗口的句柄;

renderFormat:IN 播放渲染类型,详见RENDER_FORMAT结构;

Rtpovertcp:IN 整数型,拉取流的传输模式,0=udp, 1=tcp

Username:IN 字符串,访问流的用户名(如果存在)

Password:IN 字符串,访问流的用户名(如果存在)

Callback:IN 播放器回调音视频数据回调函数

userPtr:IN 用户自定义传入数据

bHardDecode:IN 是否采用硬件解码 1=是,0=否

void SkeyePlayer_CloseStream(int channelId);

函数说明:

播放器停止流播放;

参数说明:

channelId IN 当前播放的流通道ID,该ID是SkeyePlayer_OpenStream函数打开流的返回值;

int SkeyePlayer_SetFrameCache(int channelId, int cache);

函数说明:

播放器设置当前流播放缓存帧数;

参数说明:

channelId IN 当前播放的流通道ID,该ID是SkeyePlayer_OpenStream()函数打开 流的返回值;

cache IN 当前通道的流播放设置的缓存的视频帧数,Eg: 缓存10帧,则cache = 10;

int SkeyePlayer_SetShownToScale(int channelId, int shownToScale);

函数说明:

播放器按比例进行显示;

参数说明:

channelId IN 当前播放的流通道ID,该ID是SkeyePlayer_OpenStream()函数打开 流的返回值;

shownToScale IN 0=整个窗口区域显示,1=按比例显示;

int SkeyePlayer_SetDecodeType(int channelId, int decodeKeyframeOnly);<不常用>

函数说明:

播放器设置解码类型;分为所有帧解码和只解码关键帧;

参数说明:

channelId IN 当前播放的流通道ID,该ID是SkeyePlayer_OpenStream()函数打开 流的返回值;

decodeKeyframeOnly IN 0=所有帧解码,1=只解码关键帧;

int SkeyePlayer_SetRenderRect(int channelId, LPRECT lpSrcRect);<不常用>

函数说明:设置视频显示时渲染区域

参数说明:

channelId IN 当前播放的流通道ID,该ID是SkeyePlayer_OpenStream函数打开 流的返回值;

lpSrcRect IN 矩形框结构体指针,指向设置渲染区域的矩形结构体;

int SkeyePlayer_ShowStatisticalInfo(int channelId, int show);

函数说明:

播放器设置是否显示码流信息;

参数说明:

channelId IN 当前播放的流通道ID,该ID是SkeyePlayer_OpenStream()函数打开 流的返回值;

Show IN 0=不显示,1=显示;

int SkeyePlayer_ShowOSD(int channelId, int show, EASY_PALYER_OSD osd);

函数说明:

播放器设置自定义显示OSD信息;

参数说明:

channelId IN 当前播放的流通道ID,该ID是SkeyePlayer_OpenStream()函数打开 流的返回值;

Show IN 0=不显示,1=显示;

Osd IN osd显示信息填充结构,定义如下:

typedef struct tagEASY_PALYER_OSD

{

代码语言:txt复制
char	stOSD[1024];	//OSD字幕信息
代码语言:txt复制
DWORD	alpha;		//透明通到0-255 
代码语言:txt复制
DWORD	color;		//RGB(0xf9,0xf9,0xf9)
代码语言:txt复制
DWORD	shadowcolor;	//OSD背景颜色RGB(0x4d,0x4d,0x4d) 全为0背景透明
代码语言:txt复制
RECT	rect;		//OSD基于图像右上角显示区域
代码语言:txt复制
	int        size; //OSD字体的大小

}EASY_PALYER_OSD;

注意:osd字幕叠加通过”rn“结束符进行换行,一行的长度不能超过128个字节,总的OSD叠加不能超过1024个字节。其中OSD大小设置只有D3D渲染模式才能生效;

int SkeyePlayer_SetDragStartPoint(int channelId, POINT pt);<不可用>

函数说明:

参数说明:

int SkeyePlayer_SetDragEndPoint(int channelId, POINT pt);<不可用>

函数说明:

参数说明:

int SkeyePlayer_ResetDragPoint(int channelId);<不可用>

函数说明:

参数说明:

int SkeyePlayer_StartManuRecording(int channelId);

函数说明:

播放器开始将流音视频数据进行录制,录制格式为MP4;

参数说明:

channelId IN 当前播放的流通道ID,该ID是SkeyePlayer_OpenStream函数打开 流的返回值;

int SkeyePlayer_StopManuRecording(int channelId);

函数说明:

播放器停止录制MP4;

参数说明:

channelId IN 当前播放的流通道ID,该ID是SkeyePlayer_OpenStream函数打开 流的返回值;

int SkeyePlayer_PlaySound(int channelId);

函数说明:

播放器开始播放音频;

参数说明:

channelId IN 当前播放的流通道ID,该ID是SkeyePlayer_OpenStream函数打开 流的返回值;

int SkeyePlayer_StopSound();

函数说明:

播放器停止播放音频;

int SkeyePlayer_GetMediaInfo(int channelId, MEDIA_INFO& mediaInfo);

函数说明:

播放器获取流媒体信息;

注意:该函数需要在拉到流信息以后才能准确的返回流媒体信息,否则返回数据均为空值。

参数说明:

channelId IN 当前播放的流通道ID,该ID是SkeyePlayer_OpenStream()函数打开 流的返回值;

mediaInfoOUT 获取的媒体信息结构,参考MEDIA_INFO的声明如下:

代码语言:txt复制
typedef struct tagMEDIA_INFO
{
	unsigned int	video_codec;		/* 视频编码格式 */
	unsigned char	fps;				/* 视频帧率 */
	unsigned short	width;				/* 视频宽 */
	unsigned short  height;				/* 视频高 */
	unsigned int	audio_codec;		/* 音频编码格式 */
	unsigned int	sample_rate;		/* 音频采样率 */
	unsigned int	channels;			/* 音频声道数 */
	unsigned int	bits_per_sample;	/* 音频采样精度 */
	unsigned int	reserved1;			/* 保留参数1 */
	unsigned int	reserved2;			/* 保留参数2 */
}MEDIA_INFO;

0 人点赞