2014年7月14日星期一

Architect_013:视频网站的架构(摘录+整理)

视频网站架构分为两个部分:视频内容的准备和交付。

1. 视频内容的准备



(1)Service Manager:视频服务管理平台,所有的视频服务功能都在这里。
可以使用自己擅长的语言开发:Python, PHP, NodeJS, Java, Perl,也可以使用第三方的平台:Kaltura、MediaDrop、ViMP。
(2)Service Bus:所有的服务请求都通过消息发送到服务总线上。
因为大多数视频服务功能都比较耗时,比如转码等,因此使用异步通讯方式最合适。
这里的服务总线是广义的,不一定特指某个企业服务总线产品,消息中间件也行,比如ActiveMQ、ZeroMQ、Gearman、RabbitMQ。
(3)Service Worker:视频服务工作者,即工作线程。每个工作者都有自己擅长的工作:上传、打包、转码(使用自己擅长的语言开发:Python, PHP, NodeJS, Java, Perl,也可以使用第三方包:transcoder)、加广告、下载、传送(使用FTP、SCP、HTTP协议)等等。
(4)Local Storage Area:保存视频的元数据,可以使用关系型数据库,如MySQL,也可以使用NoSQL,如Redis。
(5)Delivery Storage:保存视频资料。
 
2. 视频内容的交付

(1)视频资料已经保存在Delivery Storage,接下来需要基于HTTP协议流化这些视频内容(HDS、HLS、Smooth Streaming)。
(2)HTTP Web服务器:Apache,NGinx,Lighttpd 和不同视频流插件。
(3)媒体服务器 : Red5,MistServer。
(4)Varnish:作为Web缓存。

参考文献:
1. http://www.jdon.com/45577
2. http://www.alkannoide.com/2013/07/05/how-to-create-and-architecture-an-open-source-andor-free-video-platform/
3. http://www.alkannoide.com/2013/04/18/mistserver-optimize-the-http-delivery-via-caching/
4. http://blog.csdn.net/fenglibing/article/details/10457837
5. http://www.open-open.com/lib/view/open1346511794881.html

没有评论: