日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > C# >内容正文

C#

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

發布時間:2025/4/5 C# 43 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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就沒有了,比較奇怪,不過影響不大:)

?

結束

??????????本章內容仍然簡單,出錯仍然出在數據類型對應上,所以大家需要多留意了: )

轉載于:https://www.cnblogs.com/carekee/articles/2220198.html

總結

以上是生活随笔為你收集整理的C# 视频监控系列(5):客户端——给服务器端发送字符串和录像(数据捕获)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。