我知道有很多这样的问题。
但我不想使用 Windows 媒体编码器 9,因为它是一个问题,然后不再支持它。
我知道,一种可能性是捕获大量屏幕截图并创建视频,ffmpeg
但我不想使用第三方可执行文件。
有.net
唯一的解决方案吗?
我知道有很多这样的问题。
但我不想使用 Windows 媒体编码器 9,因为它是一个问题,然后不再支持它。
我知道,一种可能性是捕获大量屏幕截图并创建视频,ffmpeg
但我不想使用第三方可执行文件。
有.net
唯一的解决方案吗?
答案是Microsoft Expression Encoder。根据我的观点,这是在 vista 和 windows 7 上录制内容的最简单方法
private void CaptureMoni()
{
try
{
Rectangle _screenRectangle = Screen.PrimaryScreen.Bounds;
_screenCaptureJob = new ScreenCaptureJob();
_screenCaptureJob.CaptureRectangle = _screenRectangle;
_screenCaptureJob.ShowFlashingBoundary = true;
_screenCaptureJob.ScreenCaptureVideoProfile.FrameRate = 20;
_screenCaptureJob.CaptureMouseCursor = true;
_screenCaptureJob.OutputScreenCaptureFileName = string.Format(@"C:\test.wmv");
if (File.Exists(_screenCaptureJob.OutputScreenCaptureFileName))
{
File.Delete(_screenCaptureJob.OutputScreenCaptureFileName);
}
_screenCaptureJob.Start();
}
catch(Exception e) { }
}
根据评论反馈编辑:
名为 baSSiLL 的开发人员慷慨地分享了一个存储库,其中包含一个屏幕录制 c# 库以及一个 c# 示例项目,展示了如何使用它来捕获屏幕和麦克风。
使用示例代码开始屏幕截图非常简单:
recorder = new Recorder(_filePath,
KnownFourCCs.Codecs.X264, quality,
0, SupportedWaveFormat.WAVE_FORMAT_44S16, true, 160);
_filePath 是我要将视频保存到的文件的路径。
您可以传入各种编解码器,包括 AVI、MotionJPEG、X264 等。对于 x264,我必须先在我的机器上安装编解码器,但 AVI 开箱即用。
只有在使用 AVI 或 MotionJPEG 时,质量才会发挥作用。x264 编解码器管理自己的质量设置。
上面的 0 是我想使用的音频设备。默认为零。
它目前支持 2 种波形格式。44100 16 位立体声或单声道。
true 参数表示我希望将音频编码为 mp3 格式。我相信在选择 x264 时这是必需的,因为在 .mp4 文件中组合的未压缩音频不会为我播放。
160 是编码音频的比特率。
~~~~~
要停止录制,您只需
recorder.Dispose();
recorder = null;
一切都是开源的,因此您可以编辑记录器类并更改尺寸、每秒帧数等。
~~~~
要启动并运行此库,您需要从下面的 github/codeplex 库下载或拉取。您还可以使用 NuGet:
安装包 SharpAvi
原帖:
夏普 AVI: https ://sharpavi.codeplex.com/ 或 https://github.com/baSSiLL/SharpAvi
该库中有一个示例项目,其中有一个很棒的屏幕录像机以及用于设置/等的菜单。
我首先从这个 StackoverFlow 问题的另一个答案中找到了 Screna,但我遇到了几个问题,涉及让 Mp3 Lame 编码器正常工作。Screna 是 SharpAVI 的包装器。我发现通过删除 Screna 并关闭 SharpAvi 的样本,我的运气会更好。