经过这么多年的视频技术开发,TSINGSEE青犀视频团队已经有了一套自己的研发体系,除了大家比较熟知的视频智能分析平台外,其实TSINGSEE青犀视频还有很多好用的SDK及工具。其中EasyScreenLive就是我们研发的一款简单、高效、稳定的同屏功能组件。
EasyScreenLive同屏组件支持自定义OSD添加,本实例只针对拉RTSP和RTMP流设置OSD,采集屏幕和本机摄像头目前不支持。
EasyScreenLive增加如下接口函数用于OSD的设置:
LIB_EASYSLIVE_API int EasyScreenLive_SetOSD(EASYSLIVE_HANDLE handler, bool bShow, EASY_OSD osd);
各参数解释:
handler: EasyScreenLive_Create()函数返回的句柄
bShow:控制是否进行显示,允许值:true或者false
osd:OSD显示的具体位置、内容等,定义的标准结构体如下
typedef struct tagEASY_OSD
{
char stOSD[1024];
DWORD alpha; //0-255
DWORD color; //RGB(0xf9,0xf9,0xf9)
DWORD shadowcolor; //RGB(0x4d,0x4d,0x4d) 全为0背景透明
RECT rect; //OSD基于图像右上角显示区域
int size; //just D3D Support
}EASY_OSD;
下面为具体调用方法:
//OSD Example
EASY_OSD osd;
osd.alpha = 255;
osd.size = 35;
osd.color = RGB(255,0,255);
osd.rect.left = 10;
osd.rect.right = 5000;
osd.rect.top = 100;
osd.rect.bottom = 800;
osd.shadowcolor = RGB(0,0,0);
char* ss = "这是EasyScreenLive
的视频字幕叠加接口的效果!!
以"\r\n"为换行结束符号
注意:每行的长度不能超过128个字节
总的OSD长度不能超过1024个字节";
strcpy(osd.stOSD ,ss);
EasyScreenLive_SetOSD(m_pusher, true, osd);
步骤:
1、定义一个EASY_OSD类型的osd,然后对各个参数进行赋值;
2、调用EasyScreenLive_SetOSD函数进行显示。