山烛视频技术员交接博客
这个作业属于哪个课程 | 软件工程2021春软件工程W班(FZU) |
---|---|
个人学号 | 221801435 221801424 |
作业要求 | 作业链接 |
作业目标 | 为山烛视频平台项目交接铺路 |
参考文献 | 山烛视频平台开发博客 |
项目文档链接以及项目仓库地址
项目仓库地址
我们使用阿里巴巴旗下的Teanbition协作软件开发,其中所有的代码都上传至仓库
文档链接
需求规格说明书
包括项目背景、使用场景、界面原型、功能验收标准等内容。
链接:https://pan.baidu.com/s/1_hBBA6eg8cQDxdgN9bildg
提取码:jdpd
系统设计说明书
包括体系结构设计、类图设计、功能模块设计、交互接口设计等内容。
链接:https://pan.baidu.com/s/1t5Ep5PGWxemGOByN9vkg4w
提取码:3cvk
数据库设计说明书
数据库表设计,以及一些约定。
链接:https://pan.baidu.com/s/1repBPEtgHCA4ScsxFNFJNw
提取码:p3xf
项目可运行链接
目前项目已部署在服务器上,可访问地址为:山烛视频平台
若不可访问请咨询技术员。
功能介绍和使用说明
登录注册
就是普通的登录和注册,注意按照提示输入,满足约束。
主页
从主页可以看到,我们网站的主要功能点有四个:视频观看、讨论、捐赠以及个人中心(用于上传视频、管理视频等)。
主页有用户推荐模块:
以及按照不同的视频类型,推荐的不同的视频,有不同的排行榜:
可以在最顶部的搜索框搜索你想看的内容:
视频播放
点击一个具体的视频,即可播放。视频播放以分P的方式进行,同时下方也可以让用户进行评论。(需要登录才能评论)
讨论
在主页左侧边栏中选择讨论区,即可进入讨论页面。
用户可以浏览问题,也可以在页面列表的最底端发表问题。
捐赠
在主页左侧边栏中选择捐赠区,即可进入捐赠页面。
可以参加捐赠活动,也可以访问其他网站的捐赠活动。
个人中心
该区域主要提供视频管理功能和志愿者身份申请功能、只有审核通过成为志愿者,才能发布视频。
待完善的功能
视频推荐算法部分
排序模型的实现
参照YoutubeNet模型,目前只完成了召回模型部分(即上图的candidate generation部分内容),而排序部分尚未完成(即ranking部分),训练排序部分的模型需要记录下用户观看每个视频的时间,这里还需要对后端进行修改。
此外,希望能补充一些用户真实使用的数据集用于训练(可以找找公开的,对已有数据集进行修改也是可以的,或者利用爬虫去爬别的网站的数据)。
常用数据集的下载地址可以参考这篇博客
冷启动问题
当用户的历史数据不足时,网站无法达到比较好的推荐效果,该问题被称为推荐系统“冷启动”问题。在该问题还未解决的情况下,本网站采用随机推荐的方式。
然而可以有更好的解决方法,具体可以参照这篇文章。
后端部分
接口设计问题
对于一些接口设计可以进行适当的简化,让不需要获取的数据不用返回,减少数据量,加快接口请求和数据渲染的速度。具体看看 接口文档
线程污染
在使用pagehelper时出现了线程污染问题,在测试时候发现问题,还未解决,后续直接是改为了单线程进行,可以进行完善并且解决问题。
前端部分
代码可复用性差
因为本次项目开发中,每个模块有不同的人进行代码编写,因此每一个模块可复用的部分并没有得到复用,在代码复审中发现了很多问题,有部分没得到解决,如分页器没有分离出来等。
视频播放器问题
视频播放器使用的是vue-video-player,该播放器只支持mp4格式,可以使用较好的播放器如flv去替换他,能够支持更多格式的视频。
部署问题
因为数据量较大,在压力测试的时候就出现了问题,在服务器上传较大的视频时候,就会出现相应的卡顿等,在人数大于5的时候就会让一核的服务器出现承受不了的问题。
在部署上我们尝试了将算法部署在一台服务器上,后端一台服务器上,前端一台服务器上,但是服务器性能较差,看看如何解决好。
可以开发的新功能
视频增强
服务器端视频增强
在服务器端运行srcnn或者其他的视频增强算法,对用户上传的视频进行增强,消除视频上传过程中可能出现的失帧现象。
这里是否增强可以由客户决定,例如:
在蓝色方框处提供一个“视频质量提升按钮”,当用户发出请求之后,再对原视频进行增强处理,这样可以降低服务器运算量。
客户端视频增强(工作量和难度较大)
一些偏远地区网速可能不够快,从而导致视频播放卡顿的情况出现。
解决方法:
利用C#或者java(例如Neuroph框架,这个要去学一下如何使用)编写srcnn神经网络和视频播放器,将视频播放器和视频增强模块集成起来,对视频进行实时增强,使得用户能够以低清的流量看高清的视频,减少网络带宽,提高播放流畅度。
如何适配手机端
在设计前并没有想到要开发手机端的网页,所以在开发中并没有做出对应的适配,可以尝试如何修改好代码。
直播流
难度较大,网上资料较少,可以多百度百度。