這個作業屬于哪個課程 | 軟體工程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神經網絡和視訊播放器,将視訊播放器和視訊增強子產品內建起來,對視訊進行實時增強,使得使用者能夠以低清的流量看高清的視訊,減少網絡帶寬,提高播放流暢度。
如何适配手機端
在設計前并沒有想到要開發手機端的網頁,是以在開發中并沒有做出對應的适配,可以嘗試如何修改好代碼。
直播流
難度較大,網上資料較少,可以多百度百度。