視訊服務是網際網路上需求巨大的服務,各種視訊類網站,例如優酷洋芋,搜狐電視,pptv,電視台,廣告公司,教育訓練教育類網站等都需要使用視訊服務來實作視訊上傳,編碼,解碼,二次編輯,分發等功能。據統計,視訊服務占到了所有網際網路流量的57%。随着智能手機,可穿戴式裝置,虛拟現實等技術的迅猛發展,視訊服務的需求越來越大。是以,所有的公有雲廠商都不約而同地提供了各種視訊服務,以幫助使用者快速開發,并實作大規模的自動部署和内容分發。
在部署和使用視訊服務的過程中,主要有一些挑戰,包括基礎設施,系統管理,内容管理,數字權限管理,安全性,二次編輯,編碼解碼,分發和傳輸等等。公有雲廠商一般都解決了基礎設施,系統等功能,而在具體的功能上有一些差別。
我們将會選擇亞馬遜aws,
阿裡雲,微軟azure和七牛雲作為我們分析的對象,比較他們在視訊服務上提供的一些功能。不過本文不涉及存儲的性能,視訊處理的效率,cdn,
使用的價格,代碼api sdk的接口比較等,如果希望了解視訊處理的進一步情況,可以通過
[email protected] 聯系我們。
文中内容基本參考各公有雲的官方網站,如有遺漏,也歡迎和我們聯系。
amazon
web service簡稱aws,是全球最大的公有雲平台。它于2006年推出,以web服務的形式向企業提供it基礎設施服務,現在通常稱為雲計算。其主要優勢之一是能夠以根據業務發展來擴充的較低可變成本來替代前期資本基礎設施費用。亞馬遜網絡服務所提供服務包括:亞馬遜彈性計算網雲(amazon
ec2),亞馬遜簡單儲存服務(amazon s3),亞馬遜簡單資料庫(amazon simpledb),亞馬遜簡單隊列服務(amazon simple queue
service)以及amazon cloudfront等。aws已經為全球190個國家/地區内成百上千家企業提供支援。資料中心位于美國,歐洲,巴西,新加坡和日本。作為雲計算領域真正的大佬,一旦亞馬遜攜aws正式進入中國,那麼對國内相關的雲計算企業可能會帶來深刻影響,目前國内像阿裡巴巴,盛大以及華為都在提供類似雲計算服務。
aws上的視訊服務被稱為elastic transcoder,即彈性編碼服務。它是在aws中進行媒體轉碼的工具,是一種經濟實惠且具有高可擴充性和易用性的視訊轉換方法,開發人員和企業可以用它來将媒體檔案從源格式轉換(或稱為“轉碼”)到其他版本,以便在智能電話,平闆電腦和 pc 等裝置上播放。
圖 1 amazon elastic transcoder的圖示
• 易于使用
elastic transcoder 的設計目标是易于使用。您可以通過 aws 管理控制台,服務 api 或軟體開發工具包開始使用。系統轉碼預置模版使客戶在首次使用時能輕松獲得正确的轉碼設定。我們提供了預定義預置模版,以建立可在大部分裝置(如智能電話或平闆電腦)上播放的媒體檔案,還提供了預置模版,以建立專為在特定裝置(如
amazon kindle fire hd 或 apple ipod touch)上播放而優化的媒體檔案。您還可以建立分段檔案和播放清單,以使用 hls 協定傳遞到相容的裝置中。開發人員可使用适用于
java,.net,node.js,php,python 和 ruby 的
aws 軟體開發工具包和新的 aws 指令行界面來建構需要轉碼的應用程式。
• 彈性伸縮
elastic transcoder 為實作根據視訊轉碼工作負載無縫擴充而設計。amazon elastic
transcoder 的架構目标就是處理大量媒體檔案和大型檔案。轉碼管道使您能夠并行執行多個轉碼任務。amazon
elastic transcoder 利用其他 amazon web services,如 amazon s3, amazon ec2,amazon dynamodb,amazon simple
workflow (swf) 和 amazon simple notification service
(sns),來提供可擴充性和可靠性。
• 經濟高效
elastic transcoder 采用根據内容時長定價的模式,即:按被轉碼的媒體輸出時長付費(按分鐘計)。例如,如果您的轉碼輸出視訊的時長是
30 分鐘,您将支付 30 分鐘的視訊轉碼費用。同樣,如果您從一個時長
30 分鐘的輸入檔案建立了一個時長 20 分鐘的視訊剪輯,您将支付
20 分鐘的轉碼費用。使用 amazon elastic transcoder,沒有最低轉碼量限制,無需月度承諾或簽署長期合同。
• 托管
elastic transcoder 使您能夠集中精力處理内容,而無需在分布式雲環境中管理轉碼軟體。該服務會處理擴充和系統操作,并管理保持編解碼器處于最新狀态的程序。還可與我們的服務
api 和軟體開發工具包結合使用,使您能夠輕松建構可使用 amazon elastic transcoder 的媒體解決方案。
• 安全
您的内容完全在您的掌控之下:您的資産存儲在您自己的 amazon s3 存儲段中,您通過 iam 角色授予我們對内容的通路權限。這樣,您無需放棄控制權,就能簡單且無縫地調整您的目前安全與身份認證架構。在建構 amazon
elastic transcoder 的過程中,我們利用了建構其他 amazon web services 時獲得的最佳安全實踐。要了解有關 aws 安全性的更多資訊,請參考我們的
aws 安全中心。有關合規性的更多資訊(包括 mpaa 最佳實踐),請參考
aws 合規性。
• 無縫傳輸
使用
amazon elastic transcoder,amazon s3 和 amazon cloudfront,您可以存儲,轉碼和傳輸您的内容。通過在 amazon elastic
transcoder 中設定 cloudfront 配置設定的
s3 權限,現在隻需要一步就可以用 amazon elastic transcoder 轉碼内容并通過連續下載下傳或帶 cloudfront 的 hls 流媒體傳輸多個輸出視訊。
• aws 內建
elastic transcoder 提供了一個重要的媒體建構塊,用于在 aws 上建立端對端媒體解決方案。例如,您可以使用 amazon glacier 存儲主要内容,使用
amazon elastic transcoder 将主要内容轉碼成存儲在 amazon s3 中使用者配置設定的呈現,并使用 amazon cloudfront 通過
internet 大規模流化這些呈現。
以下内容來源于aws官方網站介紹: https://aws.amazon.com/cn/elastictranscoder/details/
elastic transcoder 提供了以下功能,使視訊轉換變得簡單輕松,價格便宜且具有可擴充性。
• 轉碼管道:您可以通過轉碼管道設定和并行運作轉碼工作流。您可以将轉碼管道用作建立靈活的工作流的一種方式。例如,您可以設定一個管道來對時間短的内容進行轉碼,再設定另一個管道來對時間長的内容進行轉碼,或者也可以針對不同的分辨率或存儲位置配置設定不同的管道。
• 轉碼作業:轉碼作業是将媒體檔案從一種格式轉碼成另一種格式的工作。您可以通過一種作業從一個輸出檔案中建立比特率和格式不同的多個輸出檔案。例如,一個作業可以建立由一個同一個輸入檔案的不同分辨率和比特率組成的呈現。您還可以建立僅限音頻的交換流,建立
hls 檔案集時通常使用此流媒體。在建立作業時,您需要指定 amazon elastic transcoder
執行轉碼作業時所需的資訊,包括:要轉碼的檔案,轉碼後輸出檔案的名稱以及要使用的預置模版。轉碼作業在轉碼管道内運作,轉碼管道可同時運作多個作業,是以您可以在您的
aws 賬戶中同時運作許多作業。
• 系統轉碼預置模版:amazon elastic transcoder 提供了一組轉碼預置模版,使您不必為弄清各個裝置适合的轉碼設定而進行大量猜測。您可以從那些可建立能在任何裝置上播放的輸出的預置模版中進行選擇,或選擇針對特定裝置的預置模版。要獲得盡可能廣泛的相容性,請選擇“廣度預置”模版,以建立可在大部分裝置上播放的輸出檔案。要獲得最佳品質和檔案大小,請選擇“優化預置”模版,以建立适合特定裝置或裝置類别的輸出檔案。
• 自定義轉碼預置模版:我們提供的轉碼預置模版适用于大部分裝置和平台,但是有些客戶可能需要建立特定的預置模版,以達到特殊的輸出目标。使用自定義預置模版,您可以自定義現有轉碼預置模版并在一個地區的
aws 賬戶中的所有管道中使用。
• 自動視訊比特率優化:借助這個自動視訊比特率設定,amazon elastic transcoder 将自動調整比特率,進而優化您的轉碼輸出的視覺品質。使用最大比特率參數可以限制輸出視訊的瞬時比特率。這樣做可以生成限制最大比特率的輸出檔案,符合某些裝置對回放規格的要求。結果就是,您獲得的視訊檔案看上去很棒,但其壓縮性比您為整個檔案選擇一種比特率時要好。
• 監控和管理:您可以通過 aws 管理控制台或 amazon elastic
transcoder api 或軟體開發工具包檢視轉碼管道和作業的狀态。您還可以通過停止,啟動或取消操作來控制管道和作業。
• 通知功能:amazon elastic transcoder 使用 amazon
simple notification service (sns) 來通知您有關轉碼事件的資訊。您的轉碼作業開始,完成時,或存在警告和錯誤條件時,您将收到通知。使用通知功能是監控和管理您的轉碼工作負載的有效方式。您可以依靠
amazon elastic transcoder 為您通知改變,這樣您就不需要輪詢狀态服務。
• 縮略圖:amazon elastic transcoder 可為您建立輸出視訊的縮略圖。您可以設定縮略圖的大小,螢幕的高寬比以及其他參數,包括您希望生成的縮略圖的個數。如果您希望添加章節标記,提供視覺掃描功能或純粹想為内容提供最具代表性的縮略圖,則生成多個縮略圖會非常有用。
• 視覺水印:amazon elastic transcoder 可以在輸出的視訊上覆寫最多四個靜态圖像。要為輸出視訊打水印,隻需提供包含
png 或 jpg 圖像的檔案,并使用轉碼預設以指定水印的位置,比例,尺寸和不透明度等資訊。可以使用此功能在輸出中添加節目标志或其他辨別。
• 字幕:amazon elastic transcoder 支援字幕。添加字幕就是将配合視訊的文字顯示在視訊中的過程,字幕可以顯示節目中的聲音片段,也可以将聲音翻譯成其他的語言。在将視訊在兩種格式之間進行轉碼時,使用
elastic transcoder 可以添加,删除或保留字幕。
• 格式:amazon elastic transcoder 支援轉碼到以下輸出格式:
hls 使用
mpeg-2 ts 容器容納 h.264 編碼的視訊和 aac
或 mp3 編碼的音頻
smooth streaming 使用 fmp4 容器容納 h.264 編碼的視訊和
aac 編碼的音頻
xdcam 使用 mxf 容器,視訊以 mpeg-2 編碼,音頻以 pcm 編碼
mp4 容器,視訊以
h.264 編碼,音頻以 aac 或 mp3 編碼
webm 容器,視訊以
vp8 編碼,音頻以 vorbis 編碼
flv 容器,視訊以
mpg 容器,視訊以
mpeg-2 編碼,音頻以 mp2 編碼
mp3 容器,音頻以
mp3 編碼
mp4 容器,音頻以
aac 編碼
ogg 容器,音頻以
vorbis 或 flac 編碼
oga 容器,音頻以
flac 編碼
flac 容器,音頻以
gif 動畫
• hls 使用 aes-128 加密:您可以生成受 aes-128 加密保護的 hls 流。使用此選項建立的工作将對媒體檔案進行加密并在播放清單中引用加密密鑰。除工作對象外,您還可以選擇使用 sse-s3 讓 elastic transcoder 将加密資料鍵直接寫入 s3,在 s3 中資料鍵将受到 aws-kms 主密鑰的保護。
• drm 打包:我們支援對 microsoft
playready drm 進行打包。您可以使用 microsoft playready piff 1.1 保護 smooth streaming 檔案,還可以使用
discretix 3.0.1 for microsoft playready 保護 hls 輸出。當您建立轉碼作業的時候,請務必将加密密鑰和 playready 許可證提供方提供的許可證伺服器
url 包含在其中。
• 加密媒體檔案:您可以使用加密的夾層檔案作為 amazon elastic transcoder 的輸入内容,或讓服務來對輸出内容進行加密以保護您轉碼後的檔案。支援的選項包括使用
amazon s3 伺服器端加密的完全托管內建,以及您自己管理并使用 aws key management
service (kms) 進行保護的密鑰。而且加密支援不隻限于視訊檔案。我們可以保護縮略圖,字幕,甚至是水印。
• 漸進式下載下傳所需媒體:您可以将媒體内容的原始版本存儲在 amazon s3 中,并對
amazon cloudfront 下載下傳配置設定進行配置,實作您的視訊和音頻檔案漸進式下載下傳。常用的媒體檔案被緩存到節點上,以便于您進行擴充并為浏覽者提供最佳性能。
• 剪輯生成:您可以從源媒體建立剪輯,方法是指定剪輯的開始時間以及(可選)所需的持續時間。在轉碼作業中,您可以為每個輸出生成不同長度的剪輯(或将整個檔案轉碼)。您隻需按轉碼的輸出時長付費,如果您有一個時長為五分鐘的輸入檔案,并從該檔案建立了一個時長為一分鐘的輸出,則隻需支付一分鐘的轉碼費用。
• 進階設定:您可以使用進階設定來覆寫預設設定或自動化作業和預置參數。例如,您可能希望強制使用或限制特定的輸出幀速率,最大比特率以及循環方式或設定特定的 h.264 或 vp8 配置檔案等級。
• 多地區:amazon elastic transcoder 可在以下六個 aws
地區使用:美國東部(弗吉尼亞北部),美國西部(俄勒岡),美國西部(加利福利亞北部),歐洲(愛爾蘭),亞太地區(新加坡)和亞太地區(東京)。
自适應比特率流媒體
自适應流媒體提供更優秀的使用者體驗,可針對網絡狀況和 cpu 使用率進行調節,自動切換到更高或更低品質的資料流。amazon
elastic transcoder 可以建立一組采用不同分辨率和比特率的分段式輸出呈現,以及相應的播放清單或清單檔案,全部儲存在
amazon s3 中。amazon elastic transcoder 支援以下做法:
• http
live streaming (hls):您可以使用 amazon
elastic transcoder 建立與第 3 版或第 4
版 hls 協定相容的完整輸出内容集合。hls 普遍用于觸及 ios 裝置,android 裝置,機頂盒和基于浏覽器的播放器。然後您可以單獨使用 amazon s3 或搭配使用 amazon cloudfront 來傳遞您的媒體内容。
• smooth
streaming:您可以使用 amazon elastic
transcoder 建立一組分辨率和比特率各不相同的 mp4 輸出片段,和相應的
ism 和 ismc 清單檔案。然後使用 amazon
cloudfront 或 iis 伺服器将媒體檔案傳遞到使用
smooth streaming 功能的玩家,例如 xbox,windows phone 以及利用 microsoft silverlight 的用戶端玩家。
阿裡雲是阿裡巴巴集團旗下雲計算品牌,全球領先的雲計算技術和服務提供商。創立于2009年,在杭州,北京,矽谷等地設有研發中心和營運機構。2010年,阿裡雲對外開放其在雲計算領域的技術服務能力。使用者通過阿裡雲,用網際網路的方式即可遠端擷取海量計算,存儲資源和大資料處理能力。截至2014年6月,阿裡雲服務的客戶數超過140萬,遍布網際網路,移動app,音視訊,遊戲,電商等各個領域。根據idc調研報告,阿裡雲是國内最大的公共雲計算服務提供商。
阿裡雲上的視訊服務被稱為媒體轉碼(media transcoding),是為多媒體資料提供的轉碼計算服務。它以經濟,彈性和高可擴充的音視訊轉換方法,将多媒體資料轉碼成适合在pc,tv以及移動終端上播放的格式。媒體轉碼服務基于阿裡雲雲計算服務建構,它改變了以往進行轉碼時需要購買,搭建,管理轉碼軟硬體的高昂投入以及配置優化,轉碼參數适配等複雜性問題;同時,借助雲計算服務的彈性伸縮特性,可以按需提供轉碼能力,進而最大限度的滿足業務轉碼需求,避免資源浪費。媒體轉碼服務功能包括web管理控制台,服務api和軟體開發工具包。您可以通過它們使用,管理轉碼服務,也可以将轉碼功能內建到您自己的應用和服務中。
圖 2 阿裡雲媒體轉碼的圖示
<b>•</b><b> 經濟</b>
無需前期投資,隻按實際用量付費
同等品質視訊,檔案更小,更省流量
• <b>專業</b>
成熟編碼算法,更高視訊品質
智能分析視訊内容,預置智能模闆
<b>•</b><b> 彈性</b>
高速穩定的并行轉碼系統
轉碼任務規模無縫擴充
<b>•</b><b> 高擴充</b>
提供豐富的媒體處理工具
自定義轉碼模闆,按需設定
以下内容來源于阿裡雲官方網站介紹:
https://help.aliyun.com/document_detail/mts/product-manual/operation.html?spm=5176.docmts/introduction/product_advantages.6.82.c5u9uk
<b>•</b><b> 轉碼</b>支援對存儲于oss中的音,視訊檔案按需轉碼。
<b>•</b><b> 管道</b>可以通過管道來區分不同的轉碼業務,同一個管道内的作業支援優先級設定。同時,通過為管道配置設定轉碼資源,可以控制管道同時處理轉碼作業的能力。
<b>•</b><b> 截圖</b>支援對存儲于oss上的視訊檔案截取指定時間的jpg格式圖像。
<b>•</b><b> 媒體資訊</b>支援擷取存儲于oss上的音,視訊檔案的編碼和内容資訊。
<b>•</b><b> 水印</b>支援在輸出的視訊上覆寫最多四個靜态圖像。水印圖檔支援png格式。
<b>•</b><b> 預置模版</b>媒體轉碼服務為适配一定網絡帶寬範圍的輸出視訊預設了一系列轉碼模版:
<b>預置智能模版</b>會根據輸入視訊的具體情況而自動調整轉碼參數以滿足輸出視訊要求。由于輸入視訊本身有差異(分辨率,碼率等),不一定所有的預置智能模闆都适合。是以需要通過模版分析作業來擷取指定輸入檔案的可用預置模版。多媒體檔案的轉碼,實際是在盡可能壓縮檔案大小(即降低碼率)與盡可能減少檔案品質損失之間的平衡,預置智能模版是品質優先的。
<b>預置靜态模版</b>可以直接調用的預置模版,無需進行模版分析。它分為三類:視訊轉碼模版,音頻mp3轉碼模版及m3u8切片模版,涵蓋常見的播放裝置及帶寬條件,以碼率控制優先。
<b>•</b><b> 自定義模版</b>由使用者自行定義轉碼參數的轉碼模版,它是轉碼參數(音頻,視訊,容器等)的集合,可以滿足使用者個性化的轉碼需求。
<b>•</b><b> 剪輯輸出</b>支援指定時間點開始,截取指定時長的媒體剪輯。
<b>•</b><b> 分辨率按比例縮放</b>轉碼輸出參數中僅指定寬或者高,另一個參數留白,則媒體轉碼服務會按照原視訊的寬高比自動設定另一個參數。
<b>•</b><b> m3u8輸出自定義切片時長</b>支援自定義設定m3u8切片時長,範圍從1秒至60秒;有助于使用者根據播放端帶寬條件來設定切片時長,降低使用者首屏加載時間。
<b>•</b><b> 音視訊抽取</b>從視訊檔案中單獨分離出音頻或視訊。
<b>•</b><b> 視訊畫面旋轉</b>支援輸出視訊旋轉視訊畫面一定角度。
• <b>視訊轉gif</b>支援視訊轉碼為gif輸出。
• <b>消息通知內建(公測)</b>內建mns服務。為管道設定消息通知屬性,管道内轉碼作業異步接口的傳回消息可通過消息通知服務主動推送到使用者的消息接收服務。
微軟azure是微軟提供的雲計算平台,主要目标是為開發者提供一個平台,幫助開發可運作在雲伺服器,資料中心,web和pc上的應用程式。雲計算的開發者能使用微軟全球資料中心的儲存,計算能力和網絡基礎服務。azure服務平台包括虛拟機,雲服務,移動服務等等。
azure上的媒體服務被稱為media service,azure 媒體服務為世界各地的消費者和企業流式處了解決方案提供支援。媒體服務與功能強大且高度可縮放的基于雲的編碼,加密和流式處理元件合并,可幫助擁有寶貴的進階視訊内容的客戶在當今最受歡迎的數字裝置(例如平闆電腦和手機)上輕松地與更廣大的觀衆群體取得聯系。此外,借助可增強可發現性的
azure media indexer,可簡化分發的跨平台播放器以及可從實時内容輕松轉移到按需播放内容的雲
dvr 功能等令人興奮的新功能,以及大型增值第三方合作夥伴生态系統,媒體服務真正做到為客戶提供同類最佳的視訊内容解決方案。親自來檢視并了解媒體服務如何為端到端媒體工作流提供支援。
圖 3 azure media service的圖示
<b>音頻與視訊的大規模編碼</b><b>,存儲和流式傳輸</b>
通過azure 媒體服務,可建構綜合性端到端媒體工作流,降低與內建多項産品和提供程式關聯的成本。您可從微軟及其合作夥伴中選擇已內建且立即可供使用的服務。
<b>實時流式傳輸和視訊點播</b>
該服務具備經營您自己的雲端視訊平台(提供實時節目和視訊點播 (vod))所需的一切。azure 媒體服務包括應對媒體處理,傳送和消費所需的全部工具和服務。
<b>快速攝取選項和動态打包</b>
通過支援udp 或郵寄硬碟等方式快速上載資産。内容可編碼為多碼率
mp4 檔案,并可随時提供所有格式,内容僅存儲一個副本,借此可優化存儲使用率。
<b>雲規模工作室級别編碼</b>
利用我們的“基本”,“标準”和“進階”版編碼保留單元,專門針對你的工作流的要求對編碼速度進行定制。利用我們的
azure 媒體編碼器,該編碼器支援各種 studio 級輸入和輸出檔案格式,并基于輸出
gb 數計費。
<b>具有內建内容傳遞網絡功能</b>
從各種來源拉取内容,可提供基于令牌的身份驗證和地域阻止功能。有了azure cdn,您可以通過全球資料中心的穩定網絡,向世界各地的最終使用者提供高帶寬,低延遲,高可用的内容。
<b>使用</b><b> aes 或
playready 提供内容保護和加密</b>
您的資産在上載期間可通過加密得到妥善保護,随後會用安全的方式存放在存儲系統中,在播放期間則通過 microsoft playready 數字版權管理
(drm) 或 aes 加密方式進行保護。
<b>針對所有播放需求的一個播放器</b>
借助微軟播放器架構,播放器和 sdk,您可以為最流行平台和裝置上最多數量的客戶提供服務。
<b>廣泛的增值合作夥伴生态系統</b>
我們擁有一個融入知名第三方媒體技術的可擴充平台,這些技術已針對雲進行了優化和內建,具有可伸縮性,實行統一計費。
azure
media service主要包含5部分功能: 編碼,azure 媒體播放器,媒體索引器,内容保護,實時和按需流式處理。
編碼
azure的編碼被稱為是雲規模的工作室級編碼,支援多種格式的編碼,可縮放的批處理,縮略圖,疊加,拼接和剪輯生成,高性能編碼,web,專業和廣播工作流支援,iso 和 cdsa 認證的安全編碼平台。
媒體播放器
media player 可以将内容通過一個獨立的播放器在多個裝置上播放,支援最流行的螢幕和裝置,自動選擇最佳播放格式,友善地內建到
web 和應用解決方案中,可讓你使用熟悉的 javascript api 開發,包括
flash 和 silverlight 的自動回退,提供內建内容保護。
媒體索引器
媒體索引器可以支援自動生成标準字幕檔案,使用基于深度神經網絡的點陣索引搜尋你的庫,從一組快速增長的語言中進行選擇,使用自定義詞彙适應功能來識别特定于域的語音内容,并行處理作業并輕松将它們內建到現有工作流中,提取話語中的關鍵字以幫助進行标記和建議。
内容保護
azure的内容保護通過使用 aes 加密或多 drm common
encryption(例如 playready 和
widevine)安全傳遞内容。支援保護内容(從雲上載到播放),支援 aes 以及 common encryption 的多 drm(playready 和 widevine),使用動态加密簡化密鑰管理并幫助内容更新,與 active directory 或你自己的資料庫內建,可以使用簡單的
api 或 web 門戶配置保護規則,對所有裝置使用用戶端
sdk 保護播放。
實時和按需流式處理
支援向幾乎任何裝置大規模傳遞内容,包括實時打包為 hls,mpeg-dash 和平滑流式處理,實時
aes 加密和 playready drm 技術,與内容傳遞網絡直接內建以進行自動預配,可應對所有閱聽人規模伸縮,用于剪裁和呈現形式篩選的動态清單操作,完整的雲
dvr 工作流功能。
七牛,是一家雲存儲初創企業,主要業務是存儲和cdn, 主要做靜态檔案,包括富媒體一體化解決方案,解決富媒體存儲,上傳下載下傳加速,資料處理,包括圖檔處理,音視訊處理,比如說做縮略圖,打水印。此外,七牛還提供了鏡像存儲,用戶端直傳以及斷點續上傳等功能,友善開發者的使用。
七牛的資料處理産品中包括了音視訊/流媒體線上處理,主要功能如下:
支援常見ffmpeg音視訊格式互轉,如mp3,aac,m4a,mp4,avi,flv。
支援視訊幀提取,可以取視訊任意時間點的截圖。
支援流媒體傳輸協定(hls)。
七牛的音視訊處理主要包括編解碼,切片,憑借,擷取元資訊,縮略圖,水印,采樣縮略圖,私有m3u8支援等等。此外還提供頗有中國特色的短視訊鑒黃服務,這個服務是由廣州圖普網絡科技有限公司提供的。
七牛的音視訊編解碼支援的标準和開源的ffmpeg完全一緻。
ffmpeg是一套可以用來記錄,轉換數字音頻,視訊,并能将其轉化為流的開源計算機程式。它包括了領先的音/視訊編碼庫libavcodec等。
圖 4 ffmpeg的圖示
根據上面的分析,我們可以基本上得出下面一個粗略的功能比較。所有的視訊處理平台包括了上傳,存儲,轉碼,智能處理,内容保護,cdn和用戶端等等功能。
<b> </b>
<b>上傳</b>
s3工具上傳
oss工具上傳
http(s)或udp上傳檔案,rtmp或者mpeg-ts/rtp發送直播流
七牛工具
<b>存儲</b>
s3
oss
存儲賬戶
七牛存儲
<b>轉碼</b>
各種格式
ffmpeg支援格式
<b>智能處理</b>
水印,縮略圖,字幕,剪輯,旋轉
水印,縮略圖, 剪輯,旋轉
水印, 縮略圖, 字幕,疊加, 拼接,剪輯, 視訊索引,
延時攝影, 人臉識别, 實施編碼。
水印,縮略圖, 字幕,拼接,剪輯, 人臉識别,短視訊鑒黃服務,
<b>内容保護</b>
aes 以及drm(playready)
存儲上實作aes,不支援drm
aes 以及drm
(playready和
widevine)
無
<b>cdn</b>
cloudfront
阿裡雲cdn
azure cdn
七牛自有和其他廠商cdn
<b>用戶端</b>
第三方
azure media player,第三方
<b>sla</b>
n/a
99.9%
99.8%
我們接下來看在下面四個最重要功能上,各大主流雲平台的差别。
這是所有平台都共同支援的主要功能,在各平台上支援的格式大同小異。從編碼的格式支援範圍而言,azure上的進階編碼器在視訊支援avc, avid dnxhd, dvcpro/dvcprohd,音頻上還支援aes,dolby® digital plus (e-ac3) 最高可達7.1聲道,不愧為号稱工作室級别的編碼。七牛使用的ffmpeg是開源軟體中支援格式最多的視訊編解碼工具,一些比較冷門的編碼器,比如ayuv,yamaha
smaf應該都可以支援。阿裡雲支援的格式也相對廣泛,常見主流的編碼器都可以。aws由于産品推出得比較早,很多新的格式都不太支援。
轉碼
格式有限
常用編碼器都支援
工作室級别的編碼,支援範圍廣泛
開源工具,支援範圍廣泛
視訊智能處理也是視訊服務中非常重要的功能,這裡我們把功能分成了兩部分,一部分叫基本功能,比如視訊剪輯,裁切,水印,字幕,縮略圖等等。還有一部分叫做進階功能,包括視訊索引,延時攝影,人臉識别等功能。
基本功能
水印
支援
縮略圖
字幕
剪輯(clip)
拼接
旋轉
90度旋轉
直播
進階功能
視訊索引
實時編碼
延時攝影
人臉檢測
支援*
語音視訊背景去噪
鑒黃服務
視訊平滑和穩定化
運動檢測
通過上表可以看出,視訊的智能處理将會成為公有雲視訊服務的一個重點。所有的廠商都支援水印,縮略圖,字幕,剪輯,直播等等功能,不過拼接和旋轉在基本功能中也不是都支援。
對于進階功能而言,azure的media service做到了絕對優勢,包括視訊索引,即通過語音識别生成全視訊的字幕并支援檢索,直播可以實作實時編碼,還有微軟研究院的一些智能項目,例如延時攝影(hyperlapse), project oxford中支援的人臉檢測,視訊平滑和穩定化,運動檢測等等,在azure的media service中都可以使用。七牛利用了第三方的服務,也提供了一定的進階功能,例如通過face++提供的人臉識别和廣州圖普提供的鑒黃服務,也為使用者的視訊處理和分析提供了友善。
對于内容保護,國内的廠商遠遠地落在了海外廠商的後面,aws和azure都提供了drm的技術,例如playready,保證了視訊的安全性和版權。阿裡雲在存儲上提供了aes加密,對于drm則沒有原生提供。
aes 以及drm (playready和widevine)
對于直播,所有的公有雲廠商都支援直播的功能,所不同的是實作方法。aws,阿裡雲的直播是通過iaas方式,建構相應的直播轉碼伺服器,再加上其相關的cdn産品而實作的。比如aws為了實作直播,可以使用wowza streaming engine, adobe media server或者iis live smooth streaming來建構一套完整的直播平台。
圖 5 aws的直播架構圖
而阿裡雲也是通過類似的技術來實作。
圖 6 阿裡雲的線上直播架構
七牛也是類似。
azure将直播架構做成了paas平台,使用者不需要配置iaas伺服器,就可以通過線上的接口實作視訊的實時傳輸,編碼并通過cdn進行分發,架構圖如下:
圖 7 azure直播架構圖
這樣簡化了使用者運維和部署iaas伺服器的複雜度。
本文分析了aws,阿裡雲,azure和七牛在視訊服務上的一些功能。由于視訊服務是網際網路上最重要的服務之一,其中涉及到的内容也非常複雜,希望本文能夠給需要在公有雲上使用視訊服務的使用者起到一些抛磚引玉的作用,對選擇合适的雲有所幫助。如果您需要了解更多關于公有雲的知識,請聯系我們:[email protected]
文中資料參考來源包括:
<b>亞馬遜</b><b>aws:</b>
https://aws.amazon.com/cn/elastictranscoder/?nc2=h_l3_as
<b>微軟</b><b>azure: </b>
https://azure.microsoft.com/en-us/documentation/articles/media-services-overview/
<b>阿裡雲</b><b>:</b>
https://help.aliyun.com/document_detail/mts/introduction/concepts.html?spm=5176.7616369.9.2.pcgbqx
<b>七牛</b><b>:</b>
http://developer.qiniu.com/docs/v6/api/reference/fop/av/