999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于B/S模式下的值班監控系統設計

2021-02-11 07:59:20李大明
新技術新工藝 2021年12期
關鍵詞:方法

張 奔,李大明

(中國電子科技集團公司第二十八研究所,江蘇 南京 210007)

在值班系統中對重點區域的實時監控是必不可少的,值班人員能夠掌握監控區域的實時視頻畫面,通過視頻實時掌握區域動向[1-3]。隨著計算機性能的提升,用計算機處理視頻信息和數字視頻傳輸已經得到廣泛應用。目前,網絡傳輸的技術越來越成熟,網絡帶寬也越來越高,但是視頻的數據量一般都非常大,如果不通過任何壓縮技術傳遞視頻,會造成數據堵塞、延遲甚至丟失現象,視頻畫面會嚴重卡頓。因此,在傳遞視頻時對視頻圖像壓縮成為必然的環節。在諸多視頻壓縮標準中,MPEG-4以其高壓縮比和高性能備受人們的青睞,被廣泛應用于網絡環境下的視頻傳輸。本文采用Divx編解碼器[4-6]對視頻進行編碼、壓縮。Divx編碼后形成以幀為格式的MPEG-4流,Divx解碼也是以幀的格式解碼,通過Divx編解碼器有效地解決了由于網絡的局部不穩定導致的視頻圖像重影、抖動、花瓶,得到了良好質量的視頻畫面。

1 系統構成

1.1 硬件環境

系統硬件設備由CCD攝像頭、采集卡、服務器、交換機和若干個客戶端席位組成,組成架構如圖1所示。系統支持5~10個客戶端席位,在服務器上安裝一個基于PCIe總線的采集卡,攝像頭通過AV線與采集卡相連,服務器采集到的視頻流經過壓縮成為一個信息包,通過網絡傳送到客戶端,客戶端接收到信息包進行解壓并實時顯示,從而得到清晰流暢的運動圖像。同時服務器端也可以實時顯示所采集的視頻。

圖1 系統硬件框圖

1.2 系統軟件

圖2 系統軟件流程圖

2 系統設計關鍵模塊

2.1 視頻采集

裝有視頻采集卡的服務端接收攝像頭拍攝的視頻圖像,服務端的軟件采用VFW技術對視頻圖像進行捕獲,VFW是微軟公司推出的一款關于數字視頻的軟件開發包,其優勢簡單直觀,能夠快速地運用回調函數完成對視頻的實時捕獲并對視頻源進行控制。在視頻捕獲前先創建一個視頻捕獲窗口,通過capDriverConnect()關聯捕獲視頻窗口到視頻驅動程序上,對視頻捕獲參數和窗口顯示模式進行設計,通過capSetCallbackOnFrame()注冊回調函數,捕獲圖像到緩存并進行相應處理,完成捕獲。

2.2 視頻幀的組成

視頻采集的數據是位圖型式的視頻幀,發送前要對視頻幀進行編碼,利用Divx編碼器壓縮以后形成以幀為格式的Mpeg4流。Divx解碼器也是以幀的格式解壓。為了在接收端能夠方便地提取出一幀,提出格式組建幀(見圖3)。

圖3 視頻幀格式

每個視頻幀由5個字段組成,各個字段的描述如下:第1個字段為占用4個字節的幀開始標志,標志著一幀的開始;第2個字段為占用4個字節的幀大小,表示整個幀的大??;第3個字段為占用4個字節的幀編號,表示幀的順序編號;第4個字段為占用1個字節的幀類型,標志此幀是否是關鍵幀;第5個字段為幀數據,存放壓縮后一幀的完整數據,大小不定,壓縮比越高,幀數據的大小越小。

2.3 視頻幀的發送和接收

為了保證接收端能夠及時接收到發送過來的視頻數據,在發送端專門創建一個線程用來發送數據。同時主線程循環地對采集到的視頻數據進行壓縮編碼。發送線程的工作流程如圖4所示。

圖4 發送線程工作流程

線程中發送的數據幀是按照上一節中的方法組建好的數據幀。該方法能夠保證正在發送的當前幀能夠完整地到達接收端。

