Перейти к:
Программное обеспечение для записи экрана рабочего стола
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 Мб | 3 Мб | 102 Мб | 2,90 Мб |
Нагрузка на систему | Низкая | Низкая | Высокая | Низкая |
Обновления | Постоянные обновления | Постоянные обновления | Больше не обновляется | Постоянные обновления |
ОС | 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