如何基於開源構架設計一個影片平臺?

banq發表於2013-07-09

目標是使用開源工具建立一個管理和提供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

使用Varnish. 代理快取可以支援高負載,如下圖:

如何基於開源構架設計一個影片平臺?

原文:How to create and architecture an open-source and/or free video platform ? | Video, Web, Technologie

參考:Netflix影片架構:

http://www.jdon.com/artichect/netflix.html

[該貼被banq於2013-07-09 07:29修改過]

相關文章