
Акопян ЛР / 1
.docx
Цель работы: научиться анализировать архитектуру существующей информационной системы и представлять её в виде модели структуры.
Основная часть
Выбор информационной системы для построения её модели
Для выполнения лабораторной работы была выбрана информационная система Open Broadcaster Software (OBS), это система с открытым исходным кодом для записи видео и прямых трансляций.
Эта система удовлетворяет всем требованиям:
Имеется обширная техническая документация
Размер и сложность соответствуют требованиям
Аналоги системы: XSplit Broadcaster, Streamlabs OBS
Общее назначение системы
Запись аудио и видео, проведение прямых трансляций на такие сервисы как Twitch, Youtube и др.
Модель структуры системы на уровне программно-технической архитектуры
Каждый элемент из Data capture связан с Audio video filters и Audio Video encoder
Рисунок 1 – Программно-техническая архитектура OBS
Таблица 1 – Элементы OBS
Номер |
Название Элемента |
Назначение |
Тип Информационного процесса |
Принадлежность подсистеме |
1 |
Scene |
Создание сцены, выбор заранее сохранённых пользователем сцен |
Хранение информации |
Interface |
2 |
Data input |
Выбор источников ввода данных |
Получение информации
|
Interface |
3 |
Audio mixer |
Настройка каналов записи аудио |
Обработка информации |
Interface |
4 |
Start/pause |
Начало/пауза записи |
Хранение, вывод информации |
Interface |
5 |
Settings |
Настройки программы |
Хранение, обработка информации |
Interface |
6 |
Libobs |
Главный фреймворк для всех плагинов |
Обработка, передача информации |
API and frame layer |
7 |
Media source |
Вывод медиа на сцену |
Ввод информации |
Data capture |
8 |
Screen source |
Вывод экрана на сцену |
Ввод информации |
Data capture |
9 |
Game capture |
Вывод 3D-приложений на сцену |
Ввод информации |
Data capture |
10 |
Camera capture |
Вывод изображения с камеры на сцену |
Ввод информации |
Data capture |
11 |
Text source |
Вывод текста на сцену |
Ввод информации |
Data capture |
12 |
Audio capture |
Вывод аудио на сцену |
Ввод информации |
Data capture |
13 |
Audio Video filters |
Обработка аудио и видео
|
Обработка информации |
Data process |
14 |
Audio Video encoder |
Шифрование аудио и видео |
Обработка информации |
Data process |
15 |
RTMP streaming |
Трансляция аудио и видео в интернет через протокол RTMP |
Вывод информации |
Data output |
16 |
Local recording |
Запись аудио и видео на устройство |
Вывод информации |
Data output |
17 |
Local preview |
Предпросмотр аудио и видео в программе |
Вывод информации |
Data output |
Таблица 2 – Связи между элементами OBS
Номер связи на схеме |
Название связи |
Характеристика передаваемых данных |
1 |
Рендер видео |
Сборка всех данных из подсистемы Data Capture в единую картинку с последующим наложением на неё эффектов при необходимости |
2 |
Кодировка видео |
Преобразование файла в формат, подходящий для дальнейшего вывода данных |
3 |
Прямая трансляция |
Трансляция полученного файла в интернет с помощью протокола RTMP |
4 |
Локальная запись |
Запись полученного файла на устройство |
5 |
Предпросмотр |
Вывод полученного файла в окно предпросмотра в программе |
6 |
Захват данных |
С помощью библиотеки Libobs выполняются функции video_thread и audio_thread
|
7 |
Обработка данных |
Выполняется функция obs_graphics thread из библиотеки Libobs |
8 |
Вывод |
Как только данные из источников отрисованы и финальный файл сконвертирован в формат, определённый libobs файл отправляется на предпросмотр в интерфейс либо на трансляцию |
Таблица 3 – Матрица смежности
|
Data input |
Audio Mixer |
Start/pause |
Settings |
Libobs |
Media source |
Screen source |
Game capture |
Camera capture |
Text source |
Audio capture |
Audio video filters |
Audio Video encoder |
RTMP streaming |
Local recording |
Local preview |
Scene |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
Data input |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
Audio Mixer |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
0 |
0 |
0 |
0 |
0 |
Start/pause |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
Settings |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
Libobs |
0 |
0 |
0 |
0 |
0 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
Media source |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
1 |
0 |
0 |
0 |
Screen source |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
1 |
0 |
0 |
0 |
Game capture |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
1 |
0 |
0 |
0 |
Camera capture |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
1 |
0 |
0 |
0 |
Text source |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
1 |
0 |
0 |
0 |
Audio capture |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
1 |
0 |
0 |
0 |
Audio Video filters |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
1 |
1 |
Audio Video encoder |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
1 |
1 |
RTMP streaming |
0 |
0 |
0 |
0 |
1 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
Local recording |
0 |
0 |
0 |
0 |
1 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
Local preview |
0 |
0 |
0 |
0 |
1 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
Альтернативная модель структуры
Рисунок 2 – Альтернативная диаграмма OBS
Описание модели структуры
Interface – задание пользователем команд, настройка программы, задание необходимых параметров для записи и трансляции пользователем
API – Библиотека libobs, все функции программы
Data – ввод, обработка, вывод данных на трансляцию или запись
Вывод: в ходе выполнения лабораторной работы, была построена модель системы Open Broadcaster Software, разобраны её элементы и связи между ними.