C# 视频监控系列(5):客户端——给服务器端发送字符串和录像(数据捕获)

简介:

前言

     这几天加紧赶工写服务器端的程序,所有系列文章更新较慢,见谅: )

 

注意

     本系列文章限于学习交流,注重过程,由于涉及公司,所以不提供源代码下载,非常抱歉!!但是请大家放心,核心、实现以及其他能够贴出来的代码我都会贴出来,并且争取尽所能的回答留言里的每一个问题,感谢大家关注,欢迎交流 :)

 

系列

     1.     C# 视频监控系列(1):准备

     2.     C# 视频监控系列(2):客户端——封装API

     3.     C# 视频监控系列(3):客户端——连接服务器

     4.     C# 视频监控系列(4):客户端——音频接收和抓图

     5.     C# 视频监控系列(5):客户端——给服务器端发送字符串和录像(数据捕获)

 

正文

     一、给服务器发送字符串

          实现这个功能非常简单,感觉不怎么实用。

          1.     VC++ Code:

MP4_ClientCommandtoServer((LPCTSTR)ctemp,sendcont, 400 );

          2.     C# Code: 

PcHikClient.MP4_ClientCommandtoServer( " 192.168.0.188 " " 服务器你好:) " 14 );

          从API文档中能找到关于这个方法的说明:第一个参数是服务器的IP,第二个是要发送的字符串,第三个参数是字符串长度。

     二、客户端对视频录像

          客户端视频录像从API文档(Hikvision 板卡网络开发包编程手册V4.7)中可以看得出可以由MP4_ClientStartCapture或MP4_ClientStartCaptureFile函数来实现这个功能,从VC++的源码可以看得出他是用后者来实现的,简单省事,但是服务器端就没这个函数了- _-#。但是MP4_ClientStartCapture通过回调自己写存储代码更加灵活,可以实现诸如统计信息之类的额外功能,这里只提供VC++对应的C#版本的MP4_ClientStartCaptureFile

          1.     VC++ Code:

复制代码
     // 开始录像
     if  (nn1  >=   0 )
    {
        sprintf(filename,
" d:\\mp4test1_%d.mp4 " ,capcount);
        MP4_ClientStartCaptureFile(nn1,filename);
        
// MP4_ClientStartCapture(nn1);
    }
    
// 关闭录像
     if  (nn1 >= 0 )
        MP4_ClientStopCapture(nn1);
复制代码

           2.     C# Code: 

复制代码
         ///   <summary>
        
///  开始录像
        
///   </summary>
        
///   <param name="sender"></param>
        
///   <param name="e"></param>
         private   void  btnStartCap_Click( object  sender, EventArgs e)
        {
            PcHikClient.MP4_ClientStartCaptureFile(cs, 
" D:\\mp4test1_0.mp4 " );
        }

        
///   <summary>
        
///  停止录像
        
///   </summary>
        
///   <param name="sender"></param>
        
///   <param name="e"></param>
         private   void  btnStopCap_Click( object  sender, EventArgs e)
        {
            PcHikClient.MP4_ClientStopCapture(cs);
        }
复制代码

          方法很简单,但是注意之前帖的MP4_ClientStartCaptureFile参数对应错误,否则无法创建文件并一直返回false,现在已经更新前面的SDK封装API的文章了,具体错误如下:

          VC++原型:

BOOL  __stdcall MP4_ClientStartCaptureFile(LONG StockHandle, LPTSTR FileName);

          之前版本:

public   static   extern   bool  MP4_ClientStartCaptureFile( long  StockHandle,  string  FileName);

          更改后版本:

public   static   extern   bool  MP4_ClientStartCaptureFile( int  StockHandle,  string  FileName);

          注意StockHandle参数数据类型变化。MP4_ClientStopCapture的参数也是long数据类型,不过不影响,改不改成int无所谓。

 

遗留问题

     保存下来的mp4文件显示的播放总时间和实际播放时间总是差3秒,例如总时间是48秒,而播到45就没有了,比较奇怪,不过影响不大:)

 

结束

          本章内容仍然简单,出错仍然出在数据类型对应上,所以大家需要多留意了: )

 

转载:http://www.cnblogs.com/over140/archive/2009/03/04/1400223.html

