ТЕХНИЧЕСКИЕ НАУКИ / ENGINEERING
Научная статья УДК 004.457
https://doi.org/10.35266/1999-7604-2025-1-1
с«):
BY 4.0
Программное обеспечение для записи экрана рабочего стола
Дмитрий Константинович Берестин*, Сергей Григорьевич Еловой
Сургутский государственный университет, Сургут, Россия
Аннотация. В данной статье представлено программное обеспечение для записи звука и видео с использованием библиотек NAudio и Accord.NET. Программа разработана на платформе Visual Studio 2022 с применением языка программирования C# WPF. Основной целью работы было создание доступного и эффективного инструмента для записи экрана рабочего стола компьютера. Методология исследования включала анализ технических аспектов разработки программного обеспечения и экспериментальное тестирование разработанной системы. Результаты показали, что система обладает простым интерфейсом, гибкими настройками и обеспечивает высокое качество записи звука и видео. Подход программы к выбору дисплея для записи и захвату экрана рабочего стола является уникальным и обеспечивает гибкость пользовательских возможностей.
Ключевые слова: запись звука, запись видео, архитектура приложения
Для цитирования: Берестин Д. К., Еловой С. Г. Программное обеспечение для записи экрана рабочего стола // Вестник кибернетики. 2025. Т. 24, № 1. С. 6-10. https://doi.org/10.35266/1999-7604-2025-1-1.
Original article
Software for desktop screen recording
Dmitry K. Berestin*, Sergey G. Elovoy
Surgut State University, Surgut, Russia
Abstract. This article presents software for recording audio and video using the NAudio and Accord.NET libraries. The program is developed on the Visual Studio 2022 platform using the C# WPF programming language. The main objective of the work is to create an accessible and efficient tool for recording the computer desktop screen. The research methodology includes an analysis of the technical aspects of software development and experimental testing of the developed system. The results reveal that our system has a simple interface, flexible settings, and provides high-quality audio and video recording. In its approach to selecting a display for recording and capturing the desktop screen, the program is unique and provides flexible user options. Keywords: sound recording, video recording, application architecture
For citation: Berestin D. K., Elovoy S. G. Software for desktop screen recording. Proceedings in Cybernetics. 2025;24(1):6-10. 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 StartAudioRecord-
ing() {
waveIn = new WaveInEvent(); waveIn.DataAvailable += WaveIn_DataAvailable;
// Настройка формата звука (частота дискретизации, бит-ность и т.д.)
waveIn.WaveFormat = new Wave-Format(44100,WaveInEvent.Get-Capabilities(0).Channels);
// Начало записи звука
waveIn.StartRecording(); }
Для записи данных звукового ввода, необходимо обработать событие DataAvailable, которое возникает при поступлении новых аудиоданных. Пример обработки этого события:
private void WaveIn_Data-Available(object sender,
WaveInEventArgs e) {
writer?.Write(e.
Buffer, 0, e.BytesRecorded); }
Библиотека Accord.NET обеспечивает возможность записи видео. Для начала записи видео создается объект VideoFileWriter и производится его настройка. Пример кода инициализации и начала записи видео представлен в источниках [4, 5]:
// Инициализация объекта для записи видео
private VideoFileWriter vide-oWriter;
// Метод для начала записи видео
private void StartAudioRecord-
ing() {
// Настройка параметров видео (ширина, высота, кол-во кадров)
int width = 192 0; int height = 1080; int fps = 3 0; // Открытие файла для записи
videoWriter.Open(Path. Combine(savePath, fileName), width, height, fps, VideoCo-
dec.MPEG4, bitrate); }
В коде выбор определенного дисплея осуществляется с использованием библиотеки System.Windows.Forms.Screen, которая предоставляет информацию о подключенных дисплеях. В данной реализации при выборе
дисплея для записи осуществляется захват рабочего стола выбранного монитора. Информацию можно найти в источнике [6]:
//Получение списка доступных дисплеев
foreach (Screen screen in
Screen.AllScreens) {
displayInfoList.Add(new
Displaylnfo {
DeviceName = screen.Devi-ceName
DisplayName = "Дисплей " + (displaylnfoList.Count + 1) });
}
//Источник данных для ComboBox DisplayBox.ItemsSource = displayInfoList;
DisplayBox.DisplayMemberPath = "DisplayName";
DisplayBox.SelectedValuePath = " DeviceName";
На рис. 1 представлен элемент комбинированного списка, в котором будут храниться списки доступных дисплеев для захвата. Информацию о каждом дисплее, такую как имя устройства, будем хранить в пользовательском классе Displaylnfo. В дальнейшем из пользовательского класса Displaylnfo этот список будет передаваться в комбинированный список, который реализован с помощью элемента ComboBox, из которого пользователь будет выбирать необходимый ему дисплей для захвата и записи информации.
Рис. 1. Интерфейс комбинированного списка при выборе дисплея
Примечание: составлено авторами.
После того как пользователь выберет необходимый ему дисплей, при помощи элемента комбинированного списка, происходит захват дисплея программой. Данный функционал реализован с использованием класса ScreenCaptureStream из библиотеки Accord.NET. Пример реализации кода представлен ниже [7]: // Определение экрана для записи на основе выбранного имени
Screen selectedScreen = Screen.AllScreens.FirstOrDe-fault(s => s.DeviceName == se-lectedDeviceName);
if (selectedScreen != null) {
// Запускаем захват рабочего стола выбранного дисплея screenCapture = new Screen-CaptureStream(selectedScreen. Bounds, fps); screenCapture.NewFrame += ScreenCapture_NewFrame;
screenCapture.Start(); }
В строковой переменной selectedDevice-Name содержится имя выбранного дисплея. Далее с использованием класса ScreenCapture-Stream происходит захват информации рабочего стола с дисплея, который выбрал пользователь, после чего запускается процесс записи видео. Данный подход и интерфейс наиболее удобен в случае большого количества используемых экранов пользователем [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, которая является одним
Список источников
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 с.
из важных инструментов в сфере создания видео контента, обучения, и демонстрации рабочих процессов.
Одним из основных достоинств разработанной alpha-версии программного продукта являются его доступность, легкость использования и возможность выбора нужного дисплея для записи, что делает его наиболее универсальным инструментом как для опытных пользователей, так и для новичков. Библиотеки NAudio и Accord.NET позволяют достичь высокого качества записи звука и видео. Использование языка программирования C# и платформы WPF необходимо для обеспечения простого и понятного интерфейса, а также для обеспечения простой архитектуры приложения для дальнейшего расширения его функциональных возможностей.
Разработанная alpha-версия программного продукта представляет собой эффективный и простой инструмент для записи информации экрана рабочего стола компьютера, который может быть полезен в различных областях, таких как обучение, демонстрация программного обеспечения и игровая индустрия.
References
1. Sait o programmirovanii URL: https://metanit.com/ sharp (accessed: 20.01.2025). (In Russ.).
2. Price M. J. C# 10 and .NET 6. Modern Cross-Platform Development. Saint Petersburg: Piter; 2023. 848 p. (In Russ.).
3. Stellman A., Greene J. Head First C#. Saint Petersburg: Piter; 2022. 768 p. (In Russ.).
4. Griffits I. Programming C# 8.0: Build Cloud, Web, and Desktop Applications. Saint Petersburg: Piter; 2021. 944 p. (In Russ.).
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.c-sharpcorner.com/article/screen-capture-in-c-sharp/ (дата обращения: 20.01.2025).
Информация об авторах
Д. К. Берестин - кандидат физико-математических наук, доцент;
https://orcid.org/0000-0003-3977-3281,
С. Г. Еловой - старший преподаватель;
https://orcid.org/0000-0002-1860-9303,
5. Video Processing in C# using Accord.NET. URL: https://accord-framework.net/docs/html/T_Accord_ Video_FFMPEG_VideoFileWriter.htm (accessed: 20.01.2025).
6. Visual Studio IDE documentation. URL: https://learn. microsoft.com/ru-ru/visualstudio/ide/?view=vs-2022 (accessed: 20.01.2025). (In Russ.).
7. Official C# Programming Guide. URL: https:// docs.microsoft.com/en-us/dotnet/csharp/ (accessed: 20.01.2025).
8. Screen Capture in C#. URL: https://www.c-sharp-corner.com/article/screen-capture-in-c-sharp/ (accessed: 20.01.2025).
Аbout the authors
D. K. Berestin - Candidate of Sciences (Physics and
Mathematics), Docent;
https://orcid.org/0000-0003-3977-3281,
S. G. Elovoy - Senior Lecturer;
https://orcid.org/0000-0002-1860-9303,