欧美成人A片免费|日韩无码一级av|一级黄色大片在线播放|黄片视频在线观看无码|亚洲精品成人无码影视|婷婷五月天视频网站|日韩三级AV在线播放|姓爱av在线婷婷春色五月天|真人全黃色录像免费特黄片|日本无码黄在线观看下载

  • +1

云游戲音視頻體驗優(yōu)化實踐

2023-02-28 16:28
來源:澎湃新聞·澎湃號·湃客
字號

編者按:從2019年開始,云游戲的熱度迅速上升,云游戲平臺如雨后春筍般出現(xiàn)。然而,目前還未出現(xiàn)一個影響力大的標志性平臺,并且大家對云游戲的預期與云游戲的真實現(xiàn)狀有出入。那么,如何才能為玩家提供高畫質(zhì)、超流暢和低時延的游戲體驗呢?今天LiveVideoStack邀請到了智杰融興的吳振永老師,為我們介紹云游戲音視頻體驗和優(yōu)化實踐。

文/吳振永

整理/LiveVideoStack

大家好!我是吳振永,來自智杰融興科技有限公司,很高興能跟大家做一次分享。我和我的團隊從2019年開始做云游戲里的技術(shù)研發(fā)和平臺的運營。今天,我分享的主題是:云游戲音視頻體驗優(yōu)化實踐。

今天,我分享的內(nèi)容主要分為四個部分。首先,介紹一下我們團隊當前的工作。然后,介紹云游戲的現(xiàn)狀。接著,介紹一些技術(shù)架構(gòu)。最后,和大家分享我們在實踐過程中遇到的一些“坑”和應(yīng)對方法。

01  自我介紹

首先,介紹一下我的公司。

智杰融興主要提供實時互動視頻云技術(shù)服務(wù),為客戶提供相應(yīng)的技術(shù)能力。實時互動視頻云技術(shù)可以應(yīng)用于很多場景,比如在線教育、視頻會議等。目前,我們團隊主要專注于三個方向:云游戲、云電腦和云手機。從2019年開始,云游戲、云應(yīng)用的熱度迅速上升,許多做游戲開發(fā)、游戲發(fā)行、游戲平臺的合作伙伴都想?yún)⑴c其中。然而,實時互動視頻云技術(shù)涉及的技術(shù)環(huán)節(jié)較多,而合作伙伴更希望專注于自身的業(yè)務(wù)。因此,我們把自己定義為技術(shù)服務(wù)提供商,幫助合作伙伴快速使用相關(guān)的技術(shù)服務(wù)。左下圖是我們做的云電腦,主要供做設(shè)計的合作伙伴使用。右圖展示了我們?yōu)樽鲇螒蚱脚_的合作伙伴提供的服務(wù)。

02  云游戲現(xiàn)狀

接下來,介紹云游戲的現(xiàn)狀。

從2019年底開始,受到谷歌的影響,云游戲的熱度迅速上升。當時,谷歌推出了Stadia,整個行業(yè)都沸騰了,不管是行業(yè)參與者還是媒體都對其非常關(guān)注,聚集了很多參與者。于是,從2019年開始,云游戲平臺如雨后春筍般出現(xiàn)。從圖中可以看到,有技術(shù)、有流量、有內(nèi)容、有資金的各方都開始布局云游戲。圖中還列出了目前行業(yè)里做云游戲較好的App?,F(xiàn)在打開應(yīng)用商店,搜索云游戲或云電腦,會出現(xiàn)一百多個相關(guān)App。雖然在2019年云游戲的熱度非常高,但現(xiàn)在云游戲的熱度已經(jīng)有所降低,大家轉(zhuǎn)而開始關(guān)注元宇宙。

