在坦洲網(wǎng)站建設(shè)的過程中,視頻網(wǎng)站的建設(shè)要求有很多,比如采集卡實質(zhì)上就是把連續(xù)的模擬視頻信號轉(zhuǎn)換為離散的數(shù)字視頻信號的組芯片組。為了讓大家對采集卡有一個比較清晰的認(rèn)識,我們來把采集卡簡單分一下類:
1) 按照通道來分:常見的有單卡單路\4路\8路\16路\32路;一般卡都支持多卡組合,比如你需要16路,你可以買一張單卡16路的、也可以買4張4路的、2張8路的;
2) 按照驅(qū)動來分類:主流是支持Windows DirectShow Interface由VFW和WDM驅(qū)動的采集卡; 不過在大陸,由廠商自己開發(fā)的驅(qū)動程序來驅(qū)動的采集卡,也是比較常見的,這類采集卡自帶的驅(qū)動程序一般不支持DirectShow Interface,有的甚至連驅(qū)動程序的Interface也不對外公布,一般只有配套他們自己的軟件才能使用;不過也有專業(yè)賣卡的廠商,他們提供自己的二次開發(fā)SDK,如果要做二次開發(fā),需要用他們提供的專用接口函數(shù);
3) 按照用途來分類,一般有用于數(shù)碼編輯(DV制作、視頻錄制等)用的采集卡,這類卡的質(zhì)量和性能要求都比較高,當(dāng)然價格也較高;還有一類就是安防監(jiān)控系統(tǒng)用的采集卡,這類卡又分為工廠用的用于監(jiān)控儀器儀表用的采集卡和用于樓宇監(jiān)控用的采集卡,前者要求精度比較高,性能和價格都要略高于后者;現(xiàn)在市面上的視頻采集卡總體看還是比較亂的,沒有一個統(tǒng)一的硬性標(biāo)準(zhǔn)。大家基本都有自己的從硬件到軟件的一整套的系統(tǒng),一般都是自己有自己的標(biāo)準(zhǔn),接口互不公開,互不兼容。
總體來說,大陸產(chǎn)的視頻采集卡幾乎沒有自己本身就配套VFW或WDM驅(qū)動的。還有一些小廠產(chǎn)的采集卡,干脆就不支持二次開發(fā),雖然網(wǎng)站上介紹說是支持二次開發(fā)。這一點朋友們要注意了,買卡之前要問清楚了,買了塊卡,居然被告知不支持二次開發(fā),接口保密,是他們的技術(shù)秘密。如果讀者也買了這樣的采集卡,也不要著急,先看一下卡的芯片是什么然后到網(wǎng)上找一下有沒有適用于這套芯片的公用驅(qū)動程序,這個驅(qū)動可能會是電視卡之類的驅(qū)動,不過別擔(dān)心,它同樣可以驅(qū)動采集卡;如果沒有找到,就要考慮自己寫驅(qū)動了,主要保證驅(qū)動為WDM模型就行了,有專用的寫驅(qū)動的工具(DDK)。不過像比利時Euresys產(chǎn)的picolo系列、臺灣ProVideo產(chǎn)的SecurityEyes系列均自帶的有WDM驅(qū)動。picolo主要是工廠用于監(jiān)控儀器儀表,ProVideo主要用于安防監(jiān)控。
基于VFW的視頻應(yīng)用程序開發(fā)
當(dāng)前,在Windows 平臺下開發(fā)視頻應(yīng)用程序一般采用兩種方式:一種是基于視頻采集卡所附帶的二次軟件開發(fā)包SDK(Software development kit)進(jìn)行。這種方式的優(yōu)點是應(yīng)用方便,容易上手,缺點是對硬件的依賴性較強(qiáng),靈活性差,且功能參差不齊,不能充分滿足各種視頻應(yīng)用程序的開發(fā)需要;另一種方式是基于VFW(Video for Windows)進(jìn)行的。VFW 是Microsoft公司為開發(fā)Windows平臺下的視頻應(yīng)用程序提供的軟件工具包,提供了一系列應(yīng)用程序編程接口(API),用戶可以通過它們很方便地實現(xiàn)視頻捕獲[1]、視頻編輯及視頻播放等通用功能,還可利用回調(diào)函數(shù)開發(fā)更復(fù)雜的視頻應(yīng)用程序。它的特點是播放視頻時不需要專用的硬件設(shè)備,而且應(yīng)用靈活,可以滿足視頻應(yīng)用程序開發(fā)的需要。Windows操作系統(tǒng)自身就攜帶了VFW,系統(tǒng)安裝時,會自動安裝VFW的相關(guān)組件。VC++自4.0以來就支持VFW,大大簡化了視頻應(yīng)用程序的開發(fā)。目前,PC機(jī)上多媒體應(yīng)用程序的視頻部分,大都是利用VFW API開發(fā)的。
1 VFW 的體系結(jié)構(gòu)
VFW以消息驅(qū)動方式對視頻設(shè)備進(jìn)行存取,可以很方便地控制設(shè)備數(shù)據(jù)流的工作過程。目前,大多數(shù)的視頻采集卡驅(qū)動程序都支持VFW接口,它主要包括多個動態(tài)連接庫,通過這些組件間的協(xié)調(diào)合作,來完成視頻的捕獲、視頻壓縮及播放功能。VFW體系結(jié)構(gòu)如圖1所示。
1)VICAP.DLL:主要實現(xiàn)視頻捕獲功能,包含了用于視頻捕獲的函數(shù),為音像交錯AVI (Audio video interleaved)格式文件和視頻、音頻設(shè)備程序提供一個高級接口。
2)MSVIDEO.DLL:能夠?qū)⒁曨l捕獲窗口與獲驅(qū)動設(shè)備連接起來,支持ICM視頻編碼服務(wù)。
3)MCIAVI.DRV:包含MCI(Media control interface)命令解釋器,實現(xiàn)回放功能。
4)AVIFILE.DLL:提供對AVI文件的讀寫操作等文件管理功能。
5)ICM ( Installable compression manager ):即壓縮管理器,提供對存儲在AVI文件中視頻圖像數(shù)據(jù)的壓縮、解壓縮服務(wù)。
6)ACM ( Audio Compression Manager ):即音頻壓縮管理器,提供實時音頻壓縮及解壓縮功能。
2 視頻捕獲
視頻數(shù)據(jù)的實時采集,主要通過AVICAP模塊中的消息、宏函數(shù)、結(jié)構(gòu)以及回調(diào)函數(shù)來完成。視頻捕獲的一般過程如下:
(1)建立捕獲窗口
利用AVICAP 組件函數(shù) capCreateCaptureWindow() 建立視頻捕獲窗口,它是所有捕獲工作及設(shè)置的基礎(chǔ),其主要功能包括:
① 動態(tài)地同視頻和音頻輸入器連接或斷開;
② 設(shè)置視頻捕獲速率;
③ 提供視頻源、視頻格式以及是否采用視頻壓縮的對話框;
④ 設(shè)置視頻采集的顯示模式為Overlay或為Preview;
⑤ 實時獲取每一幀視頻數(shù)據(jù);
⑥ 將一視頻流和音頻流捕獲并保存到一個AVI文件中;
⑦ 捕獲某一幀數(shù)字視頻數(shù)據(jù),并將單幀圖像以DIB格式保存;
⑧ 指定捕獲數(shù)據(jù)的文件名,并能將捕獲的內(nèi)容拷貝到另一文件。
(2)登記回調(diào)函數(shù)
登記回調(diào)函數(shù)用來實現(xiàn)用戶的一些特殊需要。在以一些實時監(jiān)控系統(tǒng)或視頻會議系統(tǒng)中,需要將數(shù)據(jù)流在寫入磁盤以前就必須加以處理,達(dá)到實時功效。應(yīng)用程序可用捕獲窗來登記回調(diào)函數(shù),以便及時處理以下情況:捕獲窗狀態(tài)改變、出錯、使用視頻或音頻緩存、放棄控制權(quán)等,相應(yīng)的回調(diào)函數(shù)分別為 capStatusCallback(), capErrorCallback(), capVideoStreamCallback(), capWaveStreamCallback(),capYieldCallback()。
(3)獲取捕獲窗口的缺省設(shè)置
通過宏capCaptureGetSetup(hWndCap,&m_Parms,sizeof(m_Parms))來完成。
(4)設(shè)置捕獲窗口的相關(guān)參數(shù)
通過宏capCaptureSetSetup(hWndCap,&m_Parms,sizeof(m_Parms))來完成。
(5) 連接捕獲窗口與視頻捕獲卡
通過宏capDriveConnect(hWndCap,0)來完成。
(6) 獲取采集設(shè)備的功能和狀態(tài)
通過宏capDriverGetCaps(hWndCap,&m_CapDrvCap,sizeof(CAPDRIVERCAPS))來獲取視頻設(shè)備的能力,通過宏capGetStatus(hWndCap,&m_CapStatus,sizeof(m_CapStatus))來獲取視頻設(shè)備的狀態(tài)。
(7) 設(shè)置捕獲窗口顯示模式
視頻顯示有Overlay(疊加)和Preview(預(yù)覽)兩種模式。在疊加模式下,捕獲視頻數(shù)據(jù)布展系統(tǒng)資源,顯示速度快,視頻采集格式為YUV格式,可通過capOverlay(hWndCap,TRUE)來設(shè)置;預(yù)覽模式下要占用系統(tǒng)資源,視頻由系統(tǒng)調(diào)用GDI函數(shù)在捕獲窗顯示,顯示速度慢,它支持RGB視頻格式。
(8) 捕獲圖像到緩存或文件并作相應(yīng)處理
若要對采集數(shù)據(jù)進(jìn)行實時處理,則應(yīng)利用回調(diào)機(jī)制,由capSetCallbackOnFrame(hWndCap, FrameCall-backProc)完成單幀視頻采集;由capSetCallbackOnVideoStream(hWndCap, VideoCallbackProc)完成視頻流采集。如果要保存采集數(shù)據(jù),則可調(diào)用capCaptureSequence(hWnd);要指定文件名,可調(diào)用capFileSetCap-ture(hwnd, Filename)。
(9) 終止視頻捕獲,斷開與視頻采集設(shè)備的連接
調(diào)用capCatureStop(hWndCap)停止采集,調(diào)用capDriverDisconnect(hWndCap), 斷開視頻窗口與捕獲驅(qū)動程序的連接。
3 視頻編輯和播放
(1)利用VFW,不僅可以實現(xiàn)視頻流的實時采集,還提供了編輯和播放功能,主要通過AVIFILE、ICM、ACM、MCIWnd 等組件之間的協(xié)作來完成。
1) AVIFileInit();//初始化;
2) AVIFileOpen(); //打開一個AVI文件并獲文件的句柄;
3) AVIFileInfo(); //獲取文件的相關(guān)信息,如圖像的Width和Height等;
4) AVIFileGetStream(); //建立一個指向需要訪問的數(shù)據(jù)流的指針;
5) AVIStreamInfo(); //獲取存儲數(shù)據(jù)流信息的AVISTREAMINFO結(jié)構(gòu);
6) AVIStreamRead(); //讀取數(shù)據(jù)流中的原始數(shù)據(jù), 對AVI文件進(jìn)行所需的編輯處理;
7) AVIStreamRelease(); //釋放指向視頻流的指針;
8) AVIFileRelease();AVIFileExit(); //釋放AVI文件。
若數(shù)據(jù)是壓縮過的,則用AVIStreamGetFrameOpen(),AVIStreamGetFrame()和AVIStreamGetFrameClose()來操作,可以完成對視頻流的逐幀分解。
(2) 視頻播放
對于實現(xiàn)視頻流的播放,VFW提供了MCIWnd窗口類[4],主要用于創(chuàng)建視頻播放區(qū),控制并修改MCI窗口當(dāng)前加載媒體的屬性。一個由函數(shù)、消息和宏組成的庫與MCIWnd相關(guān)聯(lián),通過它們可以進(jìn)行AVI文件操作,很方便地使應(yīng)用程序完成視頻播放功能。
1)MCIWndCreate(); //注冊MCIWnd窗口類,創(chuàng)建MCIWnd窗口,并指定窗口風(fēng)格;
2)AVIFileInit(); //初始化;
3) AVIFileOpen(); //打開AVI文件;
4) AVIFileGetStream(); //獲得視頻流;
5)運(yùn)用相關(guān)函數(shù)進(jìn)行各種播放任務(wù):MCIWndPlay()正向播放AVI文件內(nèi)容,MCIWndPlayReverse()反向播放,MCIWndResume() 恢復(fù)播放,MCIWndPlayPause()暫停播放,MCIWndStop()停止播放等等。
6) AVIStreamRelease(); //釋放視頻流;
7)AVIFileRease();AVIFileExit(); //斷開與AVI文件的連接,釋放視頻源。
由以上步驟可以看出,視頻播放是視頻編輯其中的一種操作。
WDM 視頻捕獲介紹
Windos下視頻捕獲簡史 WDM和視頻捕獲 VfWWDM Mapper WDM 視頻捕獲結(jié)構(gòu)
DirectShow應(yīng)用程序 DirectShow Filter Graph WDM數(shù)據(jù)流
視頻捕獲 Minidrivers Pins, Streams, Formats
視頻流命名約定
DirectShow 視頻捕獲的接口和屬性 捕獲數(shù)據(jù)流類型 流輸出數(shù)據(jù)格式 結(jié)束語
Windos下視頻捕獲簡史
VFW(Video For Windows)1.0版本在1992年11月發(fā)布,它是為在
Windows3.1下將電影最優(yōu)化地捕獲到磁盤上而發(fā)布的。從那以后,視頻捕獲技術(shù)就越來越受到關(guān)注了。
VFW技術(shù)同樣受到了很多批評,它捕獲的數(shù)據(jù)保存到磁盤上會占用大量磁盤空間,每秒數(shù)據(jù)量超過20M,同時需要大量的客戶端支撐軟件,VFW體系架構(gòu)上的不足在視頻會議應(yīng)用上和PC/TV應(yīng)用上被暴露無遺,這樣就要求一種新的視頻捕獲技術(shù)來彌補(bǔ)這些不足。
VFW的體系結(jié)構(gòu)缺乏為視頻會議,電視瀏覽,視頻區(qū)域捕獲和VBI(Vertical Blanking Interval)數(shù)據(jù)流提供強(qiáng)而有效的支持。一些視頻卡等設(shè)備開發(fā)商在設(shè)計自己的產(chǎn)品時,針對這些缺陷,對VFW進(jìn)行了功能擴(kuò)展。由于沒有統(tǒng)一的標(biāo)準(zhǔn),我們的應(yīng)用程序在使用這些擴(kuò)充的功能時,就必須要寫一些基于特定硬件的代碼。這就意味著當(dāng)要改變捕獲驅(qū)動程序時,就必須要對顯卡的驅(qū)動程序進(jìn)行修改。
WDM和視頻捕獲
WDM 視頻捕獲設(shè)計就是為了來解決VFW體系結(jié)構(gòu)中存在的這些問題。WDM視頻捕獲主要的好處體現(xiàn)在:可以為設(shè)備(如基于USB,IEEE 1394通訊方式的攝像頭)提供32位的驅(qū)動程序。允許DirectShow 和 WDM 流協(xié)同工作。 可以在視頻捕獲設(shè)備和DVD/MPEG設(shè)備間,為硬件(如video操作系統(tǒng)仍然支持VfW驅(qū)動程序,但是依賴于VFW的開發(fā)將逐漸減少,這是因為下面三個原因:WDM數(shù)據(jù)流為基于電視瀏覽和視頻會議的捕獲設(shè)備提供了優(yōu)化支持。DirectShow提供了更強(qiáng)的功能。Microsoft 將不會對VFW進(jìn)行持續(xù)開發(fā)。
VfWWDM Mapper
VfWWDM mapper是Windows 98 和 Windows 2000 操作系統(tǒng)的一部分。它提供了WDM 驅(qū)動程序到基于VfW程序的向后兼容。對于Windows 98, 有一個驅(qū)動程序文件和一個動態(tài)鏈接庫Vfwwdm.drv和 Vfwwdm32.dll。Windows 2000只要求一個DLL文件。典型的 mapper應(yīng)用于顯示視頻捕獲設(shè)備對話框、視頻源選擇對話框、攝像頭控制面板和視頻格式設(shè)置。
VfWWDM mapper 不是全面兼容并且不支持舊VFW的所有功能。例如不支持視頻覆蓋,也不支持視頻端口implementations 。
WDM 視頻捕獲結(jié)構(gòu)
WDM 視頻捕獲結(jié)構(gòu)圖如下:
DirectShow應(yīng)用程序
DirectShow 用于控制多媒體數(shù)據(jù)流;它可以在運(yùn)行時允許用戶播放數(shù)字電影和對不同格式的聲音進(jìn)行解碼,包括MPEG-1。
這種播放性能可以讓音視頻卡支持Microsoft DirectX®的API,DirectShow 同樣可以播放AVI電影文件和Apple QuickTime (.mov)格式文件。
DirectShow 被廣泛地應(yīng)用于Windows 95, Windows 98, 和Windows 2000應(yīng)用程序。DirectShow 直接和驅(qū)動程序通訊,DirectShow 不使用AVICap, 因為AVICap分配了數(shù)據(jù)緩沖區(qū),如果一個DirectShow層沒有放在AVICap 頂層,那么緩存區(qū)數(shù)據(jù)必須要通過轉(zhuǎn)化去指向它,這樣會造成效率地下。
DirectShow Filter Graph
DirectShow結(jié)構(gòu)定義了標(biāo)準(zhǔn)的組件去控制處理帶時間標(biāo)記(time-stamped)的多媒體數(shù)據(jù)流,這些組件被稱為過濾器(Filter)。把這些Filter放在一個容器中,這個容器就是Filter Graph??赡苡腥N類型的Filter:Source ,transform 和render。(注:有些資料將Filter翻譯為過濾器,F(xiàn)ilterGraph翻譯為過濾器圖表,這里我都用原單詞)
應(yīng)用程序可以通過Filter Graph管理器來進(jìn)行數(shù)據(jù)訪問。Filter Graph 管理器會對Filter Graph配置進(jìn)行管理,同時還會通過Filter Graph控制數(shù)據(jù)的轉(zhuǎn)移。Filter Graph 管理器提供了一套COM接口,去允許應(yīng)用程序與Filter Graph實現(xiàn)通訊。
應(yīng)用程序可以直接調(diào)用Filter Graph管理器接口去控制媒體流或者去獲得Filter事件。還可以使用DirectShow ActiveX的OCX控件進(jìn)行程序設(shè)計。還有ports 和 chip sets)共享一個分類的驅(qū)動程序結(jié)構(gòu)(Stream.sys)。支持多個數(shù)據(jù)流。允許電視信號調(diào)頻和輸入選擇。支持視頻區(qū)域捕獲,區(qū)域顯示和VBI。允許使用DirectDraw® VPE (Video Port Extensions)管理視頻輸入。
在一個單獨設(shè)備上可能會有多個組件共存的情況,這些組件包括DVD解碼器,MPEG解碼器,視頻解碼器,調(diào)諧器,音頻解碼器。WDM數(shù)據(jù)流就是用于解決這種情況而創(chuàng)建的。它是個統(tǒng)一的驅(qū)動模型,可以支持所有的這些設(shè)備和去處理它們的資源分配。
WDM數(shù)據(jù)流為標(biāo)準(zhǔn)數(shù)據(jù)類型和用戶自定義數(shù)據(jù)類型提供了統(tǒng)一的數(shù)據(jù)模型,同樣,它定義了大部分的標(biāo)準(zhǔn)設(shè)備的屬性,并且根據(jù)需要可以很容易地實現(xiàn)擴(kuò)充。因為按WDM數(shù)據(jù)流的協(xié)議,它支持在設(shè)備內(nèi)核間進(jìn)行數(shù)據(jù)傳輸,而不需要在用戶模式下進(jìn)行數(shù)據(jù)轉(zhuǎn)換。這樣可以獲得較高的效率,減少不必要的工作。
一套MCI子集命令可以用來向后兼容Microsoft VFW 1.x版本和遵循OM-1 MPEG MCI 規(guī)范。
WDM數(shù)據(jù)流
WDM數(shù)據(jù)流主要應(yīng)用包括視頻捕獲,電視瀏覽,VBI數(shù)據(jù)編碼支持和DVD電影播放。DirectShow可以非常容易地使用這些數(shù)據(jù)。
視頻捕獲 Minidrivers
視頻卡由一些組件構(gòu)成,比如電視信號調(diào)諧器,AM/FM調(diào)諧器,視頻解碼器,音頻解碼器等,它們都由WDM Minidriver控制。使用Minidrivers ,就可以允許硬件開發(fā)商為不同的卡開發(fā)器驅(qū)動程序,他們只需要把Minidriver寫到他們的卡上,當(dāng)硬件設(shè)計修改后,不需要對修改驅(qū)動做更多的修改。
在Windows 98 和Windows 2000下,視頻設(shè)備使用WDM 的Minidriver去控制視頻數(shù)據(jù)流,視頻捕獲Minidrivers 相當(dāng)與一個客戶端,它會去控制處理硬件設(shè)備的圖像數(shù)據(jù)和其他相關(guān)數(shù)據(jù)。Minidrivers提供了如下的功能: ? 捕獲壓縮和非壓縮的視頻數(shù)據(jù)流,VBI數(shù)據(jù),時間編碼和其他輔助數(shù)據(jù)流??刂埔曨l流相關(guān)設(shè)備,比如電視信號調(diào)諧器,視頻路由設(shè)備,電視音頻控制器和視頻壓縮編碼器。在流內(nèi)核中完成處理工作,減少操作過程提高效率。
Pins, Streams, Formats
數(shù)據(jù)流視頻捕獲驅(qū)動程序可以同時支持多個壓縮數(shù)據(jù),非壓縮數(shù)據(jù),時間編碼, VBI解碼數(shù)據(jù)以及自定義數(shù)據(jù)。為了保證每種數(shù)據(jù)同步匹配,捕獲驅(qū)動程序為這些數(shù)據(jù)創(chuàng)建了一個新的數(shù)據(jù)流。每個流都會用一個WDM流針腳(Pin)來傳遞,通過針腳,單個數(shù)據(jù)流就可以把它的數(shù)據(jù)連接到不同的流Filter中去,還可以通過DirectShow 用戶Filter的輸出針腳,把數(shù)據(jù)轉(zhuǎn)換輸出給用戶。(前面我們提到Filter的3種類型:Source ,transform 和render。Source只有輸出針腳,而transform有輸入、輸出2個針腳,render只有輸入針腳)在內(nèi)核模式下,流格式使用KSDATAFORMAT數(shù)據(jù)結(jié)構(gòu)。這個結(jié)構(gòu)可以被擴(kuò)展去包含其它特別的數(shù)據(jù)格式信息。
typedef union { struct {
ULONG FormatSize; ULONG Flags; ULONG SampleSize; ULONG Reserved; GUID MajorFormat; GUID SubFormat; GUID Specifier; };
ULONGLONG Alignment;
} KSDATAFORMAT, *PKSDATAFORMAT, KSDATARANGE, *PKSDATARANGE;
DirectShow 視頻捕獲的接口和屬性
DirectShow 提供了與許多視頻相關(guān)的接口,它們中的一些還有附帶相關(guān)的屬性。下面列出的這些接口是實際應(yīng)用較多,并不帶相關(guān)屬性的: ? IAMAudioInputMixer ? IAMDroppedFrames ? IAMStreamConfig
? IAMVfwCaptureDialogs ? IAMVfwCompressDialogs ? IcaptureGraphBuilder ? ICreateDevEnum
每個針腳都可以支持多種不同的數(shù)據(jù)格式。比如,一個針腳它可以提供RGB16, RGB24, YVU9,和 JPEG 數(shù)字視頻。針腳可以連接到一個共享的系統(tǒng)內(nèi)存的數(shù)據(jù)緩存區(qū),它還可以直接連接到硬件設(shè)備。
視頻流命名約定
通常,DirectShow 和 WDM 流會共享媒體的格式定義和流命名約定。但是基于內(nèi)核模式(Kernel-mode)和用戶模式(User-mode)下的命名約定有一些小的命名差異。比如,內(nèi)核模式下的很多格式定義和GUID定義會在名稱前加個”KS”前綴,BITMAPINFOHEADER就是用戶模式下的定義,而
KS_BITMAPINFOHEADER就是內(nèi)核模式下的相同結(jié)構(gòu)的定義。
捕獲數(shù)據(jù)流類型
視頻流大致由時間標(biāo)記,數(shù)字視頻,和其他相關(guān)信息(比如VBI,時間編碼)組成,流可以被暫停,開始和停止。流一般是100ns一次進(jìn)行數(shù)據(jù)采樣,大多數(shù)情況下,每個數(shù)據(jù)幀存放在每個ImediaSample緩存區(qū)中。
流輸出數(shù)據(jù)格式
流的數(shù)據(jù)類型由KSDATARANGE 數(shù)據(jù)結(jié)構(gòu)的StreamDescriptionFlags 字段來標(biāo)識,它們定義如下:
KS_VIDEOSTREAM_CAPTURE
主要的視頻流格式,用于視頻會議和把數(shù)據(jù)寫入磁盤。 KS_VIDEOSTREAM_PREVIEW
用于顯示視頻,它使用的是沒有壓縮的數(shù)據(jù)格式,所以不需要進(jìn)行特別的解壓操作。
KS_VIDEOSTREAM_VBI 用于VBI應(yīng)用。
KS_VIDEOSTREAM_NABTS 用于NABTS 解碼VBI 采樣. KS_VIDEOSTREAM_CC KS_VIDEOSTREAM_EDS
KS_VIDEOSTREAM_TELETEXT 用于圖文信息
KS_VIDEOSTREAM_STILL 用于Still image.
KS_VIDEOSTREAM_IS_VPE 用于基于VPE的數(shù)據(jù)流。
Copyright ?2011~2019 wvnew.com Inc.All Rights Reserved. 版權(quán)所有 中山網(wǎng)維軟件技術(shù)有限公司