关于字幕叠加(远程控制),如何实现?[c#][海康]
[StructLayout(LayoutKind.Sequential, Pack = 1, CharSet = CharSet.Ansi)]
public struct NET_DVR_SHOWSTRINGINFO
{
//编码端字符叠加配置结构
public ushort dwShowString;
public int wStringSize;
public ushort wShowStringTopLeftX;
public ushort wShowStringTopLeftY;
//[MarshalAs(UnmanagedType.LPArray, SizeConst = 44)]
//public char[] sString;
[MarshalAs(UnmanagedType.ByValTStr, SizeConst = 44)]
public string sString;
}
[StructLayout(LayoutKind.Sequential)]
public struct NET_DVR_SHOWSTRING
{
//叠加字符结构
public int dwSize;
public NET_DVR_SHOWSTRINGINFO struStringInfo;
}
//编码端叠加字符
[DllImport("HCNetSDK.dll")]
public static extern bool NET_DVR_SetDVRConfig(int lUserID, int dwCommand, int lChannel, NET_DVR_SHOWSTRING lpInBuffer, int dwInBufferSize);
private void button5_Click(object sender, EventArgs e)
{
NET_DVR_SHOWSTRINGINFO _showstringinfo = new NET_DVR_SHOWSTRINGINFO();
NET_DVR_SHOWSTRING _showstring = new NET_DVR_SHOWSTRING();
string strTT = "我是来测试的!";
_showstring.dwSize = 1;
_showstring.struStringInfo = _showstringinfo;
_showstring.struStringInfo.dwShowString = 1;
_showstring.struStringInfo.sString = strTT;
_showstring.struStringInfo.wStringSize = strTT.Length;
_showstring.struStringInfo.wShowStringTopLeftX = 100;
_showstring.struStringInfo.wShowStringTopLeftY = 100;
int iSize= Marshal.SizeOf(_showstring);
bool bac = NET_DVR_SetDVRConfig(iLoginRef, 131, 0, _showstring, iSize);
if (bac == false)
{
MessageBox.Show("失败");
}
}
不知道为什么,一直失败,做过的帮个忙看看!!
/*****************************DS-6001D/F(end)***************************/
//单字符参数(子结构)
typedef struct
{
WORD wShowString; // 预览的图象上是否显示字符,0-不显示,1-显示 区域大小704*576,单个字符的大小为32*32
WORD wStringSize; /* 该行字符的长度,不能大于44个字符 */
WORD wShowStringTopLeftX; /* 字符显示位置的x坐标 */
WORD wShowStringTopLeftY; /* 字符名称显示位置的y坐标 */
char sString[44]; /* 要显示的字符内容 */
}NET_DVR_SHOWSTRINGINFO, *LPNET_DVR_SHOWSTRINGINFO;
//叠加字符(9000扩展)
typedef struct
{
DWORD dwSize;
NET_DVR_SHOWSTRINGINFO struStringInfo[MAX_STRINGNUM_V30]; /* 要显示的字符内容 */
}NET_DVR_SHOWSTRING_V30, *LPNET_DVR_SHOWSTRING_V30;
//叠加字符扩展(8条字符)
typedef struct
{
DWORD dwSize;
NET_DVR_SHOWSTRINGINFO struStringInfo[MAX_STRINGNUM_EX]; /* 要显示的字符内容 */
}NET_DVR_SHOWSTRING_EX, *LPNET_DVR_SHOWSTRING_EX;
//叠加字符
typedef struct
{
DWORD dwSize;
NET_DVR_SHOWSTRINGINFO struStringInfo[MAX_STRINGNUM]; /* 要显示的字符内容 */
}NET_DVR_SHOWSTRING, *LPNET_DVR_SHOWSTRING;
/*********************************************************
Function: OnBnClickedBtnStringOk
Desc: finish text overlay settings
Input:
Output:
Return:
**********************************************************/
void CDlgRemoteShowString::OnBnClickedBtnStringOk()
{
UpdateData(TRUE);
char szLan[128] = {0};
int i = m_comboShowArea.GetCurSel();
m_struShowString.struStringInfo[i].wShowString = (WORD)m_bChkShow;
memcpy(m_struShowString.struStringInfo[i].sString, m_csString, 44);
m_struShowString.struStringInfo[i].wStringSize = (WORD)strlen(m_csString);
m_struShowString.struStringInfo[i].wShowStringTopLeftX = (WORD)m_iStringX;
m_struShowString.struStringInfo[i].wShowStringTopLeftY = (WORD)m_iStringY;
if (!NET_DVR_SetDVRConfig(m_lLoginID, NET_DVR_SET_SHOWSTRING_V30, m_iChanShowNum, &m_struShowString, sizeof(NET_DVR_SHOWSTRING_V30)))
{
g_pMainDlg->AddLog(g_pMainDlg->m_iCurDeviceIndex, OPERATION_FAIL_T, "NET_DVR_SET_SHOWSTRING_V30");
g_StringLanType(szLan, "设置字符参数失败", "Failure to set character parameters");
AfxMessageBox(szLan);
return ;
}
g_pMainDlg->AddLog(g_pMainDlg->m_iCurDeviceIndex, OPERATION_SUCC_T, "NET_DVR_SET_SHOWSTRING_V30");
}
相关推荐
4- 远程配置_hlog.dll_海康威视相机参数远程配置_远程配置海康
海康威视摄像机参数远程配置程序,可以实现更改ip和叠加字幕等
海康网络摄像机OSD叠加文字水印的SDK开发实战
视频监控项目中,OSD叠加是一种将文字信息直接渲染到视频画面的技术,常用于显示时间、地点或业务标识。其原理是在编码前由设备芯片完成字符叠加,使水印随视频流固化存储,不依赖后期处理。对于需要批量管理摄像机的场景,调用官方SDK实现OSD配置比手动登录后台更高效。本文以海康网络摄像机为例,介绍基于SDK的OSD文字水印叠加实现方法,涵盖环境准备、登录流程、配置结构体、中文编码及常见报错排查,并给出工程化落地的建议,帮助开发者快速完成从demo到生产项目的转换。
HCAACEncoder.rar
海康摄sdk分解海康ps流获取视频和音频帧,写入mp4文件
android开发记录分类-Tag标签列表 - 农民伯伯 - 博客园.pdf
android开发记录分类-Tag标签列表
电信运营基于分类模型的客户流失预警系统:数据挖掘驱动的精准挽留策略设计
内容概要:本文围绕电信客户流失预警与挽留策略,构建了一套从数据探索、预处理、特征工程、分类建模、模型评估与解释到业务落地的端到端数据挖掘实战方案。基于公开的 Telco Customer Churn 数据集,项目聚焦于识别高流失风险客户,并通过逻辑回归、随机森林和XGBoost等模型进行对比分析,结合ROC-AUC、精确率、召回率、F1等指标评估性能,利用SHAP等方法实现模型可解释性,最终将预测结果转化为可操作的客户分层与差异化挽留策略。文中强调了数据泄漏防范、类别不平衡处理、模型可复现性及A/B测试验证增量收益的重要性,并明确指出当前图表为示意性质,需通过附录代码运行真实数据生成结果。; 适合人群:具备一定数据分析与机器学习基础,从事数据科学、用户运营或客户留存相关工作的从业者,尤其是工作1-3年希望提升实战能力的研发与分析人员。; 使用场景及目标:①掌握客户流失预测的全流程方法论,包括数据清洗、特征工程、建模调参与模型解释;②学习如何将机器学习模型输出转化为可运营的客户触达策略;③理解模型评估与业务目标之间的衔接,如预算约束下的优先级排序与A/B测试设计; 阅读建议:此资源以实际业务场景驱动,不仅关注算法实现,更重视从业务定义到策略落地的闭环逻辑。建议结合附录提供的完整Python代码,在本地环境中下载数据集并复现分析流程,重点关注数据预处理防泄漏机制、模型管道构建、超参数调优策略及SHAP解释应用,避免将文中的示意图表误认为实测结果。