注意此線程中剛開始或者每當發送完一幀以后,線程就轉到掛起狀態,等待外界喚醒。這個任務由回調函數完成,在回調函數中,判定如果發送線程準備就緒(處于掛起狀態),則進行圖像壓縮,然后喚醒線程發送壓縮完的數據,否則直接跳出,等待下一次調用回調函數。

接收端最重要的是從接收的數據流中提取出完整的一幀。該方法的思想是:首先從數據流中尋找幀開始標志,再從緊挨后面的數據中提取出幀的大小,然后從接收緩沖區中讀入該幀剩余的數據,最后尋找下一幀的開始標志,如此往復。接收端的工作流程如圖5所示。

圖5 接收端的工作流程

3 JNI技術[10]

3.1 JNI介紹

Java Native Interface(JNI)是Java語言的本地編程接口,是J2SDK的一部分,已經被集成到標準Java平臺之中。在Java程序中,可以通過JNI實現一些用Java語言不便實現的功能。使用JNI提供的方法,Java代碼能夠直接與特定操作系統和硬件平臺中的本地共享二進制庫進行交互。這個交互過程發生在相同的Java虛擬機進程之中。

將Java類中聲明的類型為“Native”的Java方法映像到共享二進制庫中的相應函數上,并且將這兩者加載到相同的進程空間。JNI框架使得本地方法使用Java對象的方式和Java代碼使用這些對象相同。一個本地方法能夠創建Java對象,然后檢查并使用這些對象,也可以檢查并使用由Java應用程序代碼創建的對象,甚至能夠修改它創建的或傳遞給它的Java對象。因此,本地語言和Java應用程序都能創建、修改、訪問Java對象,并在它們之間共享這些對象。本地方法也能夠很容易地調用Java方法、傳遞方法所需的參數并得到返回的結果。

3.2 JNI使用步驟

1)步驟1:在MyEclipse里建立一個包含Compressor類的Java工程,該類中包含了需要調用的本地化方法的描述。其中,本地化方法應當用native關鍵詞聲明。使用System.LoadLibrary()方法加載需要的動態鏈接庫。代碼如下:

Package com.chnic.jni

Public class Compressor{

Static{

System.LoadLibrary(“DeCompressorEnd”);

}

Public Compressor (){}

Public native void InitCompressor();

Public native void FillBitmapstruct();

Public native void UnInitCompressor();

Public native void UnCompress(byte[] in,int width,int heigh,byte[] out);

}

2)步驟2:將步驟1生成的源文件用Java類編譯器編譯成二進制字節碼文件,接下來要用javah方法來生成一個相對應的.h頭文件。Javah是一個專門為JNI生成頭文件的命令。CMD打開控制臺之后輸入javah回車就能看到javah的一些參數,在控制臺進入到工程的根目錄之后,然后輸入命令:Javah-jni com.chnic.jni.Compressor。

命令執行完之后,在工程的根目錄下就會發現com_chnic_jni_Compressor.h這個頭文件。

ifdef__cplusplus

extern "C" {

endif

/*

* Class: com_chnic_jni_Compressor

* Method: InitCompressor

* Signature: ()V

*/

JNIEXPORT void JNICALL Java_com_chnic_jni_Compressor_InitCompressor

(JNIEnv *, jobject);

/*

* Class: com_chnic_jni_Compressor

* Method: FillBitmapStruct

* Signature: ()V

*/

JNIEXPORT void JNICALL Java_com_chnic_jni_Compressor_FillBitmapStruct

(JNIEnv *, jobject);

/*

* Class: com_chnic_jni_Compressor

* Method: UnInitCompressor

* Signature: ()V

*/

JNIEXPORT void JNICALL Java_com_chnic_jni_Compressor_UnInitCompressor

(JNIEnv *, jobject);

/*

* Class: com_chnic_jni_Compressor

* Method: Compress

* Signature: ([BI[B)V

*/

JNIEXPORT void JNICALL Java_com_chnic_jni_Compressor_UnCompress

(JNIEnv *, jobject, jbyteArray, jint, jint,jintArray);

ifdef __cplusplus

}

endif

endif

3.3 系統測試

