说一下我的需求,我个人的需求是这样的,我自己想搞一个个人网盘来保存我的各种资料和视频,但是又要方便直接在硬盘操作,就是轻量级实现,一个简单的NGINX是不符合我的需求的,功能太过简单了,而市面上的开源的很多都太过重量级实现。
所以我实现的主要需求是个人NAS系统视频播放
这里提一下,我是H5网页播放。前端我就不说了,H5的播放器,解决方案太多了,不值得去写,主要是服务端的视频处理方案。
我最开始通过response的流的方式下载实现预览视频文件,本地还好,2.3G的视频文件可以秒级打开,但是即使是内网环境加上网络传输环节了,二十分钟都不一定下载的了,我在内网中电脑打开,用手机打开,30分钟一个2.5G的视频根本就没有打开,而且还有内存问题,经常异常,根本不行。
我在网上查找的解决方案很少,我从很少的资料中总结就两点:
1、通过ffmpeg(没有找到其他合适的视频处理框架)切片、转TS视频片段或者MP4片段
参考:Java通过cmd调用FFmpeg实现大视频文件的分段切割
但是我存在本地硬盘的视频不可能实现把视频文件通过5s切割一下,切的零零散散的,这太不优雅了。
这里提一下,这个结局方案适合做视频网站的,将视频切割成ts格式文件,然后通过HTTP请求,常规的下载文件流的方式响应即可,就像如下这样(代码实现),这些一小片一小片的就很好处理,无论是缓存还是什么的还有节省服务器宽带资源,包括通过ffmpge生存列表都有成熟的解决方案,网上查的到,我就不说了。

但是对于个人

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

被折叠的 条评论
为什么被折叠?



