日韩欧美国产一区二区三区_五月天欧美精品_国产精品一区不卡_欧美精品乱码久久久久久

內容字號:默認大號超大號

段落設置:段首縮進取消段首縮進

字體設置:切換到微軟雅黑切換到宋體






基于AVI的網絡視頻監控存儲系統實現方法

時間:2013-10-09 來源:互聯網 作者:小甜甜 點擊:

  1.網絡視頻監控系統介紹 
  隨著Internet和寬帶網絡技術的日益發展,具有視頻和音頻的多媒體內容服務即將成為主流。同時,各種高效壓縮解壓算法的提出,為多媒體信息在網絡上進行傳輸提供了可能。網絡視頻監控以直觀、方便、信息內容豐富等特點被廣泛應用于許多場合。

    網絡視頻監控系統是一個基于客戶機/服務器模型的系統,由視頻服務器端和客戶端組成。視頻服務器是一個由SAA7113、PNX1301、RTL8139等組成的嵌入式系統,SAA7113實現視頻的采集;PNX1301是系統的核心,對視頻數據進行處理,如視頻編碼、報警檢測、云鏡控制等;RTL8139負責數據傳輸,數據通過網絡與客戶端交互。

    客戶端是一臺通用計算機,客戶端有選擇性地連接單個或者多個服務器,經過身份驗證后可以向監控服務器發送命令,從監控服務器獲取壓縮視頻流和其他測量數據,從而實現遠程視頻監控。

    系統采用XVID視頻編解碼器對圖像數據進行壓縮,因為XVID開放源碼,可以將它移植到PNX1301的PSOS操作系統中,對圖像數據進行編碼;客戶端計算機從網絡接收壓縮的視頻數據,使用相同版本的XVID解碼器解碼,即可得到圖像數據。

    2.XVID視頻壓縮格式

    2.1.XVID的特點

    XVID支持多種編碼模式,除了最原始單重估定碼流壓縮(1-passCBR)之外,XVID提供了包括:單重質量模式動態碼流壓縮、單重量化(Quantization)模式動態碼流壓縮、和包括外部控制和內部控制的兩種雙重(2-pass)動態碼流壓縮模式。

    XVID的運動偵測(MotionSearch)特性,為需要高碼流的運動畫面可以分配更多空間、更高的碼流、更低的量化幅度來保持畫面的細節;而對于不包含太多運動信息的靜態畫面,則消減分配預算。這是XVID做為第二代MPEG4編碼的核心內容。

    XVID支持動態關鍵幀距(I-frameinterval)和B幀,即雙向預測幀。此外還支持心理視覺亮度修正、演員表選項。畫面優化解碼等。

    2.2.XVID的編解碼實現方法

    XVID源碼有三部分構成:xvidcore、vfw、dshow,可以用MicrosoftVisualC++和NASM編譯。本文使用MicrosoftVisualC++2003.net和NASM-0.98.39編譯成功,其中編譯dshow項目還需要安裝DirectX9.0SDK。

    xvidcore工程生成XVID編解碼器的API函數庫:xvidcore.dll;vfw工程生成XVID編解碼器在Windows下的安裝文件:xvidvfw.dll和xvid.inf;dshow生成XVID在Windows下注冊文件:xvid.ax。

    由于本文的XVID編碼部分在PNX1301中實現,在此只介紹XVID的解碼部分。

    1)加載xvidcore.dll庫函數

    使用XVID的API函數需要加載xvidcore.dll庫,并包含vfw.h和xvid.h頭文件,調用API函數的方法如下:

    HINSTANCEm_hdll=LoadLibrary("xvidcore.dll");

    xvid_global_func=(int(__cdecl*)(void*,int,void*,void*))GetProcAddress(m_hdll,"xvid_global");

    xvid_decore_func=(int(__cdecl*)(void*,int,void*,void*))GetProcAddress(m_hdll,"xvid_decore");

    2)初始化編解碼器

    xvid_global_func(0,XVID_GBL_INIT,&init,NULL);

    3)創建解碼器

    intlength=xvid_decore_func(0,XVID_DEC_CREATE,&create,NULL);

    4)結果輸出設置

    xvid_dec_frame_t結構是解碼的主要參數,其中輸出部分需要設置輸出緩沖區、步長和輸出類型,在顏色深度是24位的情況下,RGB格式的數據步長為圖像寬度的3倍。

    frame.output.plane[0]=ostream;

    frame.output.stride[0]=CALC_BI_STRIDE(width,24);

    frame.output.csp=XVID_CSP_VFLIP|XVID_CSP_BGR;

    5)解碼

    intlength=xvid_decore_func(dhandle,XVID_DEC_DECODE,&frame,&stats);

    3.利用AVI格式存儲視頻

    AVI(AudioVideoInterleaved的縮寫)是一種RIFF(ResourceInterchangeFileFormat的縮寫)文件格式,用于音視頻捕捉、編輯、回放等應用程序中。通常情況下,一個AVI文件可以包含多個不同類型的媒體流(典型的情況下有一個音頻流和一個視頻流),不過含有單一音頻流或單一視頻流的AVI文件也是合法的。AVI可以算是Windows操作系統上最基本的、也是最常用的一種媒體文件格式。

    3.1.AVI視頻文件結構

    ’avih’:文件信息(AVIFILEINFO格式),’strh’:數據流信息(AVISTREAMINFO格式),’strf’:格式化信息(BITMAPINFO格式)。

    3.2.安裝XVID編解碼器

    在Windows下使用XVID編解碼器,需要安裝XVID編解碼器。


