C#录制视频
这是一个使用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, , true);
还可以设置画质(第四个参数)Raw为原画画质,建议不要使用(一分钟几个G),默认为MSMPEG4v2(高清,标清)
recorder = new ScreenRecorder(recorderPath, , 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
C#录制视频的更多相关文章
- bandicam如何录制视频
我们一般都很熟悉这类软件:屏幕录制专家和kk录制等,这些都是国内比较优秀的作品.不过exe的封装格式以及录制的清晰度让人很纠结.所以这里要为大家分享的是一款韩国人写录制软件Bandicam.Bandi ...
- Android手机录制视频 实时传输(转载)
最近调研android视频录制.另一部手机实时观看,大致有以下几种思路. 1. android手机充当服务器,使用NanoHTTPD充当服务器,另一部手机或者pc通过输入http://手机的ip:80 ...
- 【Android】 Android实现录音、播音、录制视频功能
智能手机操作系统IOS与Android平分天下(PS:WP与其他的直接无视了),而Android的免费招来了一大堆厂商分分向Android示好,故Android可能会有“较好”的前景. Android ...
- iOS AVCaptureVideoDataOutputSampleBufferDelegate 录制视频
iOS AVCaptureVideoDataOutputSampleBufferDelegate 录制视频 应用场景: 使用AVFoundation提供的API, 我们可以从 AVCaptureVid ...
- 使用MediaRecorder录制视频短片
MediaRecorder除了可用于录制音频之外,还可用于录制视频,使用MediaRecorder录制视频与录制音频的步骤基本相同.只是录制视频时不仅需要采集声音,还需要采集图像.为了让MediaRe ...
- iOS 三种录制视频方式
随着每一代 iPhone 处理能力和相机硬件配置的提高,使用它来捕获视频也变得更加有意思.它们小巧,轻便,低调,而且与专业摄像机之间的差距已经变得非常小,小到在某些情况下,iPhone 可以真正替代它 ...
- android开发,静音录制视频,在一般清晰度的前提下保证文件大小越小越好
public void startRecord() { mediarecorder = new MediaRecorder();// 创建mediarecorder对象 mCamera = getCa ...
- 转:android 录制视频的Demo
转:http://blog.csdn.net/peijiangping1989/article/details/7049991 在这里给出自己的一个测试DEMO,里面注释很详细.简单的视频录制功能. ...
- Android使用的开发MediaRecorder录制视频
MediaRecorder除了使用录制音频.还可用于录制视频.关于MediaRecorder的具体解释大家能够參考<Android开发之MediaRecorder类具体解释>.使用Medi ...
- 3D图片采集与展示(SurfaceView 自适应 Camera, 录制视频, 抽取帧)
最近在做一个3D图片采集与展示. 主要功能为:自定义Camera(google 已经摈弃了Camera, 推荐使用Camera2,后续篇幅,我将会用Camera2取代Camera),围绕一个物体360 ...
随机推荐
- php parse_url linux 解析问题
耕毅 解析url函数parse_url() (PHP 4, PHP 5, PHP 7) parse_url — 解析 URL,返回其组成部分 mixed parse_url ( string $url ...
- H3C ISDN DCC基本配置示例
- Python--day65--模板语言之filter
参考的原文链接:http://www.cnblogs.com/liwenzhou/p/7931828.html Filters(过滤器) 在Django的模板语言中,通过使用 过滤器 来改变变量的显示 ...
- SQL2008 R2安装完成后开启services服务指引和 sa账号启用、数据类型
- php 变量名前加一个下划线含义
https://segmentfault.com/q/1010000006467833 一个下划线是私有变量以及私有方法两个下划线是PHP内置变量. 以下划线开头,表示为类的私有成员. 这只是个不成文 ...
- Python--day32--复习:https和http的区别;黏包;黏包问题的解决方式;
1,https和http的区别: https比较安全,传输的时候先对内容进行加密,收到后再进行解密:它的传输内容不容易拦截,就算拦截下来了,也是加密的,看不懂.但是要买证书,一年要好几万,小公司承担不 ...
- 代码片段 Powershell修改桌面壁纸
其实只不过是利用了win32函数 function Set-Wallpaper($image){ $source = @" using System; using System.Runtim ...
- linux一个例子驱动
我们介绍的驱动称为 short (Simple Hardware Operations and Raw Tests). 所有它做 的是读和写几个 8-位 端口, 从你在加载时选择的开始. 缺省地, 它 ...
- jQuery 工具类函数-字符串操作函数
调用名为$.trim的工具函数,能删除字符串中左右两边的空格符,但该函数不能删除字符串中间的空格,调用格式为: $.trim (str); 参数str表示需要删除左右两边空格符的字符串. <bo ...
- C# 使用汇编
本文告诉大家如何在 C# 里面使用汇编代码 请看 C#嵌入x86汇编--一个GPIO接口的实现 - 云+社区 - 腾讯云 C# inline-asm / 嵌入x86汇编 - 苏璃 - CSDN博客 通 ...