Preview

Вестник кибернетики

Расширенный поиск

Программное обеспечение для записи экрана рабочего стола

https://doi.org/10.35266/1999-7604-2025-1-1

Содержание

Перейти к:

Аннотация

В данной статье представлено программное обеспечение для записи звука и видео с использованием библиотек NAudio и Accord.NET. Программа разработана на платформе Visual Studio 2022 с применением языка программирования C# WPF. Основной целью работы было создание доступного и эффективного инструмента для записи экрана рабочего стола компьютера. Методология исследования включала анализ технических аспектов разработки программного обеспечения и экспериментальное тестирование разработанной системы. Результаты показали, что система обладает простым интерфейсом, гибкими настройками и обеспечивает высокое качество записи звука и видео. Подход программы к выбору дисплея для записи и захвату экрана рабочего стола является уникальным и обеспечивает гибкость пользовательских возможностей.

Для цитирования:


Берестин Д.К., Еловой С.Г. Программное обеспечение для записи экрана рабочего стола. Вестник кибернетики. 2025;24(1):6-10. https://doi.org/10.35266/1999-7604-2025-1-1

For citation:


Berestin D.K., Elovoy S.G. Software for desktop screen recording. Proceedings in Cybernetics. 2025;24(1):6-10. (In Russ.) https://doi.org/10.35266/1999-7604-2025-1-1

ВВЕДЕНИЕ

В современном информационном обществе, где визуальные и мультимедийные материалы занимают все более важное место, создание и обмен видеоконтентом становятся неотъемлемой частью нашей повседневной жизни. От обучения и демонстрации рабочих процессов до создания обучающих видеоуроков и игрового стриминга запись экрана рабочего стола является необходимой задачей.

В данной статье представлено программное обеспечение, разработанное на платформе Visual Studio 2022 с использованием фреймворка C# WPF, которое предназначено для удовлетворения этой потребности. Данное программное обеспечение спроектировано таким образом, чтобы оно могло быть доступно и использовано широким кругом пользователей, включая как опытных специалистов, так и тех, кто только начинает свой путь в мире записи экрана. При этом основным преимуществом является легкость использования и доступность для всех [1].

МАТЕРИАЛЫ И МЕТОДЫ

При разработке программного обеспечения выбор пал на библиотеки NAudio и Accord, предназначенные для записи звука и видео. Работа с библиотекой NAudio по своей сути проста. Для того чтобы начать запись звука с использованием NAudio, первым шагом является создание объекта WaveInEvent, который предоставляет доступ к звуковому вводу. Пример инициализации объекта WaveInEvent и начала записи звука представлен ниже и в источниках [2][3]:

// Инициализация объекта для записи звука
private WaveInEvent waveIn;

// Метод для начала записи звука

private void StartAudioRecording()

{

waveIn = new WaveInEvent();

waveIn.DataAvailable += WaveIn_DataAvailable;

 

// Настройка формата звука (частота дискретизации, битность и т.д.)

waveIn.WaveFormat = new WaveFormat(44100,WaveInEvent.GetCapabilities(0).Channels);

 

// Начало записи звука

waveIn.StartRecording();

}

Для записи данных звукового ввода, необходимо обработать событие DataAvailable, которое возникает при поступлении новых аудиоданных. Пример обработки этого события:

private void WaveIn_DataAvailable(object sender, WaveInEventArgs e)

{

writer?.Write(e.Buffer, 0, e.BytesRecorded);

}

Библиотека Accord.NET обеспечивает возможность записи видео. Для начала записи видео создается объект VideoFileWriter и производится его настройка. Пример кода инициализации и начала записи видео представлен в источниках [4][5]:

// Инициализация объекта для записи видео

private VideoFileWriter videoWriter;

// Метод для начала записи видео

private void StartAudioRecording()

{

// Настройка параметров видео (ширина, высота, кол-во кадров)

int width = 1920;

int height = 1080;

int fps = 30;

// Открытие файла для записи

videoWriter.Open(Path.Combine(savePath, fileName), width, height, fps, VideoCodec.MPEG4, bitrate);

}

В коде выбор определенного дисплея осуществляется с использованием библиотеки System.Windows.Forms.Screen, которая предоставляет информацию о подключенных дисплеях. В данной реализации при выборе дисплея для записи осуществляется захват рабочего стола выбранного монитора. Информацию можно найти в источнике [6]:

//Получение списка доступных дисплеев

foreach (Screen screen in Screen.AllScreens)

{

displayInfoList.Add(new DisplayInfo

{

DeviceName = screen.DeviceName

DisplayName = “Дисплей “ + (displayInfoList.Count + 1)

});

}


//Источник данных для ComboBox

DisplayBox.ItemsSource = displayInfoList;

DisplayBox.DisplayMemberPath = “DisplayName”;

DisplayBox.SelectedValuePath = “ DeviceName”;

На рис. 1 представлен элемент комбинированного списка, в котором будут храниться списки доступных дисплеев для захвата. Информацию о каждом дисплее, такую как имя устройства, будем хранить в пользовательском классе DisplayInfo. В дальнейшем из пользовательского класса DisplayInfo этот список будет передаваться в комбинированный список, который реализован с помощью элемента ComboBox, из которого пользователь будет выбирать необходимый ему дисплей для захвата и записи информации.

Рис. 1. Интерфейс комбинированного списка при выборе дисплея

Примечание: составлено авторами.

После того как пользователь выберет необходимый ему дисплей, при помощи элемента комбинированного списка, происходит захват дисплея программой. Данный функционал реализован с использованием класса ScreenCaptureStream из библиотеки Accord.NET. Пример реализации кода представлен ниже [7]:

// Определение экрана для записи на основе выбранного имени

