C# 视频监控系列(8):服务器端——预览和可被客户端连接
2009-04-08 08:23:42 来源:WEB开发网1. 从OnInitDialog中并参照《DS-4000HC、HCS、HC+、HF、HS、MD卡的Windows编程指南V4.3》的[API调用顺序](pdf 21页)以及对应的注释能看得出基本上是做板卡的初始化,服务器的初始化等。
2. StreamDirectReadCallback回调函数主要是通过MP4_ServerWriteDataEx将数据写入内存(文档注释:往发送缓存写数据。)和用_write写文件做存储视频录像。
3. 预览的代码是在OnPaint事件调用的。
二、服务器端预览
C# Code:
#region 变量
IntPtr ChannelHandle;
#endregion
#region 窗体事件
private void Form2_Load(object sender, EventArgs e)
{
//设置系统默认的视频制式
HikVisionSDK.SetDefaultVideoStandard(VideoStandard_t.StandardNTSC);
//初始化板卡
if (HikVisionSDK.InitDSPs() < 0)
{
MessageBox.Show("初始化DSPs失败!!");
return;
}
if (HikVisionSDK.GetTotalDSPs() == 0)
{
MessageBox.Show("没有可用的通道!!您是否已经启动服务器端?");
return;
}
//打开通道
ChannelHandle = HikVisionSDK.ChannelOpen(0);
//设置编码帧结构、帧率
HikVisionSDK.SetIBPMode(ChannelHandle, 100, 2, 1, 25);
//设置编码图像质量
HikVisionSDK.SetDefaultQuant(ChannelHandle, 15, 15, 20);
//视频预览
StartVideoPreview();
}
/// <summary>
/// 视频预览
/// </summary>
private void StartVideoPreview()
{
Rectangle rect = panel1.ClientRectangle;
HikVisionSDK.StartVideoPreview(ChannelHandle, panel1.Handle, ref rect, false, (int)TypeVideoFormat.vdfRGB16, 25);
}
/// <summary>
/// 窗体移动
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void Form2_Move(object sender, EventArgs e)
{
HikVisionSDK.StopVideoPreview(ChannelHandle);
StartVideoPreview();
}
#endregion
更多精彩
赞助商链接