本系統在Windows 7平臺下服務器采集到的視頻數據壓縮之后以廣播方式將數據發送出去,圖像大小為640*512的位圖,每秒采集25幀,壓縮比最大時為100,且延遲較小,用戶只需在客戶端登錄Web網頁即可查看到解壓后的視頻流。經過比較,服務器上顯示的視頻和客戶端顯示的視頻基本相同,并且客戶端的視頻和服務器上的視頻基本同步,流暢性也較好。服務端和客戶端的視頻截圖分別如圖6和圖7所示。

圖6 服務器顯示的視頻

圖7 客戶端顯示的視頻

4 結語

本文對實時視頻傳輸系統的開發設計做了較為詳細的描述,重點介紹了基于Divx的視頻編解碼技術、JNI技術以及基于B/S結構的實時視頻數據傳輸顯示。試驗表明,通過上述方法實現的網絡視頻傳輸能達到良好質量的視頻畫面,滿足了視頻實時傳輸的要求,達到了預期的效果。

猜你喜歡
方法
中醫特有的急救方法
中老年保健(2021年9期)2021-08-24 03:52:04
高中數學教學改革的方法
河北畫報(2021年2期)2021-05-25 02:07:46
化學反應多變幻 “虛擬”方法幫大忙
變快的方法
兒童繪本(2020年5期)2020-04-07 17:46:30
學習方法
用對方法才能瘦
Coco薇(2016年2期)2016-03-22 02:42:52
最有效的簡單方法
山東青年(2016年1期)2016-02-28 14:25:23
四大方法 教你不再“坐以待病”!
Coco薇(2015年1期)2015-08-13 02:47:34
賺錢方法
捕魚
主站蜘蛛池模板: 福利在线一区| 国产精品永久不卡免费视频| aaa国产一级毛片| 香蕉久久国产超碰青草| 欧美天堂久久| 成人av专区精品无码国产| 她的性爱视频| 日韩在线欧美在线| 在线综合亚洲欧美网站| 超清人妻系列无码专区| 在线观看无码av免费不卡网站| 999精品在线视频| 国产一二视频| 久久精品丝袜高跟鞋| 欧美精品亚洲精品日韩专区va| 欧美成人一区午夜福利在线| 免费在线a视频| 色婷婷电影网| 日本欧美成人免费| 99热这里只有精品国产99| 九色91在线视频| 国产啪在线91| 67194亚洲无码| 亚卅精品无码久久毛片乌克兰| 韩国v欧美v亚洲v日本v| 狠狠做深爱婷婷综合一区| 国产一级做美女做受视频| 精品久久国产综合精麻豆| 伊人成人在线视频| 国产精品久久久久无码网站| 伊人激情综合| 99久久精品国产综合婷婷| 九九九精品成人免费视频7| 亚洲一区网站| 在线观看91香蕉国产免费| 人与鲁专区| 国产97视频在线| 大香网伊人久久综合网2020| 国产亚洲高清视频| 黄色一级视频欧美| 国产成人乱无码视频| 综合五月天网| 天天综合天天综合| 91在线无码精品秘九色APP| 国产高清色视频免费看的网址| 青草娱乐极品免费视频| 激情网址在线观看| 亚洲精品无码av中文字幕| 中文字幕在线不卡视频| 无码久看视频| 色综合天天综合| 在线观看国产黄色| 国产精品熟女亚洲AV麻豆| 国产一级片网址| 中国一级特黄大片在线观看| 曰AV在线无码| 99re热精品视频中文字幕不卡| 麻豆国产精品一二三在线观看| 亚洲综合欧美在线一区在线播放| 久久精品亚洲热综合一区二区| 日本精品视频一区二区| 四虎亚洲国产成人久久精品| 亚洲综合在线最大成人| 国产在线视频导航| 国产真实乱子伦精品视手机观看| 中文字幕调教一区二区视频| 亚洲男人天堂久久| 99久久精品国产麻豆婷婷| 热久久综合这里只有精品电影| 美女无遮挡拍拍拍免费视频| 亚洲国产成人自拍| www亚洲天堂| 毛片在线看网站| 美女潮喷出白浆在线观看视频| 一级毛片免费观看不卡视频| 色婷婷国产精品视频| 日本一区二区不卡视频| 久久精品嫩草研究院| 国产在线高清一级毛片| 亚洲人人视频| 亚洲无码视频图片| 丁香亚洲综合五月天婷婷|