实现私有云系统文档在线预览和音视频在线播放的方案

 

文档、音频、视频在线预览最近有个业务需求,需要给实验室开发的私有云系统增加文档在线预览、音视频在线播放功能。这个功能,虽然不是我擅长的工作,但是我参考成熟案例设计了初始方案,都在上面的图中,一图胜千言。

中间还是有几个要点需要说明:

1. 因为需要对文档、视频进行转码,必须在文件元数据数据库表中增加相应字段(转码状态、转码文件存储路径)。但是为了保证系统稳定性和减少混杂,所以应该以新建表的方式而不是以扩展原始表的方式来增加这两个字段。

2.音频文件现在各大浏览器都可以直接播放。但是视频文件由于格式众多,码率不同,必须统一转码为指定格式、码率、分辨率后才能播放。(如果不转码,就是根据不同的文件调用不同的浏览器插件来实现各自的解码,但这样做本身就不能跨平台。即使用vlc等跨平台插件,非流媒体文件还是不能实现边下边播)。word文档要进行两次转码,因为如果直接从word文档转为html,会产生很多乱码完全不能看。稳妥的方案还是先从word文档转为pdf文档,然后再从pdf转为swf播放。

3.视频转码对服务器压力很大。通常会导致服务器CPU占用率接近100%。为了保证云存储服务正常运行,应设置专门的视频转码服务器。使用通用的存储分布方案,对需要转码的文件排队,复制到视频转码服务器进行转码。转码成功后再复制到云存储服务服务器的指定目录下。对于视频转码服务器要定好预制脚本,其转码策略为晚上10点以后开始工作,到早上9点。并且避免对大文件(大于4G)进行转码。转码失败则24小时后重转,失败2次放弃转码。

4.文本文档转码对服务器压力小。在部署规模不是很大的情况下可以与云存储服务一起部署在同一台服务器上。并且其转码策略一般设置为用户上传完毕后即转码。转码失败立即重转,失败2次放弃转码。