天天看點

認證故事|我和阿裡雲學知識前言正文結論

前言

在開發一個上傳點播系統時,自己第一次接觸到了阿裡雲的 OSS 對象存儲服務和媒體處理服務,在這個過程中,我學到了很多相關的經驗和知識。

正文

其實,這個上傳點播系統是項目中的使用者需求的一部分,我們在讨論和設計方案的時候,前後權衡了兩種具體的實作方案。接下來詳細介紹一下。

第一種方案,全權委托阿裡雲

這種方案,我們自己的開發工作工作量最少,我們隻需要開發一個雲存儲和多媒體處理的網關服務,把前端頁面上傳的視訊檔案和音頻檔案上傳到阿裡雲的對象存儲服務,然後,再調用阿裡雲的媒體處理服務接口,完成對應媒體檔案的轉碼任務。最後,拿到目标檔案位址,傳回給播放器滿足使用者播放需求。方案實作示意圖如下:

認證故事|我和阿裡雲學知識前言正文結論

雖然該方案的開發工作量少是優勢,但是也引出了另外一個問題,那就成本也比較高。為什麼這麼說呢,我們根據具體的業務場景分析一下其中的原因。首先,考慮到并發轉碼的費用較高(這是第一個現實問題),是以,使用者上傳的大量視訊檔案不可能完成實時轉碼,并生成目标檔案。這樣造成的結果就是我們需要儲存原始檔案一段時間,盡管使用者沒有下載下傳需求,我們也不能立即删除它們,這就導緻了一定量多餘存儲費用的産生(這是第二個現實問題)。是以,這套方案的成本分布情況是并發轉碼占大頭,原始檔案存儲占少部分,剩下的是點播費用。

基于第一種方案的上述問題,我們讨論出了第二套實作方案。

第二種方案,半委托阿裡雲。

這種方案,我們自己的開發工作量稍微會增加一些(其實是很多,哈哈)我們需要自己開發一個多媒體轉碼服務,将上傳的音頻檔案和視訊檔案統一轉碼成 m3u8 檔案,同時保證音頻編碼格式是 aac,視訊編碼格式是 h264,然後再把 m3u8 和 ts 分片檔案上傳到阿裡雲的對象存儲服務 OSS,然後把上傳檔案的存儲位址傳回給播放器滿足使用者的播放需求。方案實作示意圖如下:

認證故事|我和阿裡雲學知識前言正文結論

可以看得出來,這種方案減少了調用阿裡雲多媒體處理的接口,節省了多媒體處理相關的費用(這一點非常符合公司降本增效的企業文化),解決了方案一中的第一個問題。另外,我們不需要把原始媒體檔案上傳到 OSS 雲存儲,而是在本地完成轉碼,把最終的目标檔案上傳到 OSS 雲存儲,這樣就解決了方案一中的第二個問題。

結論

綜上所述,我們選擇了第二種方案,半委托方式。在這個過程中我們體驗了阿裡雲的對象存儲服務能力和多媒體處理能力,就是多媒體處理費用稍微有些高,但是這也無可厚非,畢竟這樣的定價在市面上也算中規中矩。了解音視訊的小夥伴都知道,多媒體轉碼會消耗大量的伺服器CPU資源,費用高也是可以了解的。

繼續閱讀