目前,云游戲平臺越來越多,參與者越來越多,但還未出現(xiàn)一個影響力大的標志性平臺。當前,大家對云游戲的預期與云游戲的真實現(xiàn)狀有出入。在云游戲中,除了游戲內(nèi)容的吸引力和運營手段外,玩家更關(guān)注畫質(zhì)、流暢度和時延。隨著電子游戲的發(fā)展,畫質(zhì)也變得越來越好,可到達2K、4K,甚至8K的水平。這是因為玩家對畫質(zhì)的要求越來越高。此外,玩家對流暢度也有一定要求。流暢度可以映射為幀率,30fps和60fps已經(jīng)成為了標配。對于有電競級要求的玩家來說,幀率需要達到120fps(達到144fps則更好)。除了對流暢度有要求外,玩家對時延也有要求。云游戲包含了音視頻的技術(shù),但與點播、直播不同的是,云游戲?qū)r延的要求非常高。對于視頻點播和直播數(shù)據(jù)傳輸(音視頻技術(shù)的傳統(tǒng)應(yīng)用場景),可以將其吞吐做得很大,或使用各種加速技術(shù)將管道充滿。但在云游戲中,畫面是實時生成的,因此要保證持續(xù)性的低時延可控傳輸。此時若只是單純增大物理帶寬會無法完全滿足玩家對時延的訴求。

玩家對云游戲有高畫質(zhì)、超流暢和低時延的要求,希望有類似于本地化游戲的體驗。然而,現(xiàn)實中會出現(xiàn)網(wǎng)絡(luò)丟包、延遲抖動的情況,并且我們還要考慮到運營中的成本控制的問題。因此,面對玩家對業(yè)務(wù)的訴求或預期與網(wǎng)絡(luò)的現(xiàn)實情況有出入的情況,我們要尋求合適的解決方法。目前,行業(yè)里的伙伴一直在探索如何在當前的網(wǎng)絡(luò)情況下,提供更好的游戲體驗。

03  技術(shù)架構(gòu)

接下來,介紹一下整體的技術(shù)架構(gòu)。

圖中展示了整體的技術(shù)框架。從底層來看,我們實現(xiàn)了算力和存儲的接入(包括自有的算力和第三方的算力)。然后,在底層的上一層中我們搭建了游戲的服務(wù)。接著,在服務(wù)層的上一層中實現(xiàn)平臺的調(diào)度的管理,為客戶提供SDK實現(xiàn)快速接入和業(yè)務(wù)的快速對接。在其上一層,我們可以支撐各類型的應(yīng)用,比如云游戲、云桌面、云應(yīng)用和云聯(lián)運等,實現(xiàn)不同的業(yè)務(wù)。其中,與音視頻直接相關(guān)的是各端SDK與GS服務(wù)間的流化傳輸。

目前在音視頻的處理中,主要是基于RTC框架來運行。當游戲接入服務(wù)端后,通過游戲并行渲染和虛擬設(shè)備將游戲的音頻、視頻、操控和存儲進行分離,做到單系統(tǒng)環(huán)境下多游戲并行運行的軟件隔離,然后實現(xiàn)相應(yīng)的編碼、封包、ICE和擁塞,最后實現(xiàn)與客戶端的跨平臺互通。音視頻是云游戲重要的核心技術(shù)之一,未來游戲的形態(tài)和音視頻的界限會越來越模糊。目前,行業(yè)里已經(jīng)出現(xiàn)比如游戲直播、圍觀、打賞等比較火熱的場景方案。其中,云游戲的游戲過程是實時流,目前我們默認同時支持四路實時流的接入,即允許四個玩家同時接入平臺進行實時地交互。對于進行游戲圍觀的觀眾,他們看的是直播流,所以在服務(wù)端中會同時推五路流。其中,有四路流是實時流,需要各自進行編碼、封包、擁塞控制等處理。還有一路流專門作為直播的推流。在一個大的游戲的氛圍建設(shè)中,會提高其曝光度,并增強其互動性、趣味性。因此,多人實時的互動游戲有很大的魅力。

04  優(yōu)化實踐

接下來,介紹我們在實踐過程中遇到的問題和采取的解決策略(重點介紹我們自己采取的部分策略)。

