2015-02-12 196 views
-1

我在Visual Studio的新一面,並且在轉換到Visual C#之前一直在VB中開發一個攝像頭捕獲項目。我一直在利用directshow庫來做到這一點,並得到了不同的結果。我可以很好地捕捉音頻和視頻,但avi/wmv文件的大小往往過大。我的目標文件大小是一個小時的視頻/音頻進入300-500 mb,視頻質量約爲640x480 @ 15 fps。我知道我可以使用幾個壓縮器/編解碼器來縮小尺寸,但大多數默認系統並沒有真正達到我的目標。我確實注意到,DirectShow庫CapWMV中的一個採樣捕獲目標範圍內的視頻,但它不捕獲音頻。所以我的問題是任何人都可以推薦一款開源的編解碼器,它可以幫助我實現這個目標,或者如果有人熟悉CapWMV示例,請解釋如果可能的話,可以將音頻捕獲納入其中?Visual C攝像頭捕獲

回答

0

CapWMV可以用來捕捉音頻。您需要在那裏配置寫入器以設置啓用音頻的配置文件,並且該寫入器將顯示音頻輸入以訪問音頻流。因爲這只是本地API的封裝,所以您需要底層WM ASF Writer的文檔。

CapWMV樣品一個硬編碼只有視頻簡檔:

private IBaseFilter ConfigAsf(ICaptureGraphBuilder2 capGraph, string szOutputFileName) 
    { 
     // ... 
      // Windows Media Video 8 for Dial-up Modem (No audio, 56 Kbps) 
      // READ THE README for info about using guids 
      Guid cat = new Guid(0x6E2A6955, 0x81DF, 0x4943, 0xBA, ...