使用DirectX.Capture.dll和DShowNET.dll捕獲視頻程序

Sample Image - DirectXCapture.jpg  以下來自:http://www.codeproject.com/cs/media/directxcapture.asp 我簡單翻譯下,幫助以下英文不太好的朋友

 提供示例下載: http://www.cnblogs.com/Files/mgod/DirectXCapture_src.zip http://www.cnblogs.com/Files/mgod/DirectXCapture_demo.zip

 

description:
現在我就把我用的類庫,介紹給大家。DirectX.Capture Class Library(By Brian Low.)是我在codeproject上尋找的類庫,它完全由C#編寫,基於directshow.net類庫,用於實現音頻和視頻的捕捉,並且可以保存爲avi文件,你可以很方便的在codeproject上下載到這兩個類庫的源文件。 <script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script> <iframe height="" frameborder="0" width="" scrolling="no" allowtransparency="true" hspace="0" vspace="0" marginheight="0" marginwidth="0" src="http://pagead2.googlesyndication.com/pagead/ads?client=undefined&dt=1214286053949&lmt=1214286053&format=undefinedxundefined&output=html&correlator=1214286053948&url=http%3A%2F%2Fwww.cnblogs.com%2Fmgod%2Farchive%2F2008%2F06%2F18%2F1224353.html&ref=http%3A%2F%2Fmgod.cnblogs.com%2F&frm=0&cc=18&ga_vid=929558564.1212471679&ga_sid=1214286054&ga_hid=87025556&ga_fc=true&flash=8.0.22&u_h=900&u_w=1440&u_ah=848&u_aw=1440&u_cd=32&u_tz=480&u_his=3&u_nplug=11&u_nmime=26" name="google_ads_frame"></iframe> 該類庫的主要特點:
  • 可以列舉和選擇所有音視頻的硬件設備
  • 可以設置音頻和視頻相關屬性,例如幀速率,大小,採樣頻率等
  • 支持音視頻壓縮編碼
  • 支持視頻預覽
  • 支持電視接口
  • 支持混音
  • 可以顯示硬件驅動的屬性
  • 包含了標準的MSDN式的幫助文檔
使用該類庫的時候必須同時引入DirectX.Capture.dll和DShowNET.dll,到你的項目裏。

例程1:

using DirectX.Capture



// 此時使用默認的音視頻的首選設備進行捕獲



Capture capture = new Capture( Filters.VideoInputDevices[0],

Filters.AudioInputDevices[0] );



// Start capturing

capture.Start();



// Stop capturing

capture.Stop();



例程2:

Capture capture = new Capture( Filters.VideoInputDevices[0],

Filters.AudioInputDevices[1] );



//這裏可以設置使用哪種壓縮編碼方式

capture.VideoCompressor = Filters.VideoCompressors[0];

capture.AudioCompressor = Filters.AudioCompressors[0];



capture.FrameRate = 29.997;                 // NTSC

capture.FrameSize = new Size( 640, 480 );   // 640x480

capture.AudioSamplingRate = 44100;          // 44.1 kHz

capture.AudioSampleSize = 16;               // 16-bit

capture.AudioChannels = 1;                  // Mono



capture.Filename = "C:MyVideo.avi";



capture.Start();

...

capture.Stop();

例程3:關於預覽

// Start preview

capture.PreviewWindow = myPanelControl;



// Stop preview

capture.PreviewWindow = null;





該類庫每次都會從設備的驅動程序中更新最新支持的屬性,因此你完全沒有必要理會,設備到底是不是支持特定屬性,只要從支持的屬性中選擇即可





當然該類庫,也有一些問題,比如說關於電視卡的支持並不是很好,但是如果你不用的話,僅僅操作普通的視頻和音頻設備,該類庫還是非常好用的,
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章