目录
相关文章
|
7月前
|
人工智能 搜索推荐 程序员
用 Go 语言轻松构建 MCP 客户端与服务器
本文介绍了如何使用 mcp-go 构建一个完整的 MCP 应用,包括服务端和客户端两部分。 - 服务端支持注册工具(Tool)、资源(Resource)和提示词(Prompt),并可通过 stdio 或 sse 模式对外提供服务; - 客户端通过 stdio 连接服务器,支持初始化、列出服务内容、调用远程工具等操作。
1808 4
|
8月前
|
网络协议 开发者 Python
Socket如何实现客户端和服务器间的通信
通过上述示例,展示了如何使用Python的Socket模块实现基本的客户端和服务器间的通信。Socket提供了一种简单且强大的方式来建立和管理网络连接,适用于各种网络编程应用。理解和掌握Socket编程,可以帮助开发者构建高效、稳定的网络应用程序。
435 10
|
10月前
|
存储 开发工具 git
[Git] 深入理解 Git 的客户端与服务器角色
Git 的核心设计理念是分布式,每个仓库既可以是客户端也可以是服务器。通过 GitHub 远程仓库和本地仓库的协作,Git 实现了高效的版本管理和代码协作。GitHub 作为远程裸仓库,存储项目的完整版本历史并支持多客户端协作;本地仓库则通过 `.git` 文件夹独立管理版本历史,可在离线状态下进行提交、回滚等操作,并通过 `git pull` 和 `git push` 与远程仓库同步。这种分布式特性使得 Git 在代码协作中具备强大的灵活性和可靠性。
266 18
[Git] 深入理解 Git 的客户端与服务器角色
|
9月前
|
SQL Java 测试技术
C#字符串拼接的6种方式及其性能分析对比
在C#编程中字符串拼接是一种常见且基础的操作,广泛应用于各种场景,如动态生成SQL查询、构建日志信息、格式化用户显示内容等。然而,不同的字符串拼接方式在性能和内存使用上可能存在显著差异。今天咱们一起来看看在C#中字符串拼接的常见6种方式及其使用BenchmarkDotNet进行性能分析对比。
258 6
|
11月前
|
存储 人工智能 自然语言处理
ChatMCP:基于 MCP 协议开发的 AI 聊天客户端,支持多语言和自动化安装 MCP 服务器
ChatMCP 是一款基于模型上下文协议(MCP)的 AI 聊天客户端,支持多语言和自动化安装。它能够与多种大型语言模型(LLM)如 OpenAI、Claude 和 OLLama 等进行交互,具备自动化安装 MCP 服务器、SSE 传输支持、自动选择服务器、聊天记录管理等功能。
2558 16
ChatMCP:基于 MCP 协议开发的 AI 聊天客户端,支持多语言和自动化安装 MCP 服务器
|
开发框架 .NET C#
在 ASP.NET Core 中创建 gRPC 客户端和服务器
本文介绍了如何使用 gRPC 框架搭建一个简单的“Hello World”示例。首先创建了一个名为 GrpcDemo 的解决方案,其中包含一个 gRPC 服务端项目 GrpcServer 和一个客户端项目 GrpcClient。服务端通过定义 `greeter.proto` 文件中的服务和消息类型,实现了一个简单的问候服务 `GreeterService`。客户端则通过 gRPC 客户端库连接到服务端并调用其 `SayHello` 方法,展示了 gRPC 在 C# 中的基本使用方法。
258 5
在 ASP.NET Core 中创建 gRPC 客户端和服务器
|
Python
Socket学习笔记(二):python通过socket实现客户端到服务器端的图片传输
使用Python的socket库实现客户端到服务器端的图片传输,包括客户端和服务器端的代码实现,以及传输结果的展示。
618 3
Socket学习笔记(二):python通过socket实现客户端到服务器端的图片传输
|
设计模式 API C#
C# 一分钟浅谈:GraphQL 服务器端实现
本文通过C#语言从零开始构建一个简单的GraphQL服务器端实现,介绍了环境准备、项目创建、定义Schema、配置GraphQL等步骤。同时,探讨了常见问题如数据源问题、类型定义不一致、性能问题和权限控制,提供了相应的解决方法。希望帮助读者更好地理解和应用GraphQL。
161 3
|
网络协议 Unix Linux
一个.NET开源、快速、低延迟的异步套接字服务器和客户端库
一个.NET开源、快速、低延迟的异步套接字服务器和客户端库
244 4
|
安全 区块链 数据库

热门文章

最新文章