[與此頁面相關聯的功能,DirectShow是舊版功能。 它已被 MediaPlayer、IMFMediaEngine,以及媒體基礎 的音訊/視訊擷取功能取代。 這些功能已針對 Windows 10 和 Windows 11 進行優化。 Microsoft強烈建議新程式代碼盡可能使用MediaPlayer、IMFMediaEngine 和媒體基礎的音訊/視訊擷取功能,而不是DirectShow。 Microsoft建議使用舊版 API 的現有程式代碼,盡可能改寫成使用新的 API。]
描述
數字視訊 (DV) 擷取應用程式。
此範例示範如何建置各種類型的篩選圖表,以控制 DV 攝影機。 它也會示範如何使用 DV 攝影機執行擷取、預覽、傳輸和裝置控制。
用法
DVApp 應用程式支援下列模式:
- 預覽:將 DV 從攝影機轉譯為視訊視窗。
- DV 到 type-1 檔案:將 DV 數據從攝影機擷取到 type-1 DV 檔案。
- Type-1 檔案到 DV:將數據從 type-1 DV 檔案傳輸到攝影機。
- DV 到 type-2 檔案:將 DV 數據從攝影機擷取到 type-2 DV 檔案。
- Type-2 檔案到 DV:將數據從 Type-2 DV 檔案傳輸到攝影機。
擷取和傳輸模式也會執行預覽。 這些模式也有 無預覽 選項,會停用預覽。 在沒有預覽的情況下擷取會更有效率,並可減少掉幀數。
應用程式會以預覽模式啟動。 若要選取另一個模式,請從 [圖形模式] 功能表中選擇模式。 針對每個模式,DVApp 會建置支援該模式功能的篩選圖形。 若要將圖形儲存為 GraphEdit (.grf) 檔案,請從 [檔案] 功能表中選取 [將圖形儲存至檔案] 。 在 GraphEdit 中開啟檔案之前,請先結束 DVApp。
若要擷取至檔案:
- 從 [檔案] 功能表中,選擇 [[設定輸出檔案],然後輸入檔名。
- 從 [圖形模式] 功能表中,選擇 DV 到檔案 模式(類型 1 或類型 2,含預覽或不含預覽)。
- 點選 記錄。
- 如果攝影機處於 VTR 模式,請按下 播放。
- 若要停止擷取,請按一下 停止。
若要從檔案傳輸到攝影機:
- 從 [檔案] 功能表中,點擊 [設定輸入檔],然後選取 DV 檔案。 檔案必須符合選取的模式(類型 1 或類型 2)。
- 從 [圖形模式] 功能表中,選擇 [文件到 DV] 模式(類型 1 或類型 2,有或無預覽)。
- 點選 「播放」。
- 若要將資料記錄到磁帶,請按 記錄。
- 若要停止傳輸,請按一下 停止。
如果攝影機處於 VTR 模式,使用者可以透過應用程式的 VCR 樣式按鈕來控制傳輸機制。 若要搜尋磁帶,請輸入目標時間碼,然後按下 [搜尋] 按鈕。
若要限制應用程式擷取的數據量,請從 [檔案] 功能表選擇 [擷取大小]。
若要檢查磁帶格式 (NTSC 或 PAL),請從 [選項] 功能表選擇 [[檢查磁帶]。
若要變更預覽視窗的大小,請從 [選項] 功能表中,選擇 [變更譯碼大小] 。
程序設計注意事項
此應用程式的主要目的是示範如何建置各種 DV 擷取和傳輸圖表。
裝置抵達和移除
應用程式會使用兩種不同的技術來處理裝置抵達和移除。 針對裝置抵達,應用程式的訊息迴圈會回應WM_DEVICECHANGE訊息。 針對裝置移除,應用程式會響應篩選圖表管理員中的 EC_DEVICE_LOST 事件。 雖然EC_DEVICE_LOST事件取決於篩選圖表中的裝置是否存在,但任一種方法都適用。
應用程式一次只會處理一部裝置。 如果移除目前的裝置,應用程式會在系統上尋找另一個 DV 裝置。
在某些 DV 攝影機上,用戶必須在相機模式與 VTR 模式之間切換裝置時關閉裝置,這會觸發裝置遺失的訊息。 應用程式會啟用或停用適當的功能表命令來回應。 不過,如果使用者在模式之間快速切換,攝影機可能不會產生裝置遺失的訊息。 您可以從 [選項] 功能表中選擇 [重新整理模式],來強制更新功能表。 有些 DV 攝影機可以在不關閉的情況下切換模式,但只有在切換至 VTR 模式時才會傳送裝置遺失的訊息。
裝置控制
Play 和 Record 按鈕的功能取決於目前模式:
- 預覽:篩選圖表會自動執行。 [播放 ] 按鈕的 [] 按鈕會啟動傳輸。
- 擷取至檔案:[Record] 按鈕會執行圖形,而 [播放] 按鈕會啟動傳輸。
- 傳輸至裝置:[播放] 按鈕會執行圖形,而 [Record] 按鈕會啟動傳輸。
範例應用程式不會執行畫面精確的擷取。 在各種時間點,應用程式會呼叫 Sleep 函式,等待裝置回應。 具有通知功能的較新的 DV 攝影機會在裝置狀態變更時送出通知。 較舊的裝置可能不支援通知;針對範例的目的,呼叫 Sleep 是更簡單的解決方案。
下載範例
若要下載 DirectShow SDK 範例,請安裝最新版的 Windows SDK。
此範例會安裝在下列路徑下:[SDK Root]\Samples\Multimedia\DirectShow\Capture\DVApp。
相關主題
-
DirectShow 中的數位視訊