?

基于信號量的視頻監控API設計與實現

2015-12-07 06:58李賢軍
新媒體研究 2015年14期
關鍵詞:線程客戶端服務器

李賢軍

安徽四創電子股份有限公司,安徽合肥 230088

基于信號量的視頻監控API設計與實現

李賢軍

安徽四創電子股份有限公司,安徽合肥 230088

隨著平安城市不斷推進,視頻監控成為國家建設的重點。在視頻監控中,監控客戶端為重要的組成部分,所有視頻、錄像都要通過客戶端進行調閱查看,可見穩定高效的視頻監控客戶端的接口(API)設計是比較重要的。從目前來看,各視頻廠家提供視頻API各不相同,或多或少都存在著一些問題,使用不習慣;而且,由于國內專業技術封閉不公開,對于視頻監控API的設計也沒有太多相關關鍵的資料可循。本文以信號量技術為核心基礎,提供了一套視頻監控API設計方案,并予以實現,以促進視頻監控客戶端穩定性和高效性。

信號量;視頻監控;API;多線程

在軟件開發中,我們常用到計算機的各種技術,其中一種就是多線程(或進程)互斥與同步。對于不同的操作系統,線程的互斥與同步實現方式各不相同,對于windows和Linux系統都有如下方式:消息隊列、信號量和共享內存,其中信號量是在控制多線程同步中使用比較多一種方式。信號量是一個整數:大于或等于0時代表可供并發進程使用的資源實體數;小于0時代表正在等待使用臨界區的進程數;用于互斥的信號量初始值應大于0。在視頻監控API開發中,我們經常需要同時操作、或者快速操作某一功能(如視頻播放、視頻控制、云臺控制等),此時會在短時間內進行很多次操作,并且所有的操作都需要通過網絡與服務器進行交互。將信號量結合到視頻API設計實現中,利用信號量特點,控制多線程并發將操作指令按操作順序發送出去,并異步等待接收操作結果。

1 視頻監控API基本組成

通用的視頻監控客戶端API設計的基本邏輯組成,包括:對外接口、視頻管理、視頻設備管理服務器和視頻服務器。對外接口,是直接面向用戶使用的接口,如登陸、退出、實時視頻播放與停止、云臺控制、錄像查閱與點播控制等;視頻設備管理服務器,是負責所有設備管理和與客戶端交互的服務端,處理一切客戶的請求;視頻服務器,為流媒體服務器,負責監控攝像頭的視頻流轉發,以供客戶端點播;視頻管理模塊,為視頻監控API設計中最為核心部分,負責對外接口、視頻設備管理服務器以及視頻服務器之間的一切邏輯管理,包括有多線程控制、網絡通信、服務連接管理、視頻連接管理、事務管理等。

對外接口和視頻管理模塊為本文視頻監控API主要部分,尤其對于視頻管理部分設計是非常重要的,該部分設計的優良,關乎整個視頻監控API穩定性與高效性。以下內容著重結合使用信號量技術,來設計實現視頻管理模塊。

2 信號量在API中的應用

圖1

信號量為視頻管理模塊設計中重要應用部分,是同步各個線程的關鍵。如圖1所示,在視頻監控API設計中,將所有客戶端每一個請求的指令轉為標準的事務,再結合信號量的變量,在這里我們將結合信號量的事務為一個任務。在請求時,生成的任何一個任務都有一個唯一的遞增的編號ID,同時也是一個操作序列號,表示操作的先后順序,請求通常在一個線程中,在通過網絡向服務器發送信息之前,初始化信號量為無信號狀態,此時調用任務發送信息并同時置信號量為定時等待狀態。在等待服務器返回過程中,利用信號量特點,控制線程間安全,可以同時并發多個請求,此時各個接口的調

用是線程安全的,客戶端可以同時調用當前接口或其他接口,以快速完成其他指令的調用,避免了客戶端由于網絡原因,或服務器處理慢等原因出現時間上累積等待響應問題,最終導致客戶端崩潰。

在客戶端發出信息以后,為避免由于各種異常請求無法返回原因,信號量統一采用的是定時等待,在固定的時間內如果服務器對于請求依然沒有反饋,信號量會自動產生信號,讓等待以超時的形式觸發,終止客戶端的等待狀態,相應的任務也會終止移除;如果,服務器對于客戶的請求在指定的時間內返回,此時在返回的線程中,會根據返回信息的編號ID找到對應的任務,賦予反饋信息,并觸發等待線程的信號量,讓請求返回,終止并移除 任務。

3 詳細設計與實現

在視頻監控API設計中,為了完善整個API的設計,一般還需要:認證授權、視頻協議、視頻播放連接管理、加解密、網絡通信、以及多線程和日志記錄等模塊相互協作。

為視頻監控API 各個模塊相互關系圖,在圖中虛線部分為信號量的應用組成,連接著所有模塊,為關鍵的樞紐,負責完成了指令傳送與接收、保持服務連接、和重建視頻連接等重要功能。

4 結束語

本文提供了一種基于信號量的視頻監控客戶端API設計實現的解決方案,詳細講述了信號量在API中應用的方法,并設計了整個API邏輯框架,實現了視頻監控客戶端API多線程多并發的穩定 調用。

[1]王楊,朱朝霞.基于信號量的Linux多線程同步研究[J].計算機與數字工程,2004.

[2]劉曉平,等.基于信號量的生產者一消費者問題設計與分析[J].合肥工業大學學報,2008(10).

[3]百度文庫.http://wenku.baidu.com.

G2

A

2096-0360(2015)14-0023-01

李賢軍,工作單位為安徽四創電子股份有限公司。

猜你喜歡
線程客戶端服務器
基于C#線程實驗探究
基于國產化環境的線程池模型研究與實現
通信控制服務器(CCS)維護終端的設計與實現
線程池調度對服務器性能影響的研究*
如何看待傳統媒體新聞客戶端的“斷舍離”?
PowerTCP Server Tool
縣級臺在突發事件報道中如何應用手機客戶端
孵化垂直頻道:新聞客戶端新策略
大樞紐 云平臺 客戶端——中央人民廣播電臺的探索之路
得形忘意的服務器標準
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合