2013-01-17 156 views
4

我正在嘗試編寫一些代碼來捕獲與DirectShow過濾器的麥克風和立體聲混音。首先,我試圖使用Windows SDK中的GraphEdit設置過濾器。我將捕捉設備設置爲麥克風和立體聲混音,然後將捕捉引腳從它們兩個連接到AVI Mux的輸入01和輸入02,然後將AVI輸出引腳連接到文件編輯器的輸入引腳。當我運行圖時,我得到從麥克風+立體聲混音DirectShow聲音捕獲

此圖不能播放。未指定的錯誤(返回碼:0x80004005)

我已經搜索了這個錯誤很多,我似乎無法找到答案。

如果我嘗試將它們分別連接到每個WAV Dest過濾器,我會得到相同的錯誤。出於某種原因,我無法理解,它不會讓我捕捉到這兩者。 StereoMix是在模擬麥克風時捕捉它嗎?

如果我試圖從他們那裏捕獲一個它的作品,但我需要從兩個捕獲同時。如果我將麥克風設置爲輸出到揚聲器,那麼我可以錄製它們兩個,但這並不能真正幫助我,因爲用戶可以在揚聲器中聽到自己的聲音,這真的會讓人分心。

我也嘗試和成功記錄與WASAPI環回,但我需要一些向後兼容性由於記錄與WASAPI環回僅適用於Vista或Windows 7

我看着PortAudioFFmpeg但我不能讓這個計劃比現在複雜化。我該怎麼辦?

回答

0

我已經做了一些進一步的研究。顯然這是一個非常棘手的情況。我沒有找到有關DirectShow過濾器的答案。

某些電腦沒有支持StereoMix的聲卡。唯一可以在Windows XP上運行的解決方案是使用Windows DDK創建虛擬音頻驅動程序,將其設置爲默認設備,將緩衝區傳遞給真正的音頻設備(以防止音頻輸出)和我的應用程序。

與此同時,我可以使用DirectShow過濾器從麥克風捕獲音頻。

下面是來自微軟的音頻驅動程序文件:http://msdn.microsoft.com/en-us/library/windows/hardware/ff537871%28v=vs.85%29.aspx

我不是很在這些問題上精通。我希望這可以幫助任何情況相同的人。如果有人有任何其他建議,請讓我知道。

+0

很難說出爲什麼你有從兩個設備同時捕獲的問題。它應該是可能的,即使在XP下(我不記得全局約束),可能是特定於您正在使用的硬件。 –

+0

我在兩臺獨立的機器上試過同樣的事情。一個運行VIA聲卡,另一個運行Realtek聲卡,驅動程序安裝正確。兩個彈出相同的未指定的錯誤。 –

+0

本教程將演示如何檢測DirectShow以及如何使用麥克風記錄它:http://free-tutorials.org/how-to-record-sound-from-microphone-with-ffmpeg/ –