|
软件开发-多模态视听内容智造平台受消费习惯的影有,短视频市场需求旺盛。监测数据显示,视频服务类APP用户使用的内容形式中,短视频位列首位。根据《2021中国网络视听发展研究报告》显示,截至2021年12月,中国网民规模已经扩大至9.4亿,其中短视频用户规模已达8.18亿,日均使用时长110分钟。过去一年的时间,仅抖音平台,创作人数就净增13亿。短视频带来了全新的节目形态和传播场域,小屏幕、碎片化、快节奏成为行业潮流。在这种趋势下,视频消费习惯的改变对短视频生产端提出新的要求:更短的制作周期确保更新频率、画质清晰、剪辑节奏流畅、内容策划紧跟热点热度等。 对于企业级创作者而言,原始的视频生产工具已不能满足专业化、多元化的需求,加之生产耗时长、素材处理困难等问题,亟需量身定制新工具协助生 一、视听内容批量快速生产 提供完善的视频快速制作服务,主要包含素材展示、素材批量导入、批量视频生成、结果视频导出、导出位置自定义、添加背景音乐等核心功能。 (一)本地导入 支持本地的正片素材、片头素材、背景音乐、贴纸、发布文案批量导入已创建的主题内。支持用户添加自定义主题名称及主题封面;支持对已导入的素材进行预览; (二)批量生产 选择主题与视频数量,可批量拼接,生成该主题下的视频。可快捷选择常用数量,如10个、20个、50个,并支持输入自定义数量。支持短视频一键生成。支持手动编辑素材顺序、指定背景音乐。 (三)导出本地 可将批量生产的视频导出保存至本地。 (四)历史生产 生成的视频记录可在历史中查看,包括生成主题、生成数量、生成时间、视频预览。可按时间进行筛选,包括今日、最近3天、最近一周,可按主题筛选。 (五)偏好设置 支持设置默认位置信息用于保存导出的视频。 二、视听内容模版化生产 提供完善的视频模板制作服务,主要包含模板展示、模板导入、素材导入、模板视频生成、结果视频导出、导出位置自定义、板文字编辑等核心功能。 (一)模版展示 展示系统现有模版包括模版名称、预览图、模版时长。可根据模版主题、时长、数量、内容进行筛选,支持关键字检索。模版类型分类包括围文混合、仅文字、仅图片。 (二)模版导入 支持本地模版批量导入已创建的主题内。支持用户添加自定义主题名称及主题封面;支持对已导入的模版进行预览; (三)素材导入 支持本地的图片素材、视频素材、背景音乐、贴纸、发布文案批量导入已创建的模版内。支持对已导入的素材进行预览; (四)模版视频生成 选择模版对模版中场景素材进行设置,支持从素材库选择或上传自定义素材,支持设置背景音乐。展示当前素材设置数量及进度。支持一健生成。 (五)结果视频导出 可将生成视频导出保存至本地。 (六)导出位置自定义 支持设置默认位置信息用于保存导出的视频。 (八)模版文字编辑 支持模版中文字内容的编辑,可根据模版需求设置文字长度限制,并进行输入字数提醒。 (九)AE 模版导入 支持标准化AE模版一健导入,导入的AE模版可与素材合成编辑。 结合本项目的需求分析及前后端技术选型,建议项目整体采用前后端分离的技术架构,架构支持前端各类型的Client与后台服务之间采用restful 风格的aoi进行交互。架构设计和实现时,充分考虑将来的可扩展性,服务层支持未来有需要时通过负载均衡进行扩充,持久层在设计和实现时支持未来有需要时可扩展主从模式和读写分离。 三、前端技术选型 项目的目标是构建一个先进的、快速可靠的平台,且需要充分考虑平台以后业务扩展时的技术栈的统一,根据当前框架的流行程度,和开发团队的经验积累选择Vue.js最为本项目的前端框架。 Vue.js(读音 /vju:,类似于 view)是一套构建用户界面的渐进式框架。与其他重量级框架不同的是,Vue 被设计为可以自底向上逐层应用。Ve的核心库只关注视图层,不仅易于上手,还便于与第三方库或既有项目整合。另一方面当与现代化的工具链以及各种支持类库结合使用时,We也完全能够为复杂的单页应用提供驱动。 Vue 在数据的双向绑定、页面的呈现速度、组件化(已经把作用域冲突的问题给搞定了)、单html开发、可以进行成体系的打包发布方面有着先天的优势而且生态丰富,组件众多,社区活跃,已经成为当下前端界面构建的主流方案。Vue.js 是一个提供了MVVM 风格的双向数据绑定的 Javascript 库,专注于VieW层。它的核心是MVM中的VM,也就是ViewModel。VienModel负责连接View和Model,保证视图和数据的一致性,这种轻量级的架构让前端开发更加高效、便捷。 四、后端技术选型 系统采用微服务软件架构,使用 Java作为开发语言,通过基于HTTP的RESTfUl AP|与前端进行通信。具体如下: (一)SpringCloud 微服务架构 微服务是系统架构上的一种设计风格,主旨是将一个原本独立的系统拆分成多个小型服务,这些小型服务都在各自独立的进程中运行,服务之间通过基于http 的 RESTfUI AP|进行通信协作。被拆分成的每一个小型服务都围绕着系统中-些耦合度较高的业务功能进行构建,并且每个服务都维护着自身的数据存储业务开发,自动化测试案例以及独立部署机制。springcloud是一个基于springboot 实现的微服务架构开发工具。它为微服务架构中涉及的配置管理,服务治理,断路器,智能路由,微代理,控制总线,全局锁,决策竞选,分布式会话和集群状态管理等操作提供了一种简单的开发方式。 (二)微框架 SpringBoot SpringBoot由Pivotal团队提供,设计目的是用来简化新Spring 应用的初始搭建及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。通过这种方式,SpringBoot 致力于在蓬勃发展的快速应用开发领域(rapidapplication development)成为领导者。 (三)持久层构架 JPA JPA(Java Persistence APl)是 Sun 官方提出的 Java 持久化规范。它为 Java 开发人员提供了一种对象/关联映射工具来管理 Java 应用中的关系数据。它的出现主要是为了简化现有的持久化开发工作和整合 ORM 技术。JPA是一套规范,不是一套产品。Hibernate 是一套产品,如果这些产品实现了JPA规范,那么我们可以叫它们为 JPA的实现产品。使用 JPA,就可以把我们的应用完全从 Hibernate中解脱出来。Spring data jpa 是在 JPA规范下提供了 Repository 层的实现。虽然 ORM 框架都实现了 JPA规范,但是在不同的 ORM 框架之间切换仍然需要编写不同的代码,而通过使用 Spring data jpa 能够方便大家在不同的 ORM 框架之间进行切换而不要更改代码。并且spring data jpa 对Repository 层封装的很好也省去了不少的麻烦。 (四)负载均衡 负载均衡(Load Balance),意思是将负载(工作任务,访问请求)进行平衡、分摊到多个操作单元(服务器,组件)上进行执行。是解决高性能,单点故障(高可用),扩展性(水平伸缩)的终极解决方案。系统的扩展可分为纵向(垂直)扩展和横向(水平)扩展。纵向扩展,是从单机的角度通过增加硬件处理能力,比如CPU处理能力,内存容量,磁盘等方面,实现服务器处理能力的提升,不能满足大型分布式系统(网站),大流量,高并发,海量数据的问题。因此需要采用横向扩展的方式通过添加机器来满足大型网站服务的处理能力。比如:一台机器不能满足,则增加两台或者多台机器,共同承担访问压力。 (五)数据库读写分离 读写分离简单的说是把对数据库读和写的操作分开对应不同的数据库服务器,这样能有效地减轻数据库压力,也能减轻i0压力。主数据库提供写操作从数据库提供读操作,其实在很多系统中,主要是读的操作。当主数据库进行写操作时,数据要同步到从的数据库,这样才能有效保证数据库完整性。读写分离,基本的原理是让主数据库处理事务性增、改、删操作(INSERT、UPDATE、DELETE),而从数据库处理 SELECT查询操作。数据库复制被用来把事务性操作导致的变更同步到集群中的从数据库。 |
