毕设搞了个影视平台,基于vue.js和springboot前后端分离开发,我本人之前是没有接触过vue(还引入了桌面端组件库Element),所以前端的部分还是花费了比较多的心思和精力,而且项目中用到了shiro作为后台权限管理的框架,数据库连接则一时兴起使用了写起联表来痛不欲生的jpa。。图片全部存储在七牛云上,没用过的可以去了解下,白嫖当的福音嘻嘻。
以上,全是没接触的技术,自己煞费苦心,费时费力,但还是架不住这个项目没有亮点的事实,以至于预答辩的时候老师看到我的论文题目,直接就来了句:你这个项目可以直接运行吗?用到的技术很常见了。
我当时瞬间慌了,,什么??我PPT就不用讲了?!
好在我心态够稳,迅速调整并熟练的运行起了项目,到了最后正式答辩的时候,除了PPT讲解的时间超了点(被老师提醒了),语速正常,表达也很顺畅(只答不辩,疯狂道歉),项目演示也没出错,估计能过。
看完这里的人应该了解了,我想加个视频实时点播的功能作为项目亮点,否则我的项目就只是基本的数据显示和增删改查,只体现了工作量,没有特别突出的地方,况且大佬们都是研究人工智能和机器学习的,做项目的本身就是吃亏的,穷则思变,差则思勤。
分析了下,影视平台的视频点播最难克服的两点在于:
其他什么存储、上传等等都不是重点。
像很多小众电影平台用的cms模板建站系统,从网络上抓取了一些资源,本身网站的加载速度巨慢,视频的画质又模糊,谁能忍?!
在这种平台多停留一秒都是浪费时间。。
我在网上搜了遍,关于视频服务要不就大概讲了下关键步骤(我也看不懂,就很懵),要不就是直接让买云服务,毕竟现在各大云服务平台确实服务很到位也足够用了。
期间有看到一些研究blog视频地址加密的文章,通过前端js和后台配合实现,基本的原理大概是使用二进制传输视频数据,起到加密的效果,但亲身实践之后会发现,如果是长视频,进入点播页面之后视频会一直在加载,体验极差,也就是说按照这种实现方法,只能针对几分钟的短视频,才能很快缓存完。
看了比较多文章后,确定自己无法实现,就决定使用云服务了,简单对比了下阿里云,腾讯云和七牛云的视频点播服务,然后选择了阿里云。
我已经忘了当初为什么青睐于阿里云了,反正就埋头淦文档,作为一个从没涉及过云点播技术的小白,这个过程还是挺吃力的,况且中间还被指导老师拉着参加了个华为云的鲲鹏比赛嘿嘿。
经过了一段时间的学习(脱发),终于总结出了阿里云视频vod服务的实现流程:
开通视频点播服务可选按流量收费和按宽带收费两种,根据自身情况选择合适实惠的就可以了。
域名也有很便宜的,我选择的是后缀名为xyz的域名,比较麻烦的是域名的备案,我一开始嫌麻烦打算跳过这一步骤,于是我买了台国外的服务器,不需要备案,直接cdn绑定域名加速,一开始好好的,视频播放速度很正常,但因为疫情的原因,毕设答辩迟迟没有通知,导致一个多月后,我重新跑项目就发现视频加载巨慢,已经极大影响了我演示系统。
解铃还需系铃人,我重新回过头去看cdn绑定的域名,就发现了:
使用国外的服务器确实不用备案,但是cdn绑定对应的域名的话加速服务也仅限于国外。。
最后还是紧急租了台阿里云的服务器,并进行备案,最终在正式答辩的前两天备案申请通过!
1. 加密 :当前各大平台如慕课、B站等实现视频加密都是使用的blog地址加密,也就是右键在控制台看到的不是视频原本的链接,无法盗取下载到本地。
2. 加速 :绑定域名之后开启cdn加速,进度条可以随意拖动,播放顺畅。
————分———割———线———————分———割———线——
以上,是我这次使用阿里云视频点播的理解。
这里还是要吐槽一下阿里云控制台的视频上传,云网站因为安全原因如果一段时间不操作,登陆状态会很快失效。
我上传的电影是比较大的文件,时长也普遍有1-2小时,导致上传的过程极慢,控制台的上传页面明确写了:
可以离开本网页,但不要刷新本页面
那么问题来了,我不能一直守着长视频在上传吧,一段时间后我重新回到控制台就会发现登陆状态失效了,但视频还没上传完,我重新登陆这算不算刷新呢?
我试过这样好像不能断点续传,上传的进度一直在加载。。是我机器的原因?不吝赐教!!
最后,如果有人看的话,我打算把毕设的项目从零开始写个教程,顺便重构下,毕竟之前没有技术基础,写出来的东西难免晦涩,很多地方没有考虑周全,再加上目前项目本身也还有很多可以改进的地方,分享出来既是对自己的一个总结,在一定程度上也许还能帮到人,两全其美。
——再次——分———割———线————再次——分———割———线——