《阿里云:2023多媒體行業質量成本優化及容災方案白皮書(36頁).pdf》由會員分享,可在線閱讀,更多相關《阿里云:2023多媒體行業質量成本優化及容災方案白皮書(36頁).pdf(36頁珍藏版)》請在三個皮匠報告上搜索。
1、目錄頁一、質量優化.51.直播&點播業務通用質量指標介紹.52.直播質量優化.61)上行優化.82)云廠商內部鏈路優化.103)下行播放優化.124)上下行質量監控體系.163.點播質量優化.181)下行優化.182)云廠商內部鏈路優化.21二、成本優化.241.成本優化概述.242.CDN 及直播出流量優化方案.241)視頻&圖片降低碼率.242)直播圖像拆分降碼率.253)使用 CDN 智能壓縮.254)使用客戶端緩存.263.回源成本優化.261)源站存儲成本優化.262)源站出流量成本優化.28三、容災建設.311.直播容災.311)直播鏈路架構.312)直播容災案例及通用容災方案.3
2、32.點播容災.361)容災案例及通用方案.36一、質量優化5本文基于多媒體行業頭部客戶經驗,抽練沉淀出多媒體質量成本優化及容災方案,該文展開介紹了直播點播全鏈路上可做的質量優化措施、直播點播場景如何實現全鏈路容災、多媒體成本如何進行優化。一、質量優化1.直播&點播業務通用質量指標介紹近年來長視頻行業增速放緩尋求突破,短視頻及直播行業蓬勃發展,截至 2022 年 12月底,我國網民規模達到 10.67 億,短視頻用戶規模為 10.12 億,網絡直播用戶規模達7.51 億。無論是長視頻、短視頻還是直播行業其背后代表的業務為直播點播業務,背后承載的產品技術為直播、CDN、媒體轉碼等技術;各業務廠商
3、為占領流量高地,內容創作、業務營銷、內容推薦等技術運營策略實施的同時,直播點播業務的質量優化也同步實施,讓用戶獲取更優質的視頻內容。直播點播業務通用的質量衡量指標如下:直播通用-開播失敗率、卡頓率、秒開率;點播通用-卡頓率、錯誤率、失敗率;多媒體行業頭部客戶的關鍵指標可參考如下:某短視頻 A 直播:開播失敗率、首幀時間、百秒卡頓 sum、百秒卡頓 avg、百秒卡頓次數、百秒重試次數某游戲直播:秒開率、中度卡、重度卡、黑屏比、p2p 卡比、flv 卡比、adr 卡比、ios 卡比、webh5 卡比某政企直播:卡頓率、錯誤率某游戲直播:卡頓率、拉流失敗、秒開失敗、平均延遲某短視頻 A 點播:下載失
4、敗率、下載速度、慢速下載率、視頻準備時間、開播故障一、質量優化6率、卡頓次數、卡頓率 卡頓時長某短視頻 B 點播:卡頓率、中斷率、錯誤率某游戲點播:成功率某政企點播:卡頓率、錯誤率某長視頻點播:卡頓率各頭部客戶的質量指標及通用質量指標及客戶端日志打點詳細介紹、質量監控告警如何設置等詳情可看多媒體行業質量監控最佳實踐一文。了解了直播點播質量衡量的指標,下文將展開如何對直播點播業務進行質量優化的介紹。2.直播質量優化直播及點播業務均承載在復雜技術鏈路架構上,要對質量進行優化,需要先拆解鏈路架構,再針對每一環鏈路進行優化,常見的直播架構分為:邊緣推播流架構、觸發拉流架構、拉流架構,架構圖可參考下圖。
5、一、質量優化7整體直播業務架構分為三層分別為上行接流層,中間分發層及下行播流層,而一般中間分發層眾多的業務廠商均會采用云廠商 CDN/直播進行分發,基于該前提下本文將云廠商 CDN/直播以上的鏈路稱之為上行接流層,云廠商 CDN/直播以下的部分稱之為下行播流層,針對上行鏈路、下行鏈路及云廠商內部鏈路如何進行質量優化,詳情在下文展開。一、質量優化81)上行優化a a)推流傳輸協議優化推流傳輸協議優化案例 1-阿里 RTS 直播RTS 在阿里云視頻直播的基礎上進行全鏈路延時監控、CDN 傳輸協議改造、UDP 等底層技術優化,通過集成阿里云播放器 SDK,支持在千萬級并發場景下節點間毫秒級延時直播的
6、能力,彌補了傳統直播存在 36 秒延時的問題,具備較優的抗弱網能力,確保了超低延時、低卡頓、秒開流暢的直播觀看體驗。RTS 直播適用于互動直播、及低延遲直播場景,詳情介紹參考鏈接。b b)接流鏈路優化接流鏈路優化案例 1-國內自建接流源站自建接流源站,具有優勢如下:擁有 CDN 調度能力,增強了源站及整個直播平臺容災的能力;使用公共云平臺自建直播接流源站可以增強平臺的彈性能力,并且在多云策略的舉措下,可以避免被一家云廠商鎖定;同時客戶可以執行調控各 CDN 流量比例,在質量和成本間取得最好的折衷;如自研智能 CDN 調度系統,精確捕捉 CDN 與用戶的動態變化,可以更合理地利用CDN 資源,通
7、過自動調度取優各廠商各區域的 CDN 質量,逃逸個別廠商 CDN 故障,可以大大降低觀看故障時長,節約大量人力監控和維護成本。自建接流源站客戶包括某短視頻 A、短視頻 B、游戲直播客戶 A、黨媒客戶等。某短視頻客戶 A 的自建源站,一部分部署在自建的 IDC,一部分部署在阿里云及其他友商的公共云平臺上。通過自建多地域源站,某短視頻客戶 A 實現了可以自研推流協議的優勢。自建源站賦予了客戶 CDN 調度的能力,即各家 CDN 都需要來客戶自建源站進行一、質量優化9回源拉流。然而該客戶體量龐大,需要同時使用多家 CDN,而各家 CDN 的質量、價格參差不齊,以及經常有一些不可預知的突發狀況,因此,
8、通過人工調度的方式,顯然是無法接受的??蛻糇匝兄悄?CDN 調度系統,精確捕捉 CDN 與用戶的動態變化,從而更合理地利用 CDN 資源,且大大降低觀看故障時長,節約大量人力監控和維護成本。該客戶對源站的要求非常高,必須有高可靠、高并發和易遷移的特性。高可靠:源站資源和系統要具有冗余的能力,在線上資源出現異常時,保持業務的可持續性。高并發:在面臨突發流量時,源站可以快速擴展一倍以上,對房間的支撐能力和分發能力都有高并發的擴展。易遷移:某短視頻客戶 A 業務部署在多個 IDC 和公共云上。出現服務質量風險或商務風險時,可以實現快速轉移。案例 2-云廠商邊緣節點推流多云廠商 CDN或直播均支持邊緣
9、推流模式,邊緣推流可以利用云廠商豐富的 CDN節點、覆蓋范圍廣的優勢,優先將流數據調度至距離用戶最近的最優 CDN 節點,通過云廠商智能調度系統將數據快速傳輸至直播中心進行內容分發,保證用戶訪問的都是最佳的上行網絡,減少因上行傳輸帶來的卡頓、拉流緩慢的問題。阿里直播邊緣推流介紹參考鏈接。一、質量優化10案例 3-主播推流網絡切換 fallback 機制推流端實現幀碼率音視頻頭等關鍵視頻元數據監控,識別到長周期推流穩定性問題或者推流失敗問題可以支持斷流自動切換到備用 CDN 節點線路重試,多次重試失敗顯性提醒主播更換網絡環境;其中切換到備用 CDN 節點線路,可以為單廠商的另外節點,也可以為其他
10、廠商 CDN 節點。推流端實現視頻關鍵元數據監控,包括:長時間的幀率跳變(按經驗 4 秒及以上的幀率 80%及以上的跳變未恢復行為會導致播流卡頓),時間閾值的選取與業務需求相關;音視頻頭是否=1,不等于 1 容易引發卡頓等。2)云廠商內部鏈路優化a a)協議棧優化協議棧優化阿里云直播全鏈路節點均支持開啟協議棧優化,協議棧優化主要是針對 rtmphttp 協議展開,基于 TCP 協議通過更改擁塞算法、滑動窗口邏輯等來實現節點建連邏輯、弱網、數據傳輸邏輯等方面的優化措施。CDN 產品已用于不同類別的實際業務中,如大文件下載、圖片小文件訪問、音視頻點播、直播流媒體下載等。各個不同業務類別下,對于業務
11、側來說,期望的業務最優結果不同。比如直播業務下,期望首屏夠快、延遲較短、卡頓盡可能少,點播業務下,首屏秒開、卡頓縮減,大文件下載下,下載速度穩定,下載速度上限盡可能調高等等。不同業務類別下,基于產品側帶寬利用率,帶寬成本等的考量,需要采用不同的協議棧優化策略。為了應對不同業務的不同需求,阿里云產品側提供有多種場景下的擁塞控制算法,來優化請求在節點建連,丟包重傳,數據包傳輸時的邏輯,同時協議棧優化的開啟對阿里直一、質量優化11播內部成本會有所增加。b b)內部鏈路卡頓自動切換內部鏈路卡頓自動切換 L1-L2L1-L2,L2-L2-中心中心推流、播放等請求進入到阿里云直播節點系統之后,需要在不同層
12、級節點之間進行傳遞,由于節點之間走運營商公網,任何一級公網環境出現抖動均會影響整條請求的可用性。此時通過一定算法判斷出抖動、卡頓等異常情況的出現,并自動調整請求的上下行節點,來規避此條異??D公網鏈路,達到恢復請求可用性的目的。目前卡頓內部鏈路自動切換主要應用在直播場景中,主要通過媒體時間戳、幀率(每秒收幀數)等信息判斷卡頓的產生,通知上下游節點是否準備切換。為了確保切換是有效和必須的,也會存在一定算法來規避誤切。直播域名(推播流域名均可開啟)開啟內部鏈路卡頓自動切換:卡頓切換時間推薦 5s。不開啟情況下:CDN L1L2,L2 到中心鏈路默認出現 10 秒幀率掉 0,才進行內部鏈路切換,業務
13、影響時長至少 20+s。該功能開啟需要提交阿里云工單進行申請。預期的業務影響:因調整前后,數據在內部鏈路已有 cache,這部分 cache 重發,會導致端上畫面出現幾秒的回退。c c)邊緣節點覆蓋調整邊緣節點覆蓋調整CDN 的節點調度一般是同大區內調度,當出現長期跨大區調度,客戶可以提交相關信息申請調整覆蓋節點。對于區域運營商限制跨省情況,阿里云 CDN 產品也可增加調度限制實現盡量本省,或者限制跨某省覆蓋;調整非即時生效,和客戶本地 DNS 過期時長有關。d d)緩存及回源保持配置緩存及回源保持配置一、質量優化12配置客戶端播流斷流后,L1 保持一定時長的的拉流或者不斷流,同時如果未觸發拉
14、流模式也可以配置播流斷流后維持一段時間拉流或者不斷流;該模式開啟后可以優化首屏,但對直播產品和客戶源站會產生額外的帶寬開銷。直播產品內部也可以配置直播視頻在產品內部的緩存時長,緩存時長越長,直播延遲越大,但相對抗網絡抖動的能力越強,建議 rtmp 及 flv 的延遲配置時長保持一致,配置文檔參考鏈接。3)下行播放優化a a)多碼率多碼率&窄帶高清窄帶高清多碼率及窄帶高清的本質其實就是在弱網/低網速環境下使用低碼率視頻播放以減少客戶播放視頻質差現象,網絡狀態好/高網速情況下使用高碼率視頻播放,提升觀看體驗;多碼率自適應可將指定的音視頻文件流統一打包生成一個自適應碼流文件,讓播放器可根據終端網絡帶
15、寬環境,自行選擇使用對應碼率的播放 URL。播放協議為 HLS;視頻畫面由像素點構成,一個畫面中像素點越多清晰度就越高,像素點的個數進行分檔就稱之為分辨率,分辨率有 LD、SD、HD、2K、4K,LD 就是常說的 480P、SD 即 720P、HD 即 1080P;分辨率越高,在音視頻編碼格式、幀率等一致的情況下,一個視頻的碼率就越高,播放所需要的網絡環境如帶寬及穩定性等就越高;阿里云直播產品已支持多碼率轉碼,客戶可按需配置,相關介紹和配置文檔可參考這里。窄帶高清技術對編碼算法進行優化,可以實現在同等畫質下更省流、在同等帶寬下更高清的觀看體驗。阿里云直播產品已支持窄帶高清配置,參考鏈接;終端應
16、用如何選擇適當清晰度的視頻進行播放?終端應用如何選擇適當清晰度的視頻進行播放?終端用戶的網絡帶寬需要不小于視頻碼率才能保障視頻的清晰觀看,不同分辨率的視頻常態下的碼率區間相對固定,所以業內對于播放視頻碼率的選擇一般有兩種做法:一、質量優化13第一種根據不同的終端畫質需要選擇不同碼率的視頻作為默認碼率;第二種為多碼率自適應技術,該技術需要終端播放器配合檢測終端客戶網絡情況+集成碼率自適應算法+播流視頻支持多碼率來實施。不同的終端畫質需要選擇不同碼率的視頻作為默認碼率,頭部客戶實現方案如下:某長視頻平臺 A:手機端默認畫質 480p,網頁端默認畫質 720P某長視頻平臺 B:手機端默認畫質 720
17、p,網頁端默認畫質 480P某短視頻平臺 A:手機端默認碼率 2Mbpsb b)終端播放器終端播放器 bufferbuffer 緩沖區緩沖區播放器播放視頻的過程本質上是播放器代碼邏輯讀取緩沖區數據,進行解封裝、音視頻解碼、音視頻同步處理、音視頻渲染的過程。為了抗網絡、渲染、解碼等各種抖動,播放器播放視頻一般會設置緩沖區來進行抗抖動,緩沖區分為幀緩沖區和顯示緩沖區:幀緩沖區,主要是抗網絡抖動、抗解碼抖動、避免丟幀。顯示緩沖區,主要是抗渲染抖動、實現音畫同步。緩沖區越大,抗抖動效果越好,但內存占用就更大,延時效果也更大。不同直播場景的 buffer 緩沖時長如何設置:教育類直播場景需要低延遲直播,
18、而終端播放器緩沖區時間越長,延遲越高,一般教育行業終端播放器 buffer 緩沖時長 0-1s;一、質量優化14秀場直播或帶貨直播等場景對延遲無高要求,一般會設置 3-5s 的 buffer 緩沖區。c c)終端播放器低幀率終端播放器低幀率/0/0 幀識別幀識別 自動切換線路自動切換線路相關直播業務采用多云廠商容災,業務服務器下發多云廠商流地址供終端播放器播放,終端播流用多云廠商直播域名 fallback 邏輯,當終端播放器識別 A 域名長期低幀率/0幀的情況,終端播放器播放器 fallback 到 B 廠商的 B 域名進行播放同時可以結合網絡探測數據識別是否需要降低檔位,播放低碼率視頻,這樣
19、的播放邏輯可能會存在直播畫面的重復。多云廠商直播域名 fallback 邏輯實現的收益點:單云廠商直播中心故障逃逸;單云廠商直播分發節點異常逃逸;部分終端用戶到直播分發節點之間的網絡鏈路問題逃逸;地方運營商域名級別封禁快速逃逸。d d)預解析及鏈路擇優策略預解析及鏈路擇優策略視頻播放整體的鏈路包括了:域名解析、4 層連接建立、網絡流數據獲取、播放器播放展示視頻等。優化視頻播放體驗,降低 DNS 解析耗時也是其中一環,DNS 解析耗時優化策略包括了域名預解析機制,DNS 本機緩存機制。域名預解析表示在應用啟動或網頁打開的時候對該應用或網頁可能會涉及訪問的域名進行預解析并緩存到本地,那么當訪問對應
20、域名的時候整體的 DNS 解析耗時就減短了。DNS 本機緩存時長不建議太長,時間太長可能部分云廠商的直播分發節點出現異常下線,而終端仍然請求到異常節點的情況,某短視頻客戶 A 的 DNS 本機緩存時長是 3 分鐘,一、質量優化15可參考。e e)運營商異常解析運營商異常解析&緩存緩解緩存緩解-HTTPDNS-HTTPDNS部分運營商為了提升其終端用戶的質量,會做一些 DNS 解析劫持,將流量劫持在網內就近訪問內容的 cache。部分情況也會出現一些運營未遵循 DNS 解析的 TTL,LDNS 解析緩存時間過長的情況,如果當時直播的分發節點異常下線、節點裁撤等,就會導致終端用戶訪問不到業務,或者
21、運營商因為其他的一些原因做了 DNS 解析劫持。以上的 DNS 解析行為均可能會導致終端用戶訪問到的內容不符合客戶業務預期,這種情況可以通過 HTTPDNS 解析解決。HTTPDNS 產品介紹。f f)預加載策略預加載策略長短視頻應用場景下,終端用戶應用展現的音視頻內容由業務應用調度算法控制,為縮短音視頻內容展示的首屏時間,一般會采用預加載策略。多節目直播場景下,開發者可維護一個隊列,用于填充一定數量的待播放直播節目(每一個節目對應一條待開播的直播地址),在用戶播放到 A 節目時,可預先加載接下來的N 個直播地址。這樣用戶在進入下一個直播節目時,可節省網絡建連、流媒體 meta 讀取、播放器初
22、始化等一系列耗時動作,快速進入首屏。g g)RTSRTSRTS 在阿里云視頻直播的基礎上進行全鏈路延時監控、CDN 傳輸協議改造、UDP 等底層技術優化,通過集成阿里云播放器 SDK,支持在千萬級并發場景下節點間毫秒級延時直播的能力,彌補了傳統直播存在 36 秒延時的問題,具備較優的抗弱網能力,確保了超低延時、低卡頓、秒開流暢的直播觀看體驗。RTS 直播適用于互動直播、及低延遲直一、質量優化16播場景,對于抗弱網優化卡頓的直播場景也有很好的收益。詳情介紹參考阿里云官網鏈接。4)上下行質量監控體系通過構建完善的直播上下行質量監控體系,客戶可對業務質量有有效認知并及時發現問題并進行優化,這個問題及
23、認知包括:各云廠商質量差異、業務各區域運營商質量差異、云廠商云產品異常、局部終端運營商網絡問題、大主播推流問題、基于終端播放日志+行為特征分析實現內容推薦算法優化等等。下面展開介紹客戶維度可做的監控告警及云產品維度可做的監控告警。a a)客戶維度可做的監控客戶維度可做的監控&告警告警基于終端日志打點邏輯,實現終端業務監控、告警;基于直播源站服務器性能、業務指標等,構建直播源站監控、告警;基于直播推流上報邏輯,實現推流端業務監控、告警。具體的終端日志要打點哪些字段、質量監控指標統計哪些、質量分數怎么計算、告警怎么實現等,詳情參考多媒體行業質量監控最佳實踐??蛻艨苫诙喽藰I務監控或告警識別業務問題
24、、直播源站問題,通過運維或運營處理鏈路聚焦問題進行優化落地:如終端業務告警+阿里云客戶風險主動定位服務+運維人工處理鏈路,實現云直播產品、局部終端網絡(運營商劫持、解析長緩存、局部網絡抖動或異常等)、客戶自建直播源站問題、主播源流問題的定界及止損;如針對大主播的推斷流監控告警,識別大主播非預期的斷流行為,進行及時介入止損;如基于終端日志實現各云廠商質量評分體系,評估各云廠商產品服務質量及驅動各一、質量優化17云廠商優化;基于終端日志實現個別終端播放問題的快速定位,以進行終端問題的逃逸等等。b b)阿里云阿里云-云產品維度可做的監控云產品維度可做的監控&告警告警客戶可以基于云監控產品,實現直播業
25、務的監控及告警配置,涉及指標包括了 4xx、5xx、帶寬 qps 等,具體參考文檔鏈接。也可以基于阿里云直播產品實時播放日志(延遲秒級),實現基于服務端維度的直播質量指標監控,注意該監控的實施其實不能完全的代表終端的情況,因為服務端的日志無法覆蓋終端到直播分發節點之間的全部鏈路情況,并且服務端日志卡頓的定義是經驗值,不能代表全部的終端業務場景,理想情況是終端監控+服務端監控并存。怎么通過直播產品日志定義卡頓?音視頻幀率維持在固定值或者固定值上下小比例波動,且視頻幀率高于 12 幀-手機端(15 幀-PC 端)一般會被定義為穩定的直播;如果是教學投影 PPT 場景可能存在視頻幀率較低場景,具體什
26、么樣的幀率是業務維度的低幀率會引發終端客戶觀感上的卡頓,客戶維度可以自定義,但可以明確的是低視頻幀率 flv_lag_vfcnt 是判斷卡頓的一個維度。終端播放器 buffer 緩沖區緩沖時長為 X 秒,如果日志中視頻幀率 flv_lag_vfcnt 連續 X-1 秒及以上掉 0,就會卡頓。終端播放器buffer緩沖區緩沖時長為X秒,如果X秒之內的平均幀數flv_lag_vfcnt,如果平均幀數高于幀率*0.8 則判定不卡頓,低于則判定卡頓(0.8 是經驗值,可以根據實際業務做調整)卡頓率如何計算?某客戶定義:有卡頓的觀看行為占總觀看行為的比率,1 分鐘加權平均值一、質量優化18某客戶公式:卡
27、頓率=有卡頓的觀看行為/全部觀看行為,詳情參考多媒體行業質量監控最佳實踐。3.點播質量優化上文介紹了直播業務如何進行優化,下面將展開點播業務優化的介紹,整體點播業務架構分為三層分別為上行源站層,中間分發層及下行播流層,而一般中間分發層眾多的業務廠商均會采用云廠商 CDN/直播進行分發,基于該前提下本文將云廠商 CDN 以上的鏈路稱之為上行鏈路,云廠商 CDN 以下的部分稱之為下行鏈路,針對上行鏈路、下行鏈路及云廠商內部鏈路如何進行質量優化,詳情在下文展開。1)下行優化a a)DNSDNS 解析優化解析優化在一條完整的 http 請求中,除了快速從所解析節點中拿到響應內容外,確保能快速解析,確保
28、了通過一系列服務側配置優化,縮短從點擊視頻播放,到看到視頻首幀畫面的耗時,也是點播場景中大量客戶的首要訴求。一、質量優化19傳統的 DNS 解析流程中,一般如上,即用戶向 Local DNS 請求域名解析時,Local DNS 會先檢查自己的緩存里有沒有該域名的解析結果,如果沒有,則需要向權威 DNS 服務器請求,權威 DNS 依照自己的緩存結果,逐步向 root,com/net.等各級服務器獲取到最終 cname 域名,之后權威 DNS 再向 CDN 的 DNS 權威服務器獲取調度到的節點VIP。這里 DNS 解析優化主要圍繞縮短權威 DNS 請求次數來進行優化,優化方法主要分為 DNS 預
29、熱和 HTTPDNS 兩種方式。DNS 預熱說明:預熱就是對于特殊域名,在 CDN 節點上利用程序不斷的向 Local DNS 請求,使Local DNS 緩存中一直有該域名的解析結果,從而當用戶真正請求時,Local DNS 只需從緩存中取出解析結果即可,縮短用戶的 DNS 解析時間。分類:普通預熱和偽造源預熱。普通預熱:預熱過程中,會將節點到 Local DNS 的連通性上報到服務端,若半個小時之內有一定百分比的請求都不通,則認為該節點到 Local DNS 的不通,約定一段時間之后進行重試。偽造源預熱:節點程序組裝 ip 報文,將其中的源 IP 字段替換掉,替換為對應地區 LocalDN
30、S 網段的 IP 地址,向 LocalDNS 發起解析請求進行預熱。一、質量優化20HTTPDNSHTTPDNS 是面向多端應用(移動端 APP,PC 客戶端應用)的域名解析服務,具有域名防劫持、精準調度、實時解析生效的特性。通過利用 HTTP 協議與 DNS 服務器交互,代替了傳統的基于 UDP 協議的 DNS 交互,繞開了運營商的 Local DNS,有效防止了域名劫持,提高域名解析效率。另外,由于 DNS 服務器端獲取的是真實客戶端 IP 而非 Local DNS 的 IP,能夠精確定位客戶端地理位置、運營商信息,從而有效改進調度精確性,跨越中間多級解析服務器,縮短 DNS 解析鏈路。H
31、TTPDNS 產品介紹一、質量優化21b b)視頻降碼率視頻降碼率在保證畫質或對畫質要求不高的業務場景下,通過降低視頻碼率,減輕播放器端對上行帶寬的承載壓力,從而確保播放流暢。注意在相同幀率、分辨率、編碼格式等情況下,碼率的降低意味著畫質的降低,可能會影響終端用戶的播放體驗,需要客戶根據業務場景綜合評估。下面將展開阿里云目前已有轉碼能力的介紹。傳統低碼率轉碼(可能損失畫質):可根據需求選擇不同的封裝格式和清晰度將視頻轉碼播放,適用于長視頻。視頻點播產品預置了流暢、標清、清、超清、2K、4K、原畫(轉封裝)共 7 種清晰度,以及普通音質、高音質兩檔音質。您可以對不同清晰度進行碼率、分辨率、格式等
32、自定義設置,同時使用轉碼模板組進行不同轉碼模板的分組及管理。窄帶高清:窄帶高清技術對編碼算法進行優化,可以實現在同等畫質下更省流、在同等帶寬下更高清的觀看體驗。阿里云直播產品已支持窄帶高清配置,參考鏈接;d d)客戶端優化客戶端優化buffer 緩存調整,具體可以參考直播質量優化-下行播放優化-終端播放器 buffer 緩沖區中的介紹。低幀率檢測,具體可以參考直播質量優化-下行播放優化-終端播放器低幀率/0 幀識別自動切換線路中的介紹。播放地址預加載,具體可以參考直播質量優化-下行播放優化-預加載策略中的介紹。2)云廠商內部鏈路優化a a)命中率優化命中率優化CDN 命中率提升,可以讓終端用戶
33、請求就近緩存命中,減少回源,回源的減少意味著鏈一、質量優化22路的縮短,鏈路越短相對穩定性越高,同時也可以縮短交互時間,故需要提升命中率,下面展開介紹命中率提升的方式。閑時預熱非業務高峰時期,及時通過 API 接口或者控制臺,提交預期會被高頻訪問的資源 URL進行預熱,提前將文件拉取到 CDN L2 節點上。預熱方法可以參考這里。配置優化按照 CDN 對緩存配置的邏輯,檢查源站 Web 服務器配置,是否存在對于靜態文件的特定響應頭,諸如 cache-control:no-cachemax-age=0 等配置,源站取消此類配置。合理配置緩存過期時間,對于不同類別的源站文件,比如圖片cssjsjs
34、on文本等等,按照實際文件更新速度,設置合理的 CDN 過期時間,具體配置方法可以參考這里。去除 URL 中問號后的參數緩存,當 URL 請求中帶有 queryString 或其他可變參數時,訪問同一個資源的不同 URL(URL 攜帶的參數不同)會重新回源,導致 CDN緩存命中率低。如果客戶端請求參數非業務邏輯必須,可以在 CDN 側開啟忽略參數一、質量優化23緩存,提升命中率。配置方法可以參考這里。大文件設置分片回源策略,用戶下載安裝包可能下載一半就停止下載,或者觀看視頻只看了一部分就停止觀看,即用戶只需要訪問資源文件指定范圍內的部分內容,但是 CDN 節點會向源站請求整個文件,從而使得 C
35、DN 節點從源站下載的內容大于響應給用戶的內容,導致緩存命中率低。range 回源配置可以參考這里。合并回源,用于配置復用某個域名緩存在 CDN 上面的資源,比如 域名打算復用 域名的資源,同時使用 域名回源。b b)覆蓋調整覆蓋調整CDN 的節點調度一般是同大區內調度,當出現長期跨大區調度,客戶可以提交相關信息申請調整覆蓋節點。對于區域運營商限制跨省情況,阿里云 CDN 產品也可增加調度限制實現盡量本省,或者限制跨某省覆蓋;調整非即時生效,和客戶本地 DNS 過期時長有關。c c)協議棧優化協議棧優化點播業務下,首屏秒開、卡頓縮減,大文件下載下,下載速度穩定,下載速度上限盡可能調高等等。不同
36、業務類別下,基于產品側帶寬利用率,帶寬成本等的考量,需要采用不同的協議棧優化策略。為了應對不同業務的不同需求,產品側提供有多種場景下的擁塞控制算法,比如傳統的基于丟包的擁塞控制、基于時序的擁塞控制、硬性控制滑動窗口上下限、動態調整滑動窗口上下限、主動丟包探測和發現機制、自適應初始化滑動窗口、連接超時 RTT 控制、分時段控制滑動窗口等等;通過調整協議棧擁塞控制算法,來滿足不同業務需求場景下,請求在節點建連,丟包重傳,數據包傳輸時的邏輯。二、成本優化24二、成本優化1.成本優化概述在客戶使用云 CDN 的過程中,因自身源站流量輸出、業務數據存儲、CDN 側流量產生、請求數增長,增值功能使用等導致
37、客戶用云財務、運維、存儲等各項成本增加,我們可以通過優化 CDN 功能配置、調整業務結構、優化計費模式等多種方式,盡可能降低上述成本,使用云成本更加低廉,使用更加高效。2.CDN 及直播出流量優化方案1)視頻&圖片降低碼率a a)升級升級 H.265H.265 編碼編碼H.265 或高效率視頻編碼(HEVC)是一種新的視頻編解碼技術。視頻編碼指通過特定的壓縮技術,將某個視頻格式的文件轉換成另一種視頻格式文件的方式。相比 H.264,H.265 壓縮效率更高,傳輸碼率更低,視頻畫質更優,實現監控視頻傳輸帶寬減半、存儲減半、成本減半,帶給人們更優質的體驗。不過 H.265 編碼對硬件要求比較高,需
38、要編碼性能優越的處理芯片。目前阿里云直播、媒體處理、視頻點播均支持 h265 轉碼,參考直播文檔、媒體處理文檔、視頻點播文檔。b b)升級升級 AV1AV1 格式格式AV1 是由開放媒體視頻聯盟(Alliance of Open Media Video)開發的開放、免版稅的下一代視頻編碼格式。AV1 所使用的編碼技術主要來源于 Google VP9 的下一代影片壓縮格式 VP10,相比目前的 H.265(HEVC)編碼,不僅能保持原視頻的分辨率、幀率、比特率,視頻體積還能再二、成本優化25縮小 20,相比于 VP9 壓縮率也高出 30。這就意味著在同等帶寬下可以傳輸更高清的畫質。2020 年上
39、半年國內某頭部長視頻平臺在電腦瀏覽器端(PC web 端)、安卓移動端上線 AV1 視頻編碼格式,成為國內首家也是目前唯一一家應用 AV1 的視頻網站。2)直播圖像拆分降碼率IVE(Intelligent video encoding,即智能視頻編碼)技術可以根據客戶要求對視頻進行智能編碼,并在不損失圖像質量的前提下,優化視頻編碼性能,最終降低網絡帶寬占用率和減少存儲空間。直播 CDN 帶寬=同時在線人數*碼率,如果要降低帶寬就需要降低碼率。直播圖像在沒有區分主體和背景時,為了保證整個圖像清晰,就要犧牲碼率。但其實圖像是可以拆分的,可以考慮主體清晰度高,背景或者邊緣圖像相對模糊并不會影響整體畫
40、質。3)使用 CDN 智能壓縮a a)GzipGzipGzip 壓縮是 GNU 組織發起的一項壓縮算法,主要提供對于文本等靜態文件的壓縮,能極大縮減帶寬流出。目前主流的瀏覽器基本都支持 gzip 壓縮,CDN 中開啟 Gzip 的方法參考這里。Gzip 的默認壓縮等級為 6,壓縮等級越高,壓縮率越高,但同時進行壓縮所占用的 CPU 越高,壓縮過程會越慢,導致訪問越慢,所以壓縮等級并非越高越好,需要視情況而定。b b)BrBrBrotli 是 google 開源的一種新型壓縮算法,Brotli 壓縮比智能壓縮性能更好,同等壓縮比情況下,brotli 壓縮速度更快。同等壓縮時間情況下,brotli
41、 壓縮比更高。開啟 Brotli 壓縮功能后,CDN 節點會對資源進行智能壓縮后返回,縮小傳輸文件大小,提升文二、成本優化26件傳輸效率,減少帶寬消耗。具體開啟方法可參考這里。目前 Gzip 壓縮使用范圍相比于 br 來說更高,不過隨著 Chromium 內核的興起,未來支持 br 壓縮的瀏覽器會越來越多。4)使用客戶端緩存在使用 CDN 的過程中,合理利用瀏覽器強緩存和協商緩存能有效減少對 CDN 的請求,從而縮減請求數和 CDN 帶寬流出。強緩存通過直接使用瀏覽器本地緩存、協商緩存通過 httpcode:304,從而繼續使用瀏覽器本地緩存,兩者均可以有效減少 CDN 流量支出。強緩存在 h
42、ttp1.0 中使用 expires 頭來控制,在 http1.1 以后,通過 cache-control 頭來控制,瀏覽器在請求 CDN 的過程中,會優先檢查本地緩存,通過 expires 或者 cache-control(兩者均存在情況下,cache-control 頭優先)判斷使用強緩存。確認使用的情況下,無需再向 CDN 發送請求;在強緩存未命中情況下,瀏覽器一般會發送帶有請求頭 If-modified-since 或 if-none-match(具體看 CDN 返回此資源的 response-header 時,是 last-modified or etag)確認服務側資源是否變更,C
43、DN 返回 304 的情況下,代表瀏覽器可繼續使用本地緩存,從而減少 CDN 流量流出。3.回源成本優化1)源站存儲成本優化a a)業務存儲介質合理規劃業務存儲介質合理規劃存儲分級處理,這里按照文件被訪問的頻次,規劃不同頻次文件對應的存儲介質。存儲介質主要分為機械盤 HDD(Hard Disk Drive)與固態盤 SSD(Solid State Drive)。二、成本優化27混合硬盤 HHD(Hybrid Hard Drive)同時使用了 SSD 硬盤和 HDD 硬盤,通過 Cache 機制,實現冷熱數據自動分級存儲,在存儲容量、成本與性能的最佳均衡。這里,以阿里云推出的對象存儲服務(簡稱:
44、OSS)為例,提供了標準、低頻、歸檔、冷歸檔等多種不同的存儲,來適應客戶不同頻次訪問文件的存儲需求。用戶可以將業務不同類型數據按照訪問頻度進行分類,并保存到 OSS 不同類別的存儲服務中。OSS 存儲類型介紹可參考文檔。比如某客戶主要提供短視頻服務,每天會產生大量的時長不一的點播視頻,用戶側會按照視頻被點擊次數、觀看時長、退出時長等分析一個視頻的推薦熱度。對于熱度較低的資源,通過歷史數據研判,約定一定時間逐步從標準存儲,轉換到低頻存儲,在這段期間內,如果熱度進一步降低,再從低頻存儲轉換到歸檔存儲,直至到冷歸檔存儲。同樣,如果轉換到較低付費標準的存儲類型 bucket 時,發現熱度上升,為了避免
45、過多訪問導致數據取回費用飆升以及解凍成本升高,可再將其轉換成標準存儲,降低平均訪問費用。b b)其他方面其他方面除了上述提到的優化點以外,以下優化點也可以根據實際情況一并考慮:按照業務需求,合理規劃不同類別文件的存儲時限,并做好數據的定期清理。做好同地域不同可用區的數據同步,盡量減少不同地域之間數據的復制或同步,縮減對應存儲和公網遷移成本。存儲時,可采用數據壓縮,縮減存儲開銷。二、成本優化28做好數據存儲監控和相關告警配置,在數據存儲量達到一定閾值時,及時發現和清理冗余數據??刹捎么鎯θ萘堪?,縮減存儲財務開銷。2)源站出流量成本優化a a)通過壓縮算法或業務邏輯優化降低源站出流量成本通過壓縮算
46、法或業務邏輯優化降低源站出流量成本源站支持 Gzip、Br 壓縮。通過壓縮源站響應數據,縮減對外流量或帶寬流出。源站支持 range 等分片請求,在大文件下載和音視頻訪問過程中,支持響應客戶端range 請求(而非響應全部長度的文件),縮減對外流量和帶寬流出。b b)CDNCDN 自有業務功能實現命中率優化降低回源流量自有業務功能實現命中率優化降低回源流量可參考點播質量優化中可參考點播質量優化中-命中率優化一節的描述,在此不再贅述。命中率優化一節的描述,在此不再贅述。c c)CDNCDN 架構調整降低回源流量架構調整降低回源流量L1 節點縮減一般而言,一個域名調度域中節點數量會在一定區間內變動
47、,而不會有大的變化,對于有業務服務區域比較有集中特性的域名,比如某客戶主要在華東區域有業務覆蓋,此時域名調度域中其他區域和省份的調度節點大部分處于閑置狀態,從而導致其他地區出現客戶訪問,調度到非華東地區節點時,大部分請求都會 MISS(因為訪問請求少,所以歷史緩存數據熱度較低,會很快過期),按照命中率計算公式:緩存命中請求數/總請求數*100%可以看到,非華東地區請求 MISS 的增加會導致分子的減少,從而降低域名整體命中率。當然,縮減 L1 節點數量也會帶來其他的一些附帶問題,比如原加速域名調度域中存在二、成本優化29湖北省份節點覆蓋,做了節點縮減之后,后續湖北地區客戶的訪問請求就會因為找不
48、到本地節點,從而產生跨省甚至跨大區的長鏈路,從而導致 4 層延遲的升高,影響首字節。所以該項優化策略一般針對于業務側有比較強的地域覆蓋屬性的情形。CDNL2 節點縮減減少回源可以根據業務場景,視情況評估縮減 L2 的節點數量,來減少回源流量;CDN 整體的回源邏輯是請求到 L1 節點,L1 節點未命中回源 L2,L2 未命中則回源獲取資源,相對來說 L2 節點數量越多,相同文件需要回源取的次數越多,所以縮減 L2 可以一定程度上減少回源流量。但 L2 節點的縮減也會帶來附帶的問題,L2 節點過少,L2 節點出現異常,災備的 L2 節點也會相對少,對穩定性有劣化影響。CDN 302 調度實現命中
49、率提升減少回源原有方案是 L1 回源到 L2,L2 再回源到客戶源站,采用此方案后,如果緩存未命中此 L1,則此 L1 可以回源到策略中的下游有緩存的 L1,減少回源。L1 回源使用一致性 hash 環(回源訪問調度中心返回 302 方式),在阿里云 CDN 的 L1做匯聚,即先回站外 L1 環(電信,聯通,移動等),再回到站內 L1 環(站內環多線接入,同時提供給小運營商當做 L1 直接訪問使用)。將一個大區內的 L1 回源 L2 流量做匯聚,即將原有 CDN 鏈路架構做變化:原架構:大區內 L1-L2二、成本優化30新架構:大區內 L1-匯聚 L1-L2該方案實現需要終端支持 302 跳轉
50、。同時如果客戶業務域名整體的資源較冷,302 調度開啟后的命中率性能反而會出現劣化。原因:302 調度開啟后,對于冷資源會出現一次302 跳轉,再通過 L1 回源 L2 進一步回源,如果域名下的整體資源很冷,較多資源不能再次命中,那么首次 302 跳轉反而會增加開銷。三、容災建設31三、容災建設1.直播容災基于直播云產品實現的直播業務鏈路包括:推流鏈路、直播轉碼&截圖&錄制&合流&墊片等邏輯、下行播流分發邏輯等等,其中推流鏈路存在多種不同架構,直播轉碼截圖錄制等邏輯亦存在多種實現方案。下文將展開推流鏈路架構、直播轉碼截圖邏輯方案的介紹,同時基于直播業務鏈路架構展開容災方案介紹。1)直播鏈路架構
51、a a)上行推流架構介紹上行推流架構介紹云廠商中心推流原有的阿里云中心推流方式已逐步下線,當前優先推薦客戶使用邊緣推流。原中心推流方式,是推流客戶端直接向各區域中心的推流域名進行推流(例如:video-)。云廠商邊緣推流利用阿里云豐富的 CDN 節點、覆蓋范圍廣的優勢,優先將流數據調度至距離用戶最近的最優 CDN 節點,通過阿里智能調度系統將數據快速傳輸至直播中心進行內容分發,保證用戶訪問的都是最佳的上行網絡,減少因上行傳輸帶來的卡頓、拉流緩慢的問題。三、容災建設32邊緣推流優勢:高覆蓋:全球有 3200+CDN 節點。其中,海外有 900+,中國內地有 2300+,覆蓋主流城市和地區。智能化
52、:優先接入距離用戶最近的 CDN 節點,保證內容傳輸的穩定??蛻糇越ㄖ辈ブ行慕恿髯越ń恿髟凑?,具有優勢如下:擁有 CDN 調度能力,增強了源站及整個直播平臺容災的能力;使用公共云平臺自建直播接流源站可以增強平臺的彈性能力,并且在多云策略的舉措下,可以避免被一家云廠商鎖定;同時客戶可以執行調控各 CDN 流量比例,在質量和成本間取得最好的折衷;如自研智能 CDN 調度系統,精確捕捉 CDN 與用戶的動態變化,可以更合理地利用 CDN資源,通過自動調度取優各廠商各區域的 CDN 質量,逃逸個別廠商 CDN 故障,可以大大降低觀看故障時長,節約大量人力監控和維護成本。自建接流源站客戶包括某短視頻 A
53、、短視頻 B、游戲直播客戶 A、黨媒客戶等。b b)直播轉碼截圖等邏輯方案介紹直播轉碼截圖等邏輯方案介紹為了適配不同的直播業務訴求及終端播流環境,一場直播可能會涉及到轉碼成不同格式適配終端環境、轉碼成不同檔位適配終端網絡設備情況、視頻錄制以便終端用戶回看、視頻截圖以便業務運營審核、直播合流墊片適配業務場景等等。一般云直播產品具備轉碼、錄制、截圖、合流、墊片等能力,同時部分頭部多媒體客戶為了極致的業務應用及容災等考量,也會自建直播中心實現上述功能,云直播產品僅實三、容災建設33現接流及播流分發??偠灾?,直播轉碼截圖錄制等能力可以依托于云直播產品實現,也可以自建實現。其中自建直播中心實現上述能力
54、需要客戶擁有音視頻技術棧儲備、投入自有直播中心運維容災成本等,整體投入相對較大。c c)直播播流分發直播播流分發直播播流分發,一般依托于云直播產品進行下行分發,如阿里云直播產品的下行分發就依托于 CDN 產品的節點,基于 CDN 節點,阿里云直播產品實現了協議棧優化、內部鏈路卡頓切換、直播命中率提升等能力,以提升終端直播質量。2)直播容災案例及通用容災方案直播業務鏈路包括了:上行推流、直播中心轉碼錄制、下行分發,故直播業務容災方案需要評估全鏈路進行。下面展開多媒體行業頭部客戶容災案例及通用容災方案介紹。a a)容災案例容災案例客戶客戶 A-A-大活動場景容災鏈路及剖析大活動場景容災鏈路及剖析主
55、流推流到客戶自建接流源站-客戶自建源站實現轉碼、截圖、錄制等邏輯-各云廠商拉流客戶源站源流及轉碼流-客戶業務調度服務器按一定的分量邏輯,給終端下發某云廠商 A 的源流及轉碼流的主流地址,便于終端播放。備流推流到 Y1 云廠商邊緣-Y1 云廠商實現轉碼、截圖、錄制等邏輯,同時將源流分發給其他云廠商,也實現轉碼、截圖、錄制等邏輯-客戶業務調度服務器按一定的分量邏輯,給終端下發某云廠商 B 的源流及轉碼流的備播流地址,便于終端播放。三、容災建設34容災鏈路剖析上述鏈路推流鏈路、直播中心邏輯、下行分發等全鏈路的容災。推流鏈路層面客戶自建源站及 Y1 云廠商實現了主動容災,直播轉碼截圖錄制等邏輯亦是如此
56、,下行播流實現了多云廠商下行分發。同時客戶終端還實現了 HTTPDNS 解析+fallback 邏輯,A 云廠商的直播流播流失敗或長時間低幀率,會重試到 B 云廠商流,當 A 云廠商的直播服務/直播分發節點出現異常,或者該終端到 A 云廠商的分發節點之間鏈路異常,能自動快速重試到 B 云廠商邏輯,實現異常問題快速逃逸。對于單云廠商直播節點異常場景,在 LDNS 解析的情況下,因 DNS 解析緩存,一般終端業務影響時間會在 10-20 分鐘左右,而實現終端 fallback+HTTPDNS 解析邏輯,這塊的影響會降低到 1 分鐘內,這塊的影響時長還是得看終端設置的超時或低幀時長閾值。某政企客戶某
57、政企客戶 B B 容災鏈路及剖析容災鏈路及剖析主備流推流到客戶多個自建接流源站-某云廠商多直播中心通過主備專線回源拉流主備源流,實現主備源流合流,并對合流流實現轉碼錄制截圖等邏輯-客戶業務調度邏輯下發多中心播流域名的源流合流及轉碼流流地址,終端播放器進行播放;三、容災建設35參考架構如下:容災鏈路剖析上述鏈路推流鏈路、直播中心邏輯、下行分發等全鏈路的容災,其中推流鏈路通過單云廠商的的不同接流節點實現容災,直播中心邏輯通過單云廠商多直播中心實現容災,下行分發通過單云廠商多節點快切實現容災??蛻艚K端實現了 HTTPDNS 解析+fallback 邏輯,A 域名的直播流播流失敗或長時間低幀率,會重試
58、到 B 域名,當 A 域名的直播服務/直播分發節點出現異常,或者該終端到A 域名的分發節點之間鏈路異常,能自動快速重試到 B 域名的其他節點,實現異常問題快速逃逸;對于單云廠商直播節點異常場景,在 LDNS 解析的情況下,因 DNS 解析緩存,一般終端業務影響時間會在 10-20 分鐘左右,而實現終端 fallback+HTTPDNS 解析邏輯,這塊的影響會降低到 1 分鐘內,這塊的影響時長還是得看終端設置的超時或低幀時長閾值。三、容災建設36b b)通用容災方案通用容災方案上述的 AB 案例,介紹了多云廠商、單云廠商情況下的全鏈路容災方案,客戶可以按需選擇上述方案。2.點播容災CDN 分發全
59、鏈路包括:源站、下行分發,下文將展開具體客戶容災案例及通用方案介紹。1)容災案例及通用方案a a)某短視頻客戶某短視頻客戶 A A 容災鏈路及剖析容災鏈路及剖析客戶自建源站-阿里云 OSS-各云廠商 CDN 分發,OSS 采用同城冗余存儲類型 bucket。OSS 同城冗余 bucket 介紹容災鏈路剖析CDN 方面,對于大流量業務,不同區域運營商均按一定調度策略切量到各云廠商 CDN,當某云廠商 CDN 某區域運營商覆蓋出現問題,可以實現調度切量逃逸。并且客戶終端還實現了 HTTPDNS 解析+fallback 邏輯,A 云廠商的某視頻地址訪問失敗,如 DNS 解析失敗或者 4 層網絡失敗或
60、者請求 5xx,會重試到 B 云廠商的相同視頻地址上,當 A 云廠商的 CDN 分發節點出現異常,或者該終端到 A 云廠商的分發節點之間鏈路異常,能自動快速重試到 B 云廠商邏輯,實現異常問題快速逃逸。對于單云廠商 CDN 節點異常場景,在 LDNS 解析的情況下,因 DNS 解析緩存,一般終端業務影響時間會在 10-20 分鐘左右,而實現終端 fallback+HTTPDNS 解析邏輯,這三、容災建設37塊的影響會降低到 1 分鐘內,這塊的影響時長還是得看終端設置的超時或低幀時長閾值。同時每個區域運營商均調量至各云廠商 CDN 的收益點在于:當 A 云廠商某區域運營商的覆蓋節點出現問題,切量到 B 云廠商,因相關區域相關業務 B 云廠商本身有量,熱資源的命中率可以有一定保障,不會出現大量回源情況。源站方面,阿里云 OSS 與客戶自建源站互為主備,當 OSS 出現問題,流量可以切回源站。常態情況下 OSS 配置生命周期刪除極冷資源,存儲相對熱文件,如果存在冷文件請求通過 OSS 鏡像回源獲取冷文件,以一定程度上減少 OSS 的存儲量。b b)點播場景通用容災方案點播場景通用容災方案如果是點播、靜態資源加速場景,可以參考使用如下幾種方案:自建源站-OSS-各云廠商 CDN 分發,自建源站運維成本高;A 云廠商 OSS-B 云廠商 OSS-各云廠商 CDN 分發