SkeyePlayer RTSP播放器库API接口说明

代码逐梦号说
• 阅读 224

概述
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
{

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

}EASY_PALYER_OSD;
注意:osd字幕叠加通过”\r\n“结束符进行换行,一行的长度不能超过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()函数打开 流的返回值;
mediaInfo[OUT] 获取的媒体信息结构,参考MEDIA_INFO的声明如下:

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;
点赞
收藏
评论区
推荐文章
Wesley13 Wesley13
4年前
SDL音频播放编程
       在使用SDL进行音频解码的时候涉及到一个回调函数,这里有点复杂,初学不容易搞明白,做点记录。1SDL\_AudioSpec结构体与SDL\_OpenAudio()函数简单地说,SDL\_AudioSpec结构体中是与SDL进行音频解码相关的参数的一个结构体。文档中内容如下;SDL_AudioSpecNa
小尉迟 小尉迟
2年前
mkv格式怎么在mac电脑播放,mac上5款必备的视频播放器
不同于其他视频格式,MKV更类似于一种封装的格式,这就造成了在使用播放器进行播放时容易出现解码问题,这在Mac内置的操作系统QuickTime更为常见。因此人们会需要寻找可以替代的播放器来帮助我们在Mac上播放MKV文件。我们在本文中罗列出了Mac上面优质
Wesley13 Wesley13
4年前
HTML5播放RTSP,H5播放RTSP,解决方案源码,基于海康网络摄像头
视频是用的海康网络摄像头(支持RTSP,标准H.264RTP封装的设备),可以通过 rtsp://admin:1008@192.0.0.64:81/h264/ch1/main/av\_stream 对摄像头进行读取RSTP流。在谷歌浏览器下实现web显示实时监控画面步骤:!复制代码(https://oscimg.oschina.net/oscne
Stella981 Stella981
4年前
AV_SAMPLE_FMT_FLTP转为AV_SAMPLE_FMT_S16P(ffmpeg)
在使用ffmpeg解码aac的时候,如果使用avcodec\_decode\_audio4函数解码,那么解码出来的会是AV\_SAMPLE\_FMT\_FLTP格式的数据( float,4bit,planar),如果我们希望得到16bit的数据(如AV\_SAMPLE\_FMT\_S16P数据),那么我们需要转换一下:解決方式
Stella981 Stella981
4年前
Android MediaCodec 硬编码 H264 文件
!(https://oscimg.oschina.net/oscnet/b4f690dee1b9fb45600265b73d94ab93051.jpg)在Android4.1版本提供了MediaCodec接口来访问设备的编解码器,不同于FFmpeg的软件编解码,它采用的是硬件编解码能力,因此在速度上会比软解更具有优势,但是由于An
Stella981 Stella981
4年前
Android使用得图SDK开发VR播放器
产品概述AndroidSDK包含全景图片、VR视频、漫游主题等多种展示方式,支持小行星模式、陀螺仪、VR双屏沉浸式观看。文件下载、解码都在播放器中完成,您只需一个链接地址或是一条配置即可展现炫酷的全景效果。注:该SDK支持不低于4.0.0的Android版本(api14)。下载并集成SDK下载SDK最新版下载最新版panoplay\_
Wesley13 Wesley13
4年前
VS2019编译 当前最新版chromium
之前编译过webrtc和chromium,由于长时间没用,被我删除了,最近在最新版本的google浏览器上遇到了播放器兼容性问题,老版本的google浏览器是没问题,IE,火狐浏览器也没问题,通过看google浏览器的打印日志和chromium媒体层的代码,排查下来,是ffmpeg调用解码器解码AAC失败了,有个别数据解码失败,我们是使用的lib
Stella981 Stella981
4年前
AV1:为互联网提供开放、免费的视频编解码工具
!(https://oscimg.oschina.net/oscnet/ea2afc18e53a4b838f29d25b713ff5a3.jpg)从学术研究到进入工业界,ZoeLiu一直在算法和音视频领域,目前在谷歌编解码团队为编解码器AV1做开发支持。Zoe畅谈了评定编解码器的标准,以及AV1的最新进度。本文是『下一代编码器』
Stella981 Stella981
4年前
NVR硬件录像机web无插件播放方案功能实现之相关接口注意事项说明
该篇博文主要用来说明EasyNVR硬件录像回放版本的相关接口说明和调用的demo;方便用户的二次开发和集成。软件根目录会包含接口文档的,因此,本文主要是对一些特定接口的说明和接口实现功能的讲解以及部分demo的展示说明;对应接口说明;支持设备类型由于获取NVR录像机的相关功能是通过SDK来实现功能的,因此,
代码逐梦号说
代码逐梦号说
Lv1
人归落雁后,思发在花前。
文章
5
粉丝
0
获赞
0