17

我知道有很多这样的问题。

但我不想使用 Windows 媒体编码器 9,因为它是一个问题,然后不再支持它。

我知道,一种可能性是捕获大量屏幕截图并创建视频,ffmpeg但我不想使用第三方可执行文件。

.net唯一的解决方案吗?

4

2 回答 2

10

答案是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) { }
        }
于 2011-07-06T19:50:00.037 回答
3

根据评论反馈编辑:

名为 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 的样本,我的运气会更好。

于 2016-03-09T01:04:04.567 回答