這是一個使用C#語言制作的錄制框架(基於AForge),支持錄制桌面,多屏,聲音,攝像頭,某個應用程序的界面
1.安裝
使用此框架需要安裝擴展包Kogel.Record,可以Nuget上搜索
或者使用Nuget命令
Install-Package Kogel.Record
安裝完成包后會出現一個DLL文件夾,里面會有一些依賴的DLL
選中全部后右擊-屬性,設置復制到輸出目錄-始終復制
2.定義
需要在應用程序的主入口點初始化下全局配置
//初始化DLL配置 Global.InitDllPath();
還需要在App.config中設置兼容.NetFramework2.0
<startup useLegacyV2RuntimeActivationPolicy="true"> <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.6.1" /> <supportedRuntime version="v2.0.50727"/> </startup>
3.錄制桌面
使用ScreenRecorder類
首先創建桌面錄制類對象
//視頻存放路徑 string recorderPath = AppDomain.CurrentDomain.BaseDirectory + DateTime.Now.ToString("MMddHHmmss") + ".avi"; //初始化錄制器 (第一個參數是路徑,第二個參數是幀數,第三個參數是是否錄制聲音) var recorder = new ScreenRecorder(recorderPath, 10, true);
還可以設置畫質(第四個參數)Raw為原畫畫質,建議不要使用(一分鍾幾個G),默認為MSMPEG4v2(高清,標清)
recorder = new ScreenRecorder(recorderPath, 10, true, AForge.Video.FFMPEG.VideoCodec.Raw);
開始錄制
//開始並設置每幀回調 recorder.Start(VideoStreamer_NewFrame);
/// <summary> /// 每幀錄制幀數回調 /// </summary> /// <param name="sender"></param> /// <param name="eventArgs"></param> private void VideoStreamer_NewFrame(object sender, NewFrameEventArgs eventArgs) { //顯示圖片流 this.picScreen.Image = (Bitmap)eventArgs.Frame.Clone(); }
暫停錄制
recorder.Pause();
結束錄制
recorder.End();
第一次使用此框架VS可能會彈出警告
選中“從以下位置引發時除外”和取消選中“引發此異常類型時中斷”,此問題后續就不會再出現
4.Demo示例
此框架還支持錄制桌面,多屏,聲音,攝像頭,某個程序的界面
框架開源,完整Demo可以去Github上下載:
https://github.com/a935368322/Kogel.Record.Test.git
如有問題也可以加QQ群討論:
技術群 710217654