Приложение написано на базе фреймворка Webasyst.
Приложение соответствует MVC-паттерну проектирования приложений.
В папке sm хранятся все файлы для работы приложения. Приложение имеет следующую стркутуру:
- css - сторонние библиотеки и пользовательские css файлы
- img - изображения
- js - сторонние библиотеки и пользовательские js файлы
- lib - файлы для работы приложения
- templates - html шаблоны
Под транскодированием понимается преобразование видеофайла из одного цифрового формата в другой. В данном приложении этот процесс нужен для стандартизации загруженных пользователем видеофайлов, для их последующей "склейки" и работы со сторонним ПО. Так как приложение является монолитным и не масштабируется, а процесс транскодирования файлов является ресурсоемкой задачей, было принято решение использовать для этого процесса отдельный сервер. Для того, чтобы не нагружать систему, используется очередь (FIFO). Пока один файл транскодируется, другие ждут своей очереди. Этот функционал реализован в файле transcodingqueue.py. Он необходим для отправки загруженных пользователем файлом на сторонний сервер и запуска процесса транскодирования.
Так как приложение не только транскодирует, но и транслирует каналы, то для этого необходимо использовать стороннее ПО, а именно Flussonic.
Продемонстрировать и описать всю систему является довольно объемной задачей, поэтому обойдемся лишь частью функционала, а именно:Страница просмотра канала. Показывает сам телеканал (изображение заменено в Фотошопе на обычную картинку) и список каналов, доступных пользователю.
Страница с редактированием пользовательских каналов. Вкладка "Видеоролики". На этой странице есть 2 вкладки: "Каналы" и "Видеоролики". На вкладке видеоролики выводятся видеофайлы, которые загрузил пользователь, его название, длительность, статус ("Готов" или "Транскодируется и процент готовности").
Страница с редактированием пользовательских каналов. Вкладка "Каналы". Пользователь может создавать, обновлять и удалять созданные им каналы. При создании собственного канала он выбирает его имя, ролики(готовые видеофайлы, которые уже прошли процесс транскодирования), их очередность.
Форма создания пользовательского канала.
Страница с редактированием пользовательских каналов. Вкладка "Каналы". Пользователь может редактировать (изменить имя, видеофайлы и их очередность) и удалить свой канал.
Форма для работы с пользовательскими каналами.
Физическая модель базы данных.