在局域網內通過搭建服務集群,讓你的設備輕輕松松訪問電腦中的視頻,無需流量,不受網速干擾。本篇主要講述如何自行搭建該服務。
項目地址:https://github.com/CasterWx/videoCloud
最近在補生活大爆炸,從網盤上下載了全季的視頻,每天晚上都會在電腦上看幾集再去睡覺。
因為視頻資源太過龐大,所以我想在手機上看,就需要每次把視頻傳到手機,看完之后刪掉再傳新的,如果是看網上的資源,網速的問題可能會長時間需要加載。
所以我准備給我的電腦搭建一個服務,可以在同一局域網下讓我的手機平板等都可以訪問我電腦的資源,這樣就不用擔心網速問題了,差不多類似於一個局域網的在線影院。
我可以把最后的應用包安裝到一台根本不需要任何性能的服務器,只需要它有大量的硬盤空間,類似於淘寶上的玩客雲(硬盤還得自己提供,這就能賣200多?)。
最簡單的服務器你可以直接用你報廢的手機,不要再拿廢手機去換不銹鋼盆了,稍微改裝一下就可以變成一個Linux服務器,為你局域網下其他設備來提供服務(怎么做之后出教程)。
雖然說只是一個簡單的雲影院,但是它可以與局域網內其他影院進行聯動,你也部署多次,我還是准備用上一些高大上的框架,一邊學習一邊完善,殺雞就要用屠龍寶刀。
大概說一下技術選型。
Spring Boot (應用主體)
Spring Cloud Alibaba (服務發現,負載均衡,容錯等) MyBatis (數據)
Elasticsearch (搜索,正在學這個)
構建項目
項目環境分為Dev和Proc,分別是開發環境和線上環境,線上環境會限制連接數。
1 spring: 2 profiles: dev 3 --- 4 spring: 5 profiles: proc 6 server: 7 tomcat: 8 max-connections: 1000 9 max-threads: 200 10 max-http-post-size: 2MB
服務發現組件使用Nacos,局域網內每一個服務啟動時會注冊在Nacos中,Nacos是SpringCloudAlibaba提供的微服務組件,本項目中配置在yum配置中。
無需任何配置,startup.cmd -m standalone即可啟動。

訪問localhost:8848/nacos,用戶名密碼均為nacos,即可在服務列表中查看已啟動的本項目組件。
數據庫使用本地數據庫。
spring: datasource: url: jdbc:mysql://localhost:3306/user_center?serverTimezone=GMT hikari: username: root password: root driver-class-name: com.mysql.cj.jdbc.Driver
資源訪問路徑
靜態樣式資源以及視頻等路徑配置在WebMvcConfig中,addResourceLocations根據自己磁盤中文件路徑配置。
1 @Configuration 2 public class WebMvcConfig implements WebMvcConfigurer { 3 public void addResourceHandlers(ResourceHandlerRegistry registry){ 4 registry.addResourceHandler("/**").addResourceLocations("file:G:/bilibili/"); 5 WebMvcConfigurer.super.addResourceHandlers(registry); 6 } 7 }
數據庫


數據實例,localUrl是相對你在上一步Config中指定路徑下的。
type字段決定了視頻類型,在前端會有相應的分組。


在Test中有針對相應文件夾的批量導入方法,可以自行修改來導入本地視頻。
前端界面
前端的視頻播放插件選用DPlayer。
<link rel="stylesheet" href="DPlayer.min.css" /> <div id="dplayer"></div> <script src="DPlayer.min.js"></script> <script> const dp = new DPlayer({ container: document.getElementById('dplayer'), video: { url: 'demo.mp4', }, }); </script>
上述是mp4的通用播放方法,對於flv,需要指定video-type對flv,並導入flv.js進行解析。
健康檢查
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
使用actuator進行健康檢查。
使用
針對自己的情況完成了上述配置,就可以在局域網內正式使用該服務了。
啟動項目,發現一台服務。

然后訪問服務的地址,在yum中我們選擇了8081端口。
因為該服務主要面向移動端,所以這里演示為手機效果。

繼續下拉,就可以到視頻列表了。

mv_db中的mv_type決定了分類,也就是上圖中視頻的分類,便於查看。

選擇視頻后即可跳轉到相應播放界面,在局域網內體驗高速服務,不用擔心流量以及限速問題。

可以配合bilibili-spider批量將B站收藏夾視頻文件下載到本地,在Test中導入。
局域網內的其他設備訪問時,需要使用服務的局域網ip,可以在cmd中使用ipconfig命令查看。

此時我在移動端只需要訪問192.168.43.145:8081即可。
