Я разрабатываю редактор веб-видео, который пользователи могут редактировать видео через интерфейс временной шкалы, аналогичный красной части прямоугольника на следующем рисунке.Модель данных для редактирования веб-видео
Для достижения этой цели я считаю, что должно быть древовидные модели данных на стороне сервера, чтобы сохранить все данные, используемые для операций редактирования, как показано на следующей схеме.
Принимая график в интерфейсе изображения в качестве примера, есть один TimeLine
объект, который имеет один VideoGroup
суб-объект и один AudioGroup
суб-объект. Объект VideoGroup
имеет коллекцию из 2 объектов Трека, а именно Video 1
и Video 2
. The AudioGroup
Объект имеет 1 объект дорожки с именем Audio 1
. Video 1
, первый объект трека объекта VideoGroup
имеет набор из 4 объектов мультимедиа, второй объект трека Video 2
имеет 6. В то время как Audio 1
, единственный объект трека объекта AudioGroup
не имеет.
Когда речь заходит о моем приложении, в задней части модели данных используется приложение для выполнения фактических операций редактирования. На лицевой стороне он должен отображаться на веб-странице графически, как показано на рисунке интерфейса. Для достижения этой цели мне интересно, что, поскольку на сервере уже есть модель данных, мне нужно создать соответствующую модель данных JavaScript на стороне клиента? Если нет, передняя веб-страница должна перезагружать модель данных из базы данных каждый раз, когда пользователь выполнил операцию редактирования, которая ее модифицирует, чтобы отобразить обновленную версию для конечного пользователя. Так ли так идти?
Если я правильно понимаю ваш ответ, вы предлагаете мне создать соответствующую модель данных в интерфейсе, используя JavaScript. Но из-за ограничений по времени для моего проекта я предпочитаю не создавать его, поскольку я считаю, что проще реализовать модель загрузки с конца сервера, а не строить две сложные модели данных на стороне клиента и сервера и писать код для их синхронизации. Хотя я не уверен, может ли мой предпочтительный способ вызвать другие большие проблемы для моего веб-приложения. – Ivan
Я думаю, что ваше приложение по своей природе будет иметь много пользовательских взаимодействий. Вероятно, вам захочется, чтобы инфраструктура frontend структурировала эти проблемы в любом случае. Вы решили использовать свой предпочтительный стек технологий? – sdeburca
Что касается технологического стека, я использую API ASP.NET и DirectShow.NET API на сервере для редактирования видео.Что касается front-end, я использую HTML Canvas для отображения интерфейса временной шкалы и записи чистого кода JavaScript для обработки пользовательских событий и обмена данными с сервером. Поскольку у меня нет большого опыта в веб-разработке, я не могу сейчас найти лучший способ. – Ivan