Screen selectedScreen = Screen.AllScreens.FirstOrDefault(s => s.DeviceName == selectedDeviceName);

if (selectedScreen != null)

{

// Запускаем захват рабочего стола выбранного дисплея

screenCapture = new ScreenCaptureStream(selectedScreen.Bounds, fps);

screenCapture.NewFrame += ScreenCapture_NewFrame;

screenCapture.Start();

}

В строковой переменной selectedDeviceName содержится имя выбранного дисплея. Далее с использованием класса ScreenCaptureStream происходит захват информации рабочего стола с дисплея, который выбрал пользователь, после чего запускается процесс записи видео. Данный подход и интерфейс наиболее удобен в случае большого количества используемых экранов пользователем [8].

РЕЗУЛЬТАТЫ И ИХ ОБСУЖДЕНИЕ

Для записи с рабочего стола существует довольно обширный перечень программного обеспечения. Разрабатываемую программу с предварительным названием MitRec сравнили с несколькими аналогичными программами, такими как OBS, Bandicam и Fraps. Для сравнения программного обеспечения между собой были выбраны следующие критерии: стоимость, объем готового файла, нагрузка на систему, наличие обновлений и совместимость с операционными системами. Результаты сравнения представлены в таблице.

Таблица

Сравнение аналогов программного обеспечения

Критерии

OBS

Bandicam

Fraps

MitREC

Стоимость

Бесплатно, открытый код

Платно
(нельзя купить)

Бесплатно

Бесплатно, открытый код

Объем готового файла, Мб за 5 сек.

3,7 Мб
(5 секунд)

3 Мб
(5 секунд)

102 Мб
(5 секунд)

2,90 Мб
(5 секунд)

Нагрузка на систему

Низкая

Низкая

Высокая

Низкая

Обновления

Постоянные обновления

Постоянные обновления

Больше не обновляется

Постоянные обновления

ОС

Windows 11/10, macOS 11, Linux

Windows 11/10/8/7 (64-bit)

Windows XP, 2003, Vista, and Windows 7

Windows 11/10

Примечание: составлено авторами.

Разрабатываемый программный продукт для записи информации с рабочего стола будет предлагать следующие отличительные особенности: бесплатное использование, низкая нагрузка на операционную систему, а также планируется дальнейшее регулярное обновление программного обеспечения в виде расширения функций. В настоящее время разрабатываемая программа «MitRec» совместима только с операционными системами семейства Windows, но в дальнейшем планируется адаптировать разрабатываемое программное обеспечение и на других операционных системах.

ЗАКЛЮЧЕНИЕ

При разработке программного обеспечения для записи экрана рабочего стола были достигнуты следующие результаты: рассмотрены основные аспекты для записи звука и видео с использованием библиотек NAudio и Accord.NET. Alpha-версия программного продукта была разработана с использованием систем разработки Visual Studio 2022 и фреймворка C# WPF, которая является одним из важных инструментов в сфере создания видео контента, обучения, и демонстрации рабочих процессов.

Одним из основных достоинств разработанной alpha-версии программного продукта являются его доступность, легкость использования и возможность выбора нужного дисплея для записи, что делает его наиболее универсальным инструментом как для опытных пользователей, так и для новичков. Библиотеки NAudio и Accord.NET позволяют достичь высокого качества записи звука и видео. Использование языка программирования C# и платформы WPF необходимо для обеспечения простого и понятного интерфейса, а также для обеспечения простой архитектуры приложения для дальнейшего расширения его функциональных возможностей.

Разработанная alpha-версия программного продукта представляет собой эффективный и простой инструмент для записи информации экрана рабочего стола компьютера, который может быть полезен в различных областях, таких как обучение, демонстрация программного обеспечения и игровая индустрия.

Список литературы

1. Сайт о программировании. URL: https://metanit.com/sharp (дата обращения: 20.01.2025).

2. Прайс М. Д. C# 10 и .NET 6. Современная кросс-платформенная разработка. СПб. : Питер, 2023. 848 с.

3. Стиллмен Э., Грин Д. Head First. Изучаем C#.СПб. : Питер, 2022. 768 с.

4. Гриффитс И. Программируем на C# 8.0. Разработка приложений. СПб. : Питер, 2021. 944 с.

5. Video Processing in C# using Accord.NET. URL:https://accord-framework.net/docs/html/T_Accord_Video_FFMPEG_VideoFileWriter.htm (дата обращения: 20.01.2025).

6. Документация по интегрированной среде разработки Visual Studio. URL: https://learn.microsoft.com/ru-ru/visualstudio/ide/?view=vs-2022 (дата обращения: 20.01.2025).

7. Official C# Programming Guide. URL: https://docs.microsoft.com/en-us/dotnet/csharp/ ( дата обращения: 20.01.2025).

8. Screen Capture in C#. URL: https://www.csharpcorner.com/article/screen-capture-in-c-sharp/ (дата обращения: 20.01.2025).


Об авторах

Д. К. Берестин
Сургутский государственный университет, Сургут
Россия

кандидат физико-математических наук, доцент



С. Г. Еловой
Сургутский государственный университет, Сургут
Россия

старший преподаватель



Рецензия

Для цитирования:


Берестин Д.К., Еловой С.Г. Программное обеспечение для записи экрана рабочего стола. Вестник кибернетики. 2025;24(1):6-10. https://doi.org/10.35266/1999-7604-2025-1-1

For citation:


Berestin D.K., Elovoy S.G. Software for desktop screen recording. Proceedings in Cybernetics. 2025;24(1):6-10. (In Russ.) https://doi.org/10.35266/1999-7604-2025-1-1

Просмотров: 197


Creative Commons License
Контент доступен под лицензией Creative Commons Attribution 4.0 License.


ISSN 1999-7604 (Online)