上(shang)海(hai)2015年1月13日(ri)電 /美通社/ -- 近(jin)日,七牛(niu)為用(yong)戶推出(chu)應用(yong)場景全面(mian)解析(xi),旨在幫(bang)助開發者(zhe)們更便捷地使用(yong)云服務。七牛目前已服務超過15萬家用(yong)戶,這些用(yong)戶的應(ying)用(yong)場(chang)景也各有不同,其中典型(xing)的應(ying)用(yong)場(chang)景可以(yi)分為(wei)三大類(lei):音視頻應(ying)用(yong)場(chang)景、圖片應(ying)用(yong)場(chang)景及 App 分發類應用場景。七牛希望通過全面解析這些場景,幫(bang)助(zhu)開發者們避免在云服(fu)務使用(yong)過程中的走(zou)彎路。
七牛提供的全面解析先以音視頻作為開篇,原因在于從七牛平臺上可以看到
這個場景的巨大潛力。同時七牛也相信,視頻元年即將到來。音視頻類場景有一共同特點:對播放的流暢度要求高,對音視頻處理的需求也比較旺盛。并且音視頻的處理參數遠多于圖片,所以應用場景復雜度也較高。以下將總結音視頻的兩(liang)種類型(xing)。
一、音(yin)視頻(pin)點(dian)播類應用
音(yin)視頻點播資源來源主要有 UGC 的數(shu)據(ju)和客戶服(fu)務端直接(jie)上傳的數(shu)據(ju),這類應用一般會關注下面(mian)幾(ji)點。
1. 音(yin)視(shi)頻支持轉(zhuan)碼(ma)的(de)格式以(yi)及轉(zhuan)碼(ma)處理的(de)觸(chu)發場景(jing)
七牛用于音視頻處理使用的庫是“FFMPEG”,基本上常見的音視頻格式七牛都支持。觸發的場景可以是音視頻上傳后立即進行轉碼操作,也可以是通過七牛的“pfop接口”對已有的資源進行處理。
2. 針對UGC的數據上(shang)傳的框架(jia)以及(ji)上(shang)傳的速度
與圖片類應用不同,音視頻的文件通常比較大,所以建議使用七牛提供的斷點續上(shang)傳接口(kou)來保證上傳的速度和穩定性。
3. 是否(fou)支持對(dui)音(yin)視頻的(de)直接(jie)播放
對音視頻播(bo)(bo)(bo)放(fang)的支持依賴于播(bo)(bo)(bo)放(fang)器(qi),包(bao)括網頁端(duan)播(bo)(bo)(bo)放(fang)器(qi)和移動端(duan)播(bo)(bo)(bo)放(fang)器(qi),原(yuan)則上,只要播(bo)(bo)(bo)放(fang)器(qi)支持,那(nei)么存(cun)儲在(zai)(zai)七牛的音視頻資源就能直接播(bo)(bo)(bo)放(fang)。雖然(ran)播(bo)(bo)(bo)放(fang)器(qi)并不是七牛的業務(wu),但是我們還是推薦兩款優秀的在(zai)(zai)線(xian)播(bo)(bo)(bo)放(fang)器(qi) JW Player 和 Sewise Player。
4. 音視頻在(zai)線播放是否流暢
流(liu)媒體文(wen)件的播(bo)放流(liu)暢程度(du)主(zhu)要依(yi)賴于 CDN 的(de)緩存機制,七牛(niu)的(de) CDN 節點可以提供流媒體類型的文件緩存,保證視頻流、音頻流在播放時的穩定和流暢。不過還是建議對相同的源音視頻轉碼成多碼率的音視頻,以保證不同網絡狀況下的用戶都能無障礙訪問音視頻。針對視頻而言,對視頻進行“HLS切片”處理是我們推薦的。
5. 如何(he)保證音視頻私(si)密性(xing)和(he)安全(quan)性(xing)
首(shou)先,針對所有(you)的(de)資源(yuan),用戶都(dou)可以將資源(yuan)的(de)空間設(she)置為私有(you),來保護資源(yuan)的(de)私密性(xing),保證資源(yuan)需(xu)要帶“下載憑證”去訪問資源(yuan)。而對于私有(you)的(de) HLS 文件,七(qi)牛提(ti)供“pm3u8接(jie)口”讓 m3u8 索(suo)引文(wen)件和切片文(wen)件保持下載憑證的一致性。另外(wai)七牛提供“HLS加(jia)密接口”,可以滿(man)足用戶(hu)對音視(shi)頻的加(jia)密需求。還(huan)有 https 通道支(zhi)持防竊(qie)聽。
下(xia)面用(yong)七牛的兩個客戶案例(li)來(lai)具體說明下(xia):
美拍
美(mei)拍這樣的(de)短視頻(pin)分享類 APP,對七(qi)牛(niu)的需求就是上傳穩定性(xing)要(yao)有保證,下載播放體驗也要(yao)有保證。美拍目前對七(qi)牛(niu)的使用以及訴求可以概括為:
唱吧
唱吧是七牛平臺上(shang)非常典型的(de)音視(shi)(shi)頻案例。七牛為其提供了一整(zheng)套的(de)多(duo)媒(mei)體解決方(fang)案,從音視(shi)(shi)頻的(de)編解碼(ma)到流媒(mei)體分發,從大規模文件的(de)低成(cheng)本(ben)、高可靠性存(cun)儲到用戶(hu)端的(de)上(shang)傳、下(xia)載雙向加速。
點播類(lei)應用(yong)還(huan)有一個非(fei)常特殊的(de)(de)群體,那(nei)就是(shi):在(zai)線視頻(pin)監控。這類(lei)群體對實時(shi)上傳,海量存儲(chu),以及方便的(de)(de)空間回收都有非(fei)常嚴(yan)格(ge)的(de)(de)要求。因為更為復雜(za),之后我們將(jiang)用(yong)專門(men)的(de)(de)技術結合案例來(lai)講述。
二(er)、音(yin)視(shi)頻直播(bo)類應用
直(zhi)播(bo)服(fu)務(wu)(wu)是隨著用戶量的增(zeng)加應運而(er)生的,點(dian)播(bo)服(fu)務(wu)(wu)的穩步(bu)發展,必然會催(cui)生直(zhi)播(bo)的需(xu)求。直(zhi)播(bo)服(fu)務(wu)(wu)包(bao)含(han)交(jiao)互與無交(jiao)互兩種需(xu)求,這兩種有不同的延時需(xu)求。比如足球直(zhi)播(bo)屬于無交(jiao)互的,延時可以在10s左右,而有交互的比如秀場(chang),10s延遲(chi)就不能滿足(zu)。而視頻會議這種交互更(geng)是需(xu)要支持雙向(xiang)通信方式。七牛的(de)直(zhi)播服(fu)務已經在一(yi)些客戶的(de)生產(chan)環境(jing)中得到了應用。經過實踐,這類產(chan)品(pin)一(yi)般初期會關(guan)注下面幾點。
1. 直播服務需要(yao)用戶自己提(ti)(ti)供(gong)硬件(jian)還是七牛提(ti)(ti)供(gong)硬件(jian)。
七牛(niu)支持 RTMP 推流, RTMP 和 HLS 取流(liu),有(you) camera-sdk 和 player-sdk,也(ye)就是說,七牛既(ji)可以使用(yong)客戶提供的攝像(xiang)頭(tou),并將 sdk 燒(shao)錄到攝像頭(tou)中(zhong),那就不用(yong)關(guan)心推(tui)流(liu)協議,播放出來的可(ke)以(yi)是 RTMP 或者(zhe) HLS;如(ru)果不修改攝像(xiang)頭,那可以直接搭建一臺中轉服(fu)務器接入(ru)七(qi)牛的 API,直(zhi)接推 RTMP。
2. 直播流最多可以支持多少(shao)人(ren)同時在線
我們會根據客戶的(de)需求去調整并發支持(chi)的(de)數量(liang),一萬路并發和十萬路并發都是可以實現(xian)的(de)。
Photo:
Photo: