欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

C#結(jié)合AForge實(shí)現(xiàn)攝像頭錄像

 更新時(shí)間:2017年09月24日 16:00:03   作者:asml  
最近由于興趣學(xué)習(xí)了下在C#上使用AForge錄制攝像頭視頻并壓縮編碼。總體上來說這個(gè)第三方.net視覺開發(fā)庫還是比較穩(wěn)定的

輸出為MP4需要用到ffmpeg相關(guān)的文件,我打包的庫已經(jīng)帶了,去官網(wǎng)找的庫可以在這個(gè)目錄找到:

2:

添加這些引用:

3:

兩個(gè)全局變量:

//用來操作攝像頭
 private VideoCaptureDevice Camera = null;
 //用來把每一幀圖像編碼到視頻文件
 private VideoFileWriter VideoOutPut = new VideoFileWriter();

開始代碼:

//獲取攝像頭列表
var devs = new FilterInfoCollection(FilterCategory.VideoInputDevice);

//實(shí)例化設(shè)備控制類(我選了第1個(gè))
Camera = new VideoCaptureDevice(devs[0].MonikerString);

//配置錄像參數(shù)(寬,高,幀率,比特率等參數(shù))VideoCapabilities這個(gè)屬性會(huì)返回?cái)z像頭支持哪些配置,從這里面選一個(gè)賦值接即可,我選了第1個(gè)
Camera.VideoResolution = Camera.VideoCapabilities[0];

//設(shè)置回調(diào),aforge會(huì)不斷從這個(gè)回調(diào)推出圖像數(shù)據(jù)
Camera.NewFrame += Camera_NewFrame;

//打開攝像頭
Camera.Start();

//打開錄像文件(如果沒有則創(chuàng)建,如果有也會(huì)清空),這里還有關(guān)于
VideoOutPut.Open("E:/VIDEO.MP4", 
    Camera.VideoResolution.FrameSize.Width, 
    Camera.VideoResolution.FrameSize.Height, 
    Camera.VideoResolution.AverageFrameRate, 
    VideoCodec.MPEG4, 
    Camera.VideoResolution.BitCount);
給AForge輸出圖像數(shù)據(jù)的回調(diào)方法:
//圖像緩存
private Bitmap bmp = new Bitmap(1, 1);

//攝像頭輸出回調(diào)
private void Camera_NewFrame(object sender, NewFrameEventArgs eventArgs)
{
  //寫到文件
  VideoOutPut.WriteVideoFrame(eventArgs.Frame);
  lock (bmp)
  {
    //釋放上一個(gè)緩存
    bmp.Dispose();
    //保存一份緩存
    bmp = eventArgs.Frame.Clone() as Bitmap;
  }
}

結(jié)束代碼:

      //停攝像頭
      Camera.Stop();

      //關(guān)閉錄像文件,如果忘了不關(guān)閉,將會(huì)得到一個(gè)損壞的文件,無法播放
      VideoOutPut.Close();

4:

修改App.config,兼容net2.0的一些東西:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
 <startup useLegacyV2RuntimeActivationPolicy="true">
  <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5"/>
 </startup>
 <supportedRuntime version="v2.0.50727"/>
</configuration>

相關(guān)文章

  • C#中DataGridView動(dòng)態(tài)添加行及添加列的方法

    C#中DataGridView動(dòng)態(tài)添加行及添加列的方法

    這篇文章主要介紹了C#中DataGridView動(dòng)態(tài)添加行及添加列的方法,涉及C#中DataGridView針對(duì)行與列動(dòng)態(tài)操作的相關(guān)技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2015-09-09
  • Silverlight實(shí)現(xiàn)跑馬燈動(dòng)畫

    Silverlight實(shí)現(xiàn)跑馬燈動(dòng)畫

    這篇文章主要為大家詳細(xì)介紹了Silverlight實(shí)現(xiàn)跑馬燈動(dòng)畫,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-07-07
  • C#中除去所有在HTML元素中標(biāo)記

    C#中除去所有在HTML元素中標(biāo)記

    C#中除去所有在HTML元素中標(biāo)記...
    2007-03-03
  • C#中Invoke和BeginInvoke區(qū)別小結(jié)

    C#中Invoke和BeginInvoke區(qū)別小結(jié)

    有時(shí)候,我們不得不跨線程調(diào)用主界面的控件來進(jìn)行操作,所以為了方便的解決問題,.net為我們提供了Invoke?與beginInvoke,那么Invoke和BeginInvoke區(qū)別在哪,本文就來詳細(xì)的介紹一下
    2023-08-08
  • 結(jié)合Visual C#開發(fā)環(huán)境講解C#中事件的訂閱和取消訂閱

    結(jié)合Visual C#開發(fā)環(huán)境講解C#中事件的訂閱和取消訂閱

    這篇文章主要介紹了C#中事件的訂閱和取消訂閱,結(jié)合Visual C#開發(fā)環(huán)境來進(jìn)行講解,Visual C#被集成在微軟的IDE程序Visual Studio中,需要的朋友可以參考下
    2016-01-01
  • C#生成不重復(fù)隨機(jī)字符串類

    C#生成不重復(fù)隨機(jī)字符串類

    這篇文章主要介紹了C#生成不重復(fù)隨機(jī)字符串類,涉及C#隨機(jī)數(shù)與字符串的操作技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2015-03-03
  • C# 獲取屬性名的方法

    C# 獲取屬性名的方法

    C# 獲取屬性名的方法實(shí)例,需要的朋友可以參考一下
    2013-03-03
  • C#查看/寫入日志到Windows事件查看器的操作方法

    C#查看/寫入日志到Windows事件查看器的操作方法

    Windows 操作系統(tǒng)將與計(jì)算機(jī)的系統(tǒng)性能、應(yīng)用程序和安全方面相關(guān)的每個(gè)事件記錄在 C:\WINDOWS\system32\winevt 的日志中,事件查看器從這些原始事件日志中讀取信息,然后以可讀格式呈現(xiàn)信息,本文介紹了C#如何查看/寫入日志到Windows事件查看器,需要的朋友可以參考下
    2024-09-09
  • C#變量命名規(guī)則小結(jié)

    C#變量命名規(guī)則小結(jié)

    本文主要介紹了C#變量命名規(guī)則小結(jié),文中介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-09-09
  • c#預(yù)處理指令分析

    c#預(yù)處理指令分析

    這篇文章主要介紹了c#預(yù)處理指令的相關(guān)資料,幫助大家更好的理解和學(xué)習(xí)c#,感興趣的朋友可以了解下
    2020-08-08

最新評(píng)論