java web 自己开发NAS个人网盘、视频网站视频播放服务端大视频文件处理逻辑解决方案和思路

本文讲述了作者在开发个人NAS系统并实现大视频文件H5播放时遇到的问题及解决方案。首先,作者尝试了通过ffmpeg切割视频,但认为此方法不优雅。接着,作者转向研究视频流服务器,发现NGINX支持MP4流,但Windows环境中的中文URL问题成为一个难题。最终,作者解决了中文URL问题,并通过NGINX实现了MP4视频的流式播放,适合小访问量场景。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

说一下我的需求,我个人的需求是这样的,我自己想搞一个个人网盘来保存我的各种资料和视频,但是又要方便直接在硬盘操作,就是轻量级实现,一个简单的NGINX是不符合我的需求的,功能太过简单了,而市面上的开源的很多都太过重量级实现。

所以我实现的主要需求是个人NAS系统视频播放

这里提一下,我是H5网页播放。前端我就不说了,H5的播放器,解决方案太多了,不值得去写,主要是服务端的视频处理方案。

我最开始通过response的流的方式下载实现预览视频文件,本地还好,2.3G的视频文件可以秒级打开,但是即使是内网环境加上网络传输环节了,二十分钟都不一定下载的了,我在内网中电脑打开,用手机打开,30分钟一个2.5G的视频根本就没有打开,而且还有内存问题,经常异常,根本不行。

我在网上查找的解决方案很少,我从很少的资料中总结就两点:

1、通过ffmpeg(没有找到其他合适的视频处理框架)切片、转TS视频片段或者MP4片段

参考:Java通过cmd调用FFmpeg实现大视频文件的分段切割

但是我存在本地硬盘的视频不可能实现把视频文件通过5s切割一下,切的零零散散的,这太不优雅了。

这里提一下,这个结局方案适合做视频网站的,将视频切割成ts格式文件,然后通过HTTP请求,常规的下载文件流的方式响应即可,就像如下这样(代码实现),这些一小片一小片的就很好处理,无论是缓存还是什么的还有节省服务器宽带资源,包括通过ffmpge生存列表都有成熟的解决方案,网上查的到,我就不说了。

但是对于个人

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值