音視訊類場景有個通用特點:對播放的流暢度要求高,對音視訊處理的需求也比較旺盛。並且音視訊的處理引數遠多於圖片,所以應用場景複雜度也是很高的。在本文中將從兩種型別去總結。
音視訊點播類應用
音視訊點播資源來源主要有UGC的資料和客戶服務端直接上傳的資料,這類應用一般會關注下面幾點。
1. 音視訊支援轉碼的格式以及轉碼處理的觸發場景
七牛用於音視訊處理使用的庫是[FFMPEG],基本上常見的音視訊格式七牛都支援。觸發的場景可以是音視訊上傳後立即進行轉碼操作,也可以是通過七牛的[pfop介面]對已有的資源進行處理。
2. 針對UGC的資料上傳的框架以及上傳的速度
與圖片類應用不同,音視訊的檔案通常比較大,所以建議使用七牛提供的[斷點續上傳介面]來保證上傳的速度和穩定性。
3. 是否支援對音視訊的直接播放
對音視訊播放的支援依賴於播放器,包括網頁端播放器和移動端播放器,原則上,只要播放器支援,那麼儲存在七牛的音視訊資源就能直接播放。雖然播放器並不是七牛的業務,但是我們還是推薦兩款優秀的線上播放器JW Player和Sewise Player。
4. 音視訊線上播放是否流暢
流媒體檔案的播放流暢程度主要依賴於CDN的快取機制,七牛的CDN節點可以提供流 媒體型別的檔案快取,保證視訊流、音訊流在播放時的穩定和流暢。不過還是建議對相同的源音視訊轉碼成多位元速率的音視訊,以保證不同網路狀況下的使用者都能無障 礙訪問音視訊。針對視訊而言,對視訊進行[HLS切片]處理是我們推薦的。
5. 音視訊私密性和安全性怎麼保證
首先,針對所有的資源,使用者都可以將資源的空間設定為私有,來保護資源的私密性,保 證資源需要帶[下載憑證]去訪問資源。而對於私有的HLS檔案,七牛提供[pm3u8介面]讓m3u8索引檔案和切片檔案保持下載憑證的一致性。另外七牛 提供[HLS加密介面],可以滿足使用者對音視訊的加密需求。還有https通道支援防竊聽。
下面用七牛的兩個客戶案例來具體說明下:
美拍
美拍這樣的短視訊分享類APP,對七牛的需求就是上傳穩定性要有保證,下載播放體驗也要有保證。美拍目前對七牛的使用以及訴求可以概括為:
1. 上傳。需要保證上傳的穩定性,由於七牛不限制任何使用者的上傳頻寬,所以上傳的限制會出現在七牛的客戶這邊,所以在正常情況下,美拍長時間持續大量併發上傳並不降低美拍的服務體驗。
2. 視訊播放的流暢性。在多終端、多網路情況下,經過七牛CDN加速的美拍視訊播放體驗依然是他的強項,當然視訊比較短小也是播放流暢的重要因素,所以建議視訊播放站能夠考慮七牛提供的[HLS切片服務]。
唱吧
唱吧是七牛平臺上非常典型的音訊案例。七牛為其提供了一整套的多媒體解決方案,從音訊的編解碼到流媒體分發,從大規模檔案的低成本、高可靠性儲存到使用者端的上傳、下載雙向加速。
點播類應用還有一個非常特殊的群體,那就是:線上音訊監控。這類群體對實時上傳,海量儲存,以及方便的空間回收都有非常嚴格的要求。因為更為複雜,之後我們將用專門的技術結合案例來講述。
音視訊直播類應用
直播服務是隨著使用者量的增加應運而生的,點播服務的穩步發展,必然會催生直播的需求。直播 服務包含互動與無互動兩種需求,這兩種有不同的延時需求。比如足球直播屬於無互動的,延時可以在10s左右,而有互動的比如秀場,10s延遲就不能滿足。 而視訊會議這種互動更是需要支援雙向通訊方式。七牛的直播服務已經在一些客戶的生產環境中得到了應用。經過實踐,這類產品一般初期會關注下面幾點。
1. 直播服務需要使用者自己提供硬體還是七牛提供硬體。
七牛支援RTMP推流, RTMP和HLS取流,有camera-sdk和player-sdk,也就是說,七牛既可以使用客戶提供的攝像頭,並將sdk燒錄到攝像頭中,那就不用 關心推流協議,播放出來的可以是RTMP或者HLS;如果不修改攝像頭,那可以直接搭建一臺中轉伺服器接入七牛的API,直接推RTMP。
2. 直播流最多可以支援多少人同時線上
我們會根據客戶的需求去調整併發支援的數量,一萬路併發和十萬路併發都是可以實現的。