我們先來看視頻壓縮。提到視頻壓縮,首先想到的是H.264、H.265、H.266或AV1,但在云游戲中我們要考慮更多的因素。比如在考慮編碼效率和解碼效率時,我們要從兩個角度來考慮,分別是時延和消耗。這是因為服務(wù)端的計算資源有限,若編碼的時延很大,則不適用于我們的場景。當前從編碼效率和終端接入的情況來看,在短時間內(nèi)還無法普遍地應(yīng)用AV1。這是因為不僅要考慮整體的時延,還要考慮計算資源的消耗,其中包含了服務(wù)端的編碼和播放端的解碼。在壓縮率方面,我們主要關(guān)注相同畫質(zhì)情況下的碼率,在運行時以H.265為主,以H.264為輔,這樣的選擇與兼容性有關(guān),目前還是存在小部分機型和芯片在解碼265的時候存在大緩沖或者不穩(wěn)定的問題,特別是一些舊手機和ott設(shè)備,所以都需要針對性地進行兼容處理。

之前提到,云游戲?qū)r延非常敏感,那么我們要考慮如何最大程度地降低處理時延。在程序設(shè)計中,不同的模塊間有緩沖機制、輪詢機制,這是正常且合理的。但對于游戲業(yè)務(wù)或強實時業(yè)務(wù)來說,雖然每個環(huán)節(jié)只增加了幾毫秒的時延,但所有環(huán)節(jié)的時延加起來就有幾十毫秒,玩家在操作時就會有不舒服的感覺。因此,在流線化的處理中,我們要快速地傳遞數(shù)據(jù),即在畫面渲染后,要快速地進行轉(zhuǎn)換和編碼。需要特別注意的是畫面的渲染和處理,需要避免 在GPU和CPU間進行拷貝,這個會導致較大的時延和系統(tǒng)開銷,所以要把處理和編碼都放在GPU中進行。這樣在GPU內(nèi),可以快速處理渲染后的畫面,并快速地進行數(shù)據(jù)封包和發(fā)送。

緩沖區(qū)是另一個需要特別注意的設(shè)計。因為有緩沖區(qū)存在,就會導致時延的累加。當然,由于網(wǎng)絡(luò)中存在丟包現(xiàn)象,所以需要緩存發(fā)送的數(shù)據(jù),但整個的處理流程中盡量避免緩沖區(qū)。其中,在視頻解碼和渲染顯示之間,需要進行必要的緩沖。這是因為在前面的過程中網(wǎng)絡(luò)會抖動,處理就會有快有慢。此時玩家觀看導出的畫面時,發(fā)現(xiàn)畫面可能會突然出現(xiàn)一個慢動作或快動作,這是因為幀的間隔不穩(wěn)定。因此在這個環(huán)節(jié)中,需要進行緩沖處理來保證幀的間隔穩(wěn)定。所以,在整個處理流程中,要取消緩沖、緩存、定時器機制,采用流化處理快速驅(qū)動。

接下來,介紹必要緩沖策略。在數(shù)據(jù)的整個傳輸過程中(包括解包和最后的處理),會出現(xiàn)波動。如圖所示,藍色的線是一條正常波動的曲線。在正常情況下,波動的曲線是穩(wěn)定的,但同時也會有突發(fā)的情況。

按照常規(guī)算法來看,呈現(xiàn)出的應(yīng)該是橙色曲線的情況。在網(wǎng)絡(luò)穩(wěn)定的情況下,可以降低緩沖的時延。相對地,在網(wǎng)絡(luò)出現(xiàn)問題時,可以提高緩沖的時延。最終的波動情況就如橙色曲線那樣。橙色曲線是較平滑和較穩(wěn)定的,但對于需要快速降低時延的場景來說,還需要進行進一步地優(yōu)化。

灰色曲線是優(yōu)化后的結(jié)果。當網(wǎng)絡(luò)較穩(wěn)定時,要快速地降低時延。降低時延的程度與抖動的范圍相關(guān)。當網(wǎng)絡(luò)出現(xiàn)大幅度地抖動時,要快速提高緩沖的時延。此時,玩家會感覺畫面突然跳了一下。畫面出現(xiàn)跳動后,會馬上恢復正常狀態(tài)。隨著時間的推移,網(wǎng)絡(luò)恢復穩(wěn)定,如灰色曲線中以更平緩的方式下降。如果連續(xù)出現(xiàn)幾次跳變,最后會讓曲線更加平緩。因為根據(jù)數(shù)據(jù)的累積可以發(fā)現(xiàn),網(wǎng)絡(luò)的情況比較糟糕。當然,在網(wǎng)絡(luò)情況良好的情況下,時延會非常低,基本接近端到端的時延。在網(wǎng)絡(luò)情況糟糕的情況下,經(jīng)過幾次循環(huán)后,若還是判定網(wǎng)絡(luò)情況糟糕,后續(xù)會以更平緩的方式運行。總之,這個策略采用了快降,但當出現(xiàn)波動時,會調(diào)整斜率來達到平衡穩(wěn)定。這樣,在網(wǎng)絡(luò)情況良好時,時延較低,在網(wǎng)絡(luò)情況糟糕時,也可以恢復到比較平衡穩(wěn)定的狀態(tài)。

接下來,介紹在傳輸?shù)男蛄兄?,實現(xiàn)的預丟包快速重傳。藍色曲線表示正常網(wǎng)絡(luò)傳輸中RTT的曲線。在這條曲線中,通過計算獲得兩條虛線,兩條虛線構(gòu)成了一個震蕩區(qū)間。震蕩區(qū)間是隨著時間推移形成的曲線點。在網(wǎng)絡(luò)出現(xiàn)抖動時,我們會關(guān)注最高點。當最高點的值超過300毫秒、400毫秒甚至更大的值或包出現(xiàn)亂序時,會將其判定為丟包,需要進行數(shù)據(jù)的快速重傳。但可以看到,此時已經(jīng)經(jīng)過了一定的時間,所以對此我們要進行相應(yīng)地處理。

首先,我們劃定一個震蕩區(qū)。震蕩區(qū)表示了一個合理的范圍。當網(wǎng)絡(luò)出現(xiàn)抖動或接收端沒有接收到預期的數(shù)據(jù)時,會進行預請求,要求重發(fā)一次數(shù)據(jù)。當真正出現(xiàn)丟包、包發(fā)生亂序或包延遲到達時,由于已經(jīng)進行了預請求來要求重發(fā)數(shù)據(jù),因此服務(wù)端若有這個數(shù)據(jù)就會快速重傳該數(shù)據(jù)。此時,可能有2-3個包在傳輸過程中,只要接收到一個包就能還原數(shù)據(jù),能將時間線往下推進。

通過預丟包快速重傳的方式,首先判定其丟包或網(wǎng)絡(luò)出現(xiàn)問題,不用等待而是要求提前獲取數(shù)據(jù)。這樣的方式取得了一定的效果。目前在運行時,在整個區(qū)間的判定上,將帶寬增加了5%-10%,這會明顯地提高平滑度。需要特別注意的是,重傳(預判)的點位非常重要,這一點若處理不好會導致一直傳輸大量的數(shù)據(jù),這就會消耗大量帶寬。

最后,介紹一下多路?;?。玩家在實際玩游戲的過程中,手機連接的可能是場地的WiFi,同時還有4G的網(wǎng)絡(luò)。當玩家在場地走動時,WiFi的信號可能會變?nèi)趸螂x開了WiFi的服務(wù)區(qū),因此切換到了4G網(wǎng)絡(luò)。此時,對于玩家而言,在游戲過程中會感覺發(fā)生了網(wǎng)絡(luò)斷開。斷開后,會啟動重連或重試機制,這會造成幾秒或十幾秒的卡殼。玩家的直觀感受就是畫面靜止,然后意識到網(wǎng)絡(luò)在重連。再過幾秒鐘,會重新連接到網(wǎng)絡(luò)??梢钥闯?,客戶端的網(wǎng)絡(luò)是不可控的。在實際運行過程中,手機端的用戶在游戲過程中出現(xiàn)連接、斷開的情況接近5%左右,這是正常的現(xiàn)象。這是因為如剛才所說,玩家最開始連接WiFi來玩游戲,當玩家在場地走動導致WiFi信號變?nèi)趸螂x開了服務(wù)區(qū),或者玩家在游戲過程中接了電話,都會導致游戲的中斷。總之,對于客戶端來說,已經(jīng)建立連接的網(wǎng)絡(luò)發(fā)生斷開是正常的現(xiàn)象。

對于服務(wù)端來說,情況也是一樣的。在游戲中,玩家可能有開房、跨區(qū)和玩家互動的訴求。因此,在節(jié)點我們會做多線接入或多端口接入,比如電信、聯(lián)通、移動等。在接入過程中,某一個網(wǎng)絡(luò)可能會出現(xiàn)問題或抖動,這是正常的。當然,在骨干網(wǎng)上,某一個路由出現(xiàn)擁塞也是正常的。當出現(xiàn)擁塞時,直觀的現(xiàn)象是延遲會發(fā)生抖動,丟包也會發(fā)生變化??梢钥吹剑蛻舳撕头?wù)端的網(wǎng)絡(luò)都是不可控的。若網(wǎng)絡(luò)斷開則需要重連或恢復,這需要幾秒鐘的時間。此時,玩家會感覺游戲卡殼。

為了優(yōu)化這個問題,我們設(shè)計了多路?;畹臋C制。在客戶端,4G和WiFi會和服務(wù)端的多個通道同時建立連接以保持連接狀態(tài),并以一個較高的頻率探測整個路徑的存活狀態(tài)。其中,我們引入了中轉(zhuǎn)方的角色。當出現(xiàn)客戶端和服務(wù)端之間的連接被運營商攔截或網(wǎng)絡(luò)中斷的情況時,會有第三方作為中轉(zhuǎn)方進行線路的支撐。如圖所示,我們假設(shè)客戶端有兩條線路。一條線路是4G,另一條線路是WiFi。我們假設(shè)服務(wù)端也有兩條線路(實際有三條線路)。中轉(zhuǎn)方與客戶端和服務(wù)端間也有路徑。其中,有多條路徑處于活躍的狀態(tài)。當某條路徑發(fā)生丟包或延遲超出允許的區(qū)間范圍時,在服務(wù)端會馬上通過另一個通道將數(shù)據(jù)發(fā)送出去。在服務(wù)端和客戶端,會保證幾條路徑同時都是活躍的,并且持續(xù)計算其延遲和丟包。這樣當網(wǎng)絡(luò)出現(xiàn)問題時,可以快速選擇另一條路徑。對于客戶端和服務(wù)端而言,基本沒有增加消耗。真正增加消耗的是中轉(zhuǎn)方。這是因為大量設(shè)備需要和中轉(zhuǎn)方建立連接。中轉(zhuǎn)方在平時不用做事情,但其會維持大量的端口和探測,以此保證路徑是活躍的,從而在發(fā)生問題時,能快速接管并保證畫面的流暢度和完整度在預期以內(nèi)。這在實際運行中,效果還是非常明顯的。從數(shù)據(jù)統(tǒng)計中可以看到,在單通道的情況下(WiFi或4G),延遲和丟包的比例非常高。在多通道的情況下,鏈路可以得到快速恢復。因此從最終結(jié)果來看,玩家獲取的時延和丟包的比例都有所減小。

以上內(nèi)容介紹了我們遇到的問題和處理的策略。介紹了在復雜的網(wǎng)絡(luò)環(huán)境下,如何盡最大努力為玩家提供低時延、高畫質(zhì)的游戲體驗。

以上就是本次分享的主要內(nèi)容,謝謝大家!

    本文為澎湃號作者或機構(gòu)在澎湃新聞上傳并發(fā)布,僅代表該作者或機構(gòu)觀點,不代表澎湃新聞的觀點或立場,澎湃新聞僅提供信息發(fā)布平臺。申請澎湃號請用電腦訪問http://renzheng.thepaper.cn。

    +1
    收藏
    我要舉報
            查看更多

            掃碼下載澎湃新聞客戶端

            滬ICP備14003370號

            滬公網(wǎng)安備31010602000299號

            互聯(lián)網(wǎng)新聞信息服務(wù)許可證:31120170006

            增值電信業(yè)務(wù)經(jīng)營許可證:滬B2-2017116

            ? 2014-2026 上海東方報業(yè)有限公司