222222安裝需要前面提到xvidcore和vfw項目生成的三個文件xvidcore.dll、xvidvfw.dll和xvid.inf,使用方法是右鍵點擊xvid.inf文件選擇“安裝”命令即可。

    3.3.存儲AVI視頻文件

    微軟提供了一套API對AVI文件進行讀寫,使用這些庫函數需要在程序中加載vfw32.lib庫和vfw.h頭文件。本文的對AVI文件的操作都使用此庫中的函數。

    如果要對數據流進行壓縮,可以使用AVISaveOptions和AVIMakeCompressedStream函數,選擇操作系統中已經安裝的視頻編解碼器。由于本文從視頻服務器得到的是已經編碼的XVID格式數據流,所以不需要這個步驟。

    3.3.1.獲取原始數據

    首先獲取幀數據的長度,然后獲取文件中的原始數據。

    AVIStreamRead(pVideoStream,lFrames,AVISTREAMREAD_CONVENIENT,NULL,0,&lSize,NULL);

    AVIStreamRead(pVideoStream,lFrames,AVISTREAMREAD_CONVENIENT,pBuffer,lSize,NULL,NULL);
(中國集群通信網 | 責任編輯:陳曉亮)

中國集群通信網,國內首家集群通信專業網站。

Copyright © PttCn.Net, All Rights Reserved.   

聯系我們 聯系我們 中國集群通信網 對講機學堂 對講機世界

主站蜘蛛池模板: 日韩在线第三页| 欧美视频在线播放一区| 日本久久久久亚洲中字幕| 国产精品福利在线观看| 国产精品一区二区免费看| 99视频免费观看| 亚洲人成网站在线观看播放| 日韩在线免费视频观看| 国产在线观看精品一区二区三区| 国产日韩在线免费v| 一区二区三区在线视频看| 国产美女三级视频| 777国产偷窥盗摄精品视频| 日韩中文字幕视频| 91精品免费视频| 国产精品久久久久久久久久久不卡 | 久久免费福利视频| 天天综合中文字幕| 日韩中文字幕av在线| 无码日韩人妻精品久久蜜桃V| 国产在线观看不卡| 久久97精品久久久久久久不卡| 久久亚洲国产精品日日av夜夜| 欧美二区在线| 久久99久久99精品中文字幕| 国产在线精品自拍| 国产精品国产亚洲伊人久久| 91精品视频播放| 日韩在线观看成人| 免费99精品国产自在在线| 久久精品视频一| 国产精品一区二区在线| 国产精品国产精品国产专区不卡| 国产精品国内视频| 亚洲一区二区三区在线免费观看| 亚洲伊人婷婷| 免费中文日韩| 成人精品网站在线观看| 日韩中文字幕三区| 精品欧美日韩在线| 国产高清在线一区|