目标是使用开源工具创建一个管理和提供HTTP流媒体视频的架构。工具必须开源或免费的平台;架构设计必须满足可靠性和快速扩展的能力。分为两个部分:内容的准备和交付。
第一部分内容的准备:
分为三个部分:服务的管理 总线和工作者,如下图:
服务的管理:拥有协调所有服务,提供一个完整的功能,可以使用 Python, PHP, NodeJS, Java, Perl,也可以使用Kaltura 平台。
使用MySQL或Redis等数据库存储视频信息等元数据。
工作者:实现编码 打包和传送。
编码:使用 ffmpeg 和其不同的库包 (libfaac, libx264, …). 也可以使用mencoder
打包:打包时可能需要改变视频格式,转换工具如下:
MP4Box : to manage MP4 files or MPEG-DASH
f4fpackager : to generate HDS, you will need to deploy the HDS module for Apache in the delivery platform
mediasegmenter : to generate HLS
FLV2DTSC : to generate DTSC if you want to use MistServer (a solution I told in previous articles).
传送:最后将视频传送到目的地,使用协议 FTP, SCP, HTTP,这样可以将内容推送到交付存储空间。
如果希望提升冗余,增加平台的可靠性,建议引入Transcodem,有github项目。
第二部分:交付
现在视频资料已经存在交付存储空间,我们需要基于http协议流化这些内容(HDS, HLS, Smooth Streaming). 起初可以先架设一台服务器,我们的架构水平伸缩扩展到多台服务器,如下服务器软件:
(1)HTTP WEB服务器 : Apache, NGinx, Lighttpd 和不同插件(module origin from Adobe to stream HDS for example)
(2)媒体服务器 : Red5, MistServer
原文:How to create and architecture an open-source and/or free video platform ? | Video, Web, Technologie
http://www.alkannoide.com/2013/07/05/how-to-create-and-architecture-an-open-source-andor-free-video-platform/