如何取得擷取盒裡的聲音 |
答題得分者是:HikaruGo
|
Yu-Fan
一般會員 發表:9 回覆:18 積分:5 註冊:2007-07-17 發送簡訊給我 |
各位先進您好:
小弟買了一台pinnacle 510-USB 的擷取盒,它有Video in、 S-Video in及Audio in的接口,透過USB與電腦連結 現在我利用DSPACK可以取得並切換Video及S-Video的訊號,但是卻一直無法得到聲音的部份 對於Audio 的部份,本想用waveInOpen的方式取得 但是用waveInGetDevCaps or waveInGetDevCaps都看不到該擷取盒的裝置 連用mixerGetDevCaps也找不到,全都只能看到電腦音效的部分而已 所以要請問各位先進,還有什麼方式可以讓我得到擷取盒擷取到的聲音 或是指點個方向讓我去試吧!謝謝!! |
HikaruGo
中階會員 發表:22 回覆:69 積分:88 註冊:2007-12-09 發送簡訊給我 |
|
Yu-Fan
一般會員 發表:9 回覆:18 積分:5 註冊:2007-07-17 發送簡訊給我 |
HikaruGo大大:
我用graphedit 試了一下,Audio Capture Devices 只有電腦那個聲卡 但是Video Capture Devices就可以看到那個擷取盒 這樣是對的嗎??我有試過網路上很多種類似的程式,但是Audio 的部份都只有電腦的聲卡 還有你說的"PS:也有可能你的CrossBar 音頻 沒有對正確" 是什麼意思,我不是很清楚 我對於DirectShow不是很懂,都是從下面的文章學的 如何安裝dspack裡的directshow元件及使用 http://delphi.ktop.com.tw/board.php?cid=168&fid=921&tid=37755 請問關於DSPack使用的問題 http://delphi.ktop.com.tw/board.php?cid=168&fid=921&tid=35690 不過我用VideoGrabber1的VCL就可以在Audio Capture Devices 的部分選擇該擷取盒 也可以直接錄音,但就是不知道是用什麼方式做到的 |
Yu-Fan
一般會員 發表:9 回覆:18 積分:5 註冊:2007-07-17 發送簡訊給我 |
|
Yu-Fan
一般會員 發表:9 回覆:18 積分:5 註冊:2007-07-17 發送簡訊給我 |
|
HikaruGo
中階會員 發表:22 回覆:69 積分:88 註冊:2007-12-09 發送簡訊給我 |
|
Yu-Fan
一般會員 發表:9 回覆:18 積分:5 註冊:2007-07-17 發送簡訊給我 |
|
HikaruGo
中階會員 發表:22 回覆:69 積分:88 註冊:2007-12-09 發送簡訊給我 |
參考目錄 AudioRender
看起來為 DirectSound Device 沒有設對嗎? Device Index 問題? 若音頻重音效卡出來時 要多使用 參考目錄 Audio Captur Souce, 依實體卡略有不同 此圖短缺一個 ,ViedoRender (參考目錄:DirectShow Filters) (第一個區塊為 參考目錄:ViedoCaptureSource,PS:類比TV卡才有CrossBar) 參考指令 : RenderStream( ) RenderStream 事先要指定正確的Filter <---( AudioRender與ViedoRender) 也就是把圖轉成Code. 當然 Video Out -- > ViedoRender 中間可以掛一些 Fileter 處理影像如ffDShow (功能滿強大的),可以參考站內記的有人介紹過, 因為 Video in 如 tv 訊號 WebCam....品質都不佳 ,此時可以掛 ffDshow 改善輸出品質(如柔化,去雜訊...) |
Yu-Fan
一般會員 發表:9 回覆:18 積分:5 註冊:2007-07-17 發送簡訊給我 |
|
Yu-Fan
一般會員 發表:9 回覆:18 積分:5 註冊:2007-07-17 發送簡訊給我 |
請問大大們
用new TSysDevEnum(CLSID_AudioRendererCategory)的方法可以得到聲卡的input 用new TSysDevEnum(CLSID_VideoInputDeviceCategory)再配合EnumPins可以得到"Audio out" pin 但是可以使用RenderStream來連結嗎? 映象中RenderStream是不是只能有一個output port才可以用 我應該用什麼方法把得到的Audio Output pin 及 聲卡 Input pin連結呢? 麻煩大大們提點一下,謝謝!! |
Yu-Fan
一般會員 發表:9 回覆:18 積分:5 註冊:2007-07-17 發送簡訊給我 |
貼上"未完成"的程式碼,請大大們幫忙看一下,謝謝!!
[code cpp] void __fastcall TForm1::Button2Click(TObject *Sender) { //Get Video capturer SysDev = new TSysDevEnum(CLSID_VideoInputDeviceCategory); //Get Audio Render SysDevAu = new TSysDevEnum(CLSID_AudioRendererCategory); FilterGraph1->ClearGraph(); FilterGraph1->Active = false; Filter1->BaseFilter->Moniker = SysDev->GetMoniker(0); Filter2->BaseFilter->Moniker = SysDevAu->GetMoniker(0); FilterGraph1->Active = true; ICaptureGraphBuilder2 *Graph = NULL; IBaseFilter *SourceFilter = NULL; IBaseFilter *VideoFilter = NULL; IBaseFilter *AudioFilter = NULL; CheckDSError(Filter1->QueryInterface(IID_IBaseFilter, &SourceFilter)); CheckDSError(Filter2->QueryInterface(IID_IBaseFilter, &AudioFilter)); CheckDSError(FilterGraph1->QueryInterface(IID_ICaptureGraphBuilder2, &Graph)); CheckDSError(VideoWindow1->QueryInterface(IID_IBaseFilter, &VideoFilter)); HRESULT hr; hr = Graph->FindInterface(&PIN_CATEGORY_CAPTURE, NULL, SourceFilter, IID_IAMCrossbar, (void**)&pXBar1); if (SUCCEEDED(hr)) { //Find control pin DisplayCrossbarInfo(pXBar1); pXBar1->Release(); } //Find pins IEnumPins *EnumPins; IPin *OutPin; IPin *InPin; ULONG fetched; PIN_INFO pinfo; PIN_DIRECTION inout; String pinName; //Find Audio output pin from Video capturer SourceFilter->EnumPins(&EnumPins); EnumPins->Reset(); while(EnumPins->Next(1,&OutPin, &fetched)==S_OK) { OutPin->QueryPinInfo(&pinfo); pinfo.achName[0]=' '; pinName=pinfo.achName; if(pinName.Pos("Audio out")) { break; } pinfo.pFilter->Release(); } EnumPins->Release(); //Find Audio input pin AudioFilter->EnumPins(&EnumPins); EnumPins->Reset(); EnumPins->Next(1, &InPin, &fetched); EnumPins->Release(); //得到OutPin 是 Audio out and Inpin 是 Sound Card in //但是不知道怎麼連接 Graph->RenderStream(&PIN_CATEGORY_PREVIEW, NULL, SourceFilter, NULL, VideoFilter); Graph->RenderStream(&PIN_CATEGORY_PREVIEW,NULL,SourceFilter, NULL,AudioFilter); //影像部分沒問題,但是沒聲音 //我知道第二行有問題,但就不知道怎麼改 FilterGraph1->Play(); Graph->Release(); VideoFilter->Release(); SourceFilter->Release(); AudioFilter->Release(); } [/code]
編輯記錄
Yu-Fan 重新編輯於 2009-01-07 11:31:36, 註解 無‧
Yu-Fan 重新編輯於 2009-01-07 11:35:59, 註解 無‧ Yu-Fan 重新編輯於 2009-01-07 11:39:16, 註解 無‧ Yu-Fan 重新編輯於 2009-01-07 11:42:06, 註解 無‧ Yu-Fan 重新編輯於 2009-01-07 11:44:33, 註解 無‧ Yu-Fan 重新編輯於 2009-01-07 11:51:14, 註解 無‧ Yu-Fan 重新編輯於 2009-01-07 11:56:04, 註解 無‧ Yu-Fan 重新編輯於 2009-01-07 11:57:34, 註解 無‧ |
Yu-Fan
一般會員 發表:9 回覆:18 積分:5 註冊:2007-07-17 發送簡訊給我 |
|
taishyang
站務副站長 發表:377 回覆:5490 積分:4563 註冊:2002-10-08 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |