-
Notifications
You must be signed in to change notification settings - Fork 1
Home
Целта на овој проект е да се имплементира стримање – споделување на
мултимедиски содржини, поточно видеа, со произволна големина, вo
m3u8 формат, а со многу лесна промена во кодот може и да се користи
mpd форматот. Исто така видеата потребно е да бидат енкриптирани со
код. Секое видео да добива сопствен String token
со кој ќе може да се
отклучи содржината. Целосната имплементација можете да ја видите на
git.com.
Имплементација
Овој проект е составен од 3 компоненти:
- SpringBoot апликација – за бизнис логиката на апликацијата
- ReactJS апликација – за веб кориснички интерфејс
- Shell скрипти – за форматирање и енкриптирање на видеото
SpringBoot апликацијата е доста едноставна. Се базира врз REST принципите и во неа има:
- Model:
- Base
- BaseEntity
- UserRole
- User
- Video
- Quality
- Web:
- AdminController
- MainController
За слојот за базата на податоци и сервисниот слој изоставени се податоците бидејќи се подразбира дека треба да бидат имплементирани за да работи апликацијата.
Апликацијата исто така е заштитена со едноставан OAuth JWT
автентикација и авторизација. Имплементацијата е достапна на
горенаведениот git.Aпликацијата во себе содржи неколку класи кои се потребни за да
функционира подобро.
Тоа се Initializer.java
и CustomExceptionHandler.java
. Можете
да ги погледнете и лесно е да се заклучи за што служат.
Во секоја класа е поставено соодветно објаснување за методите.
Доколку имате некакво двоумење, слободно контактирајте не на mail.
Покрај java класите, потребно е да се постават соодветно
application.properties
. Можете слободно да ги погледнете на git.
За корисничкиот интерфејс се користи исто така едноставна React апликација со неколку компоненти.
Апликацијата би требало да ви функционира без никакви измени, но
доколку направите промени на портата од вашата Spring апликација,
истата треба да ја пропагирате на само едно место во React
апликацијата, тоа е axios
компонентата, а таа се наоѓа во
frontend/src/axios/axios.js
.
Сите промени и подобрувања се добредојдени и охрабрени.
На git постои само една скрипта и таа делува како master скрипта.
Скриптата служи за да се постави квалитетот и да се креира .m3u8
датотека – formatVideo.sh
. Потребно е истата да ја поставите во
датотеката што е родител на видеата (пр. /home/konstantin/Videos
).
Покрај преместувањето на таа скрипта, потребно е да се дадат
пермисии за апликацијата да ја извршува
chmod 755 formatVideo.sh
Oсвен таа скрипта, потребно е да направите уште една скрипта
m3u8gen.sh
, која ќе биде празна, но со исти пермисии како и
formatVideo.sh
. Неопходно е скриптите да бидат именувани вака и да
бидат со потребните пермисии за извршување.
За да се овозможи стримањето на видеа, потребно е Apache да се конфигурира за да ги опслужува тие видеа. Едноставна конфигурација треба да се додаде во конфигурациската датотека од Apache. Јас користев Apache2, можете да погледнете како да се направи тоа со NginX, доколку сакате.
<VirtualHost *:80>
DocumentRoot /home/konstantin/Videos/
Alias /videos "/home/konstantin/Videos"
ProxyPass /videos !
ProxyPass / http://localhost:8080
ProxyPassReverse / http://localhost:8080
<Directory "/home/konstantin/Videos">
Header set Access-Control-Allow-Origin "*"
Require all granted
</Directory>
</VirtualHost>
Во конфигурациската датотека потребно е само да ги додадете овие линии xml текст. По успешно завршување и тестирање преку systemctl status apache2 / httpd Би требало Apache успешно да работи. (Јас користам Ubuntu 19.10, па конфигурациската датотека се наоѓа во /etc/apache2/sites-enabled/000-default.conf, доколку користите CentOS, датотеката барајте ја како httpd.conf.
Овој проект беше изработен од Константин Богданоски и Наташа Стојанова, заедно со професорот Д-р. Сашо Граматиков, како дел од курсот Мултимедиски Мрежи на Факултетот за Информатички Науки и Компјутерско Инженерство (ФИНКИ), 2019-2020, Скопје, Северна Македонија.
Контактирајте не: About Us (За нас)