1.             Описание технической архитектуры программного модуля «Транскодирование видеопотока»


Настоящий документ представляет собой описание внутренней архитектуры программного модуля «Транскодирование видеопотока» и содержит основополагающие сведения о структуре, компонентах и взаимодействии элементов системы.

2.             Структура


Система построена по монолитной архитектуре без возможности разделения на какие-либо независимые составные части. Зависимости от каких-либо сторонних библиотек и компонентов, за исключением библиотек FFmpeg, отсутствуют.

3.             Компоненты


Программный модуль состоит из следующих компонентов:
–         Декодер: отвечает за преобразование последовательности сжатых входящих изображений в последовательность несжатых изображений и изменение их параметров (разрешение), после чего они выдаются как выходные данные и/или отправляются в модуль энкодера.
–         Энкодер: отвечает за преобразование последовательности несжатых изображений в последовательность сжатых изображений с заданными параметрами (битрейт, GOP). Результаты работы модуля выдаются как выходные данные.
–         Очередь задач: реализует возможность параллельной обработки изображений в отдельных потоках с целью достижения максимальной эффективности использования имеющихся аппаратных ресурсов.
–         База данных: не используется. Библиотека не хранит никакой информации в постоянной памяти.

4.             Взаимодействие


Инициализация, задание параметров работы и подача входных данных осуществляется посредством вызова интерфейсных функций управляющей программой. Обратная связь со стороны библиотеки (передача выходных данных и информирование о событиях) осуществляется посредством вызова callback функций, указатели на которые заранее передаются библиотеке управляющей программой.

5.             Технологии


В работе программного модуля используются следующие технологии:
–         C++11,
–         CMake,
–         FFmpeg.

6.             Паттерны


В работе программного модуля используются следующие паттерны:
–         Singleton,
–         Adapter,
–         Facade,
–         Command,
–         RAII.
Made on
Tilda