视频文件普遍在300MB左右,这样的大小,无法直接上传.
在php的配置文件中,php能上传的文件和页面的超时时间都不允许直接上传.
所以文件分片上传,必不可少.
1.每个分片必须有标识,很容易想到hash.
2.同时上传每个块必须是异步的,所以用ajax
3.同时要做类型的检测,避免上传木马.
laravel的aetherupload上传神器,已经写好了这些功能,花点时间看看源码,很快就可以开箱即用.
众所周知,视频格式类型各种各样,要做好兼容简直难如登天.
1.第一步,使用前端播放视频插件video.js插件,进行播放窗口自定义,
同时由于该插件基于H5标签开发,可以说只支持MP4
另外两种没见过,不说了.
2.业务需求,要支持mp4,avi,wmv三种.而且需求很赶.
3.既然前端搞不定,那么后端能不能进行视频的格式转换呢?
百度大法好.ffmpeg是linux视频格式转换神器.
4.于是安装ffmpeg,百度了php的ffmpeg扩展,感觉不太清楚.于是直接使用exec调用.
由于上传视频可能同时,所以视频肯定不能同时进行格式转换.
所以使用了laravel的队列机制.把视频转换扔到队列里.
###################至此需求全部实现,优化过段时间再说.倒时候再补#####################