本發(fā)明涉及多媒體領(lǐng)域,具體而言,涉及一種碼率的調(diào)整方法和裝置。
背景技術(shù):
目前,在視頻直播的過程中,服務(wù)器會(huì)按照預(yù)定的碼率傳輸視頻直播數(shù)據(jù),也即,現(xiàn)有技術(shù)中,不會(huì)根據(jù)當(dāng)前時(shí)刻的網(wǎng)絡(luò)傳輸速度調(diào)整視頻直播數(shù)據(jù)的播放碼率。
此時(shí),如果網(wǎng)絡(luò)的傳輸速度較快,那么就會(huì)出現(xiàn)由于未采用更大的碼率進(jìn)行視頻數(shù)據(jù)的播放而導(dǎo)致浪費(fèi)上行速度的現(xiàn)象。如果網(wǎng)絡(luò)的傳輸速度較慢時(shí),又會(huì)出現(xiàn)未能及時(shí)調(diào)整視頻播放碼率而導(dǎo)致的視頻在直播過程中播放不清晰的現(xiàn)象。
針對(duì)上述的問題,目前尚未提出有效的解決方案。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明實(shí)施例提供了一種碼率的調(diào)整方法和裝置,以至少解決現(xiàn)有技術(shù)中對(duì)直播數(shù)據(jù)進(jìn)行碼率調(diào)整時(shí),調(diào)整精度較低的技術(shù)問題。
根據(jù)本發(fā)明實(shí)施例的一個(gè)方面,提供了一種碼率的調(diào)整方法,包括:獲取第一網(wǎng)絡(luò)傳輸速度和第二網(wǎng)絡(luò)傳輸速度,其中,所述第一網(wǎng)絡(luò)傳輸速度為服務(wù)器傳輸直播數(shù)據(jù)的當(dāng)前視頻幀時(shí)單位時(shí)間內(nèi)的數(shù)據(jù)發(fā)送量,所述第二網(wǎng)絡(luò)傳輸速度為所述服務(wù)器在所述單位時(shí)間內(nèi)所允許的最大數(shù)據(jù)發(fā)送量;確定與所述當(dāng)前視頻幀的碼率所處的目標(biāo)碼率區(qū)間對(duì)應(yīng)的目標(biāo)預(yù)設(shè)碼率;根據(jù)所述目標(biāo)預(yù)設(shè)碼率、所述第一網(wǎng)絡(luò)傳輸速度和所述第二網(wǎng)絡(luò)傳輸速度調(diào)整所述直播數(shù)據(jù)的目標(biāo)視頻幀的碼率,其中,所述目標(biāo)視頻幀為所述當(dāng)前視頻幀的下一視頻幀。
根據(jù)本發(fā)明實(shí)施例的另一方面,還提供了一種碼率的調(diào)整裝置,包括:獲取單元,用于獲取第一網(wǎng)絡(luò)傳輸速度和第二網(wǎng)絡(luò)傳輸速度,其中,所述第一網(wǎng)絡(luò)傳輸速度為服務(wù)器傳輸直播數(shù)據(jù)的當(dāng)前視頻幀時(shí)單位時(shí)間內(nèi)的數(shù)據(jù)發(fā)送量,所述第二網(wǎng)絡(luò)傳輸速度為所述服務(wù)器在所述單位時(shí)間內(nèi)所允許的最大數(shù)據(jù)發(fā)送量;確定單元,用于確定與所述當(dāng)前視頻幀的碼率所處的目標(biāo)碼率區(qū)間對(duì)應(yīng)的目標(biāo)預(yù)設(shè)碼率;調(diào)整單元,用于根據(jù)所述目標(biāo)預(yù)設(shè)碼率、所述第一網(wǎng)絡(luò)傳輸速度和所述第二網(wǎng)絡(luò)傳輸速度調(diào)整所述直播數(shù)據(jù)的目標(biāo)視頻幀的碼率,其中,所述目標(biāo)視頻幀為所述當(dāng)前視頻幀的下一視頻幀。
在本發(fā)明實(shí)施例中,采用獲取第一網(wǎng)絡(luò)傳輸速度和第二網(wǎng)絡(luò)傳輸速度,其中,所述第一網(wǎng)絡(luò)傳輸速度為服務(wù)器傳輸直播數(shù)據(jù)的當(dāng)前視頻幀時(shí)單位時(shí)間內(nèi)的數(shù)據(jù)發(fā)送量,所述第二網(wǎng)絡(luò)傳輸速度為所述服務(wù)器在所述單位時(shí)間內(nèi)所允許的最大數(shù)據(jù)發(fā)送量;確定與所述當(dāng)前視頻幀的碼率所處的目標(biāo)碼率區(qū)間對(duì)應(yīng)的目標(biāo)預(yù)設(shè)碼率;根據(jù)所述目標(biāo)預(yù)設(shè)碼率、所述第一網(wǎng)絡(luò)傳輸速度和所述第二網(wǎng)絡(luò)傳輸速度調(diào)整所述直播數(shù)據(jù)的目標(biāo)視頻幀的碼率,其中,所述目標(biāo)視頻幀為所述當(dāng)前視頻幀的下一視頻幀的方式,在獲取到第一網(wǎng)絡(luò)傳輸速度和第二網(wǎng)絡(luò)傳輸速度之后,以及確定與當(dāng)前視頻幀的碼率所處的目標(biāo)碼流區(qū)間對(duì)應(yīng)的目標(biāo)預(yù)設(shè)碼率之后,根據(jù)獲取到的第一網(wǎng)絡(luò)傳輸速度、第二網(wǎng)絡(luò)傳輸速度和目標(biāo)預(yù)設(shè)碼率調(diào)整當(dāng)前視頻幀的下一視頻幀的碼率,達(dá)到了根據(jù)網(wǎng)絡(luò)傳輸速度調(diào)整視頻碼率的目的,從而實(shí)現(xiàn)了在直播的過程中,提高了直播數(shù)據(jù)的碼率調(diào)整精度的技術(shù)效果,進(jìn)而解決了現(xiàn)有技術(shù)中對(duì)直播數(shù)據(jù)進(jìn)行碼率調(diào)整時(shí),調(diào)整精度較低的技術(shù)問題。
附圖說明
此處所說明的附圖用來提供對(duì)本發(fā)明的進(jìn)一步理解,構(gòu)成本申請(qǐng)的一部分,本發(fā)明的示意性實(shí)施例及其說明用于解釋本發(fā)明,并不構(gòu)成對(duì)本發(fā)明的不當(dāng)限定。在附圖中:
圖1是根據(jù)現(xiàn)有技術(shù)的一種碼率的調(diào)整的示意圖;
圖2是根據(jù)本發(fā)明實(shí)施例的碼率的調(diào)整方法的流程圖;
圖3是根據(jù)本發(fā)明實(shí)施例的碼率的調(diào)整裝置的示意圖;以及
圖4是根據(jù)本發(fā)明實(shí)施例的一種終端的結(jié)構(gòu)框圖。
具體實(shí)施方式
為了使本技術(shù)領(lǐng)域的人員更好地理解本發(fā)明方案,下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分的實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都應(yīng)當(dāng)屬于本發(fā)明保護(hù)的范圍。
需要說明的是,本發(fā)明的說明書和權(quán)利要求書及上述附圖中的術(shù)語“第一”、“第二”等是用于區(qū)別類似的對(duì)象,而不必用于描述特定的順序或先后次序。應(yīng)該理解這樣使用的數(shù)據(jù)在適當(dāng)情況下可以互換,以便這里描述的本發(fā)明的實(shí)施例能夠以除了在這里圖示或描述的那些以外的順序?qū)嵤?。此外,術(shù)語“包括”和“具有”以及他們的任何變形,意圖在于覆蓋不排他的包含,例如,包含了一系列步驟或單元的過程、方法、系統(tǒng)、產(chǎn)品或設(shè)備不必限于清楚地列出的那些步驟或單元,而是可包括沒有清楚地列出的或?qū)τ谶@些過程、方法、產(chǎn)品或設(shè)備固有的其它步驟或單元。
本申請(qǐng)涉及到的專業(yè)術(shù)語的解釋:
碼率:是指每秒傳送的比特(bit)數(shù),單位為bps(Bit Per Second),其中,比特率越高,傳送數(shù)據(jù)速度越快。聲音中的比特率是指將模擬聲音信號(hào)轉(zhuǎn)換成數(shù)字聲音信號(hào)后,單位時(shí)間內(nèi)的二進(jìn)制數(shù)據(jù)量,是間接衡量音頻質(zhì)量的一個(gè)指標(biāo)。視頻中的比特率(碼率)原理與聲音中的相同,都是指由模擬信號(hào)轉(zhuǎn)換為數(shù)字信號(hào)后,單位時(shí)間內(nèi)的二進(jìn)制數(shù)據(jù)量。
實(shí)施例1
根據(jù)本發(fā)明實(shí)施例,提供了一種可以通過本申請(qǐng)裝置實(shí)施例執(zhí)行的方法實(shí)施例,需要說明的是,在附圖的流程圖示出的步驟可以在諸如一組計(jì)算機(jī)可執(zhí)行指令的計(jì)算機(jī)系統(tǒng)中執(zhí)行,并且,雖然在流程圖中示出了邏輯順序,但是在某些情況下,可以以不同于此處的順序執(zhí)行所示出或描述的步驟。
根據(jù)本發(fā)明實(shí)施例,提供了一種碼率的調(diào)整方法。
可選地,在本實(shí)施例中,上述碼率的調(diào)整方法可以應(yīng)用于如圖1所示的終端102和服務(wù)器104所構(gòu)成的硬件環(huán)境中。如圖1所示,終端102通過網(wǎng)絡(luò)與服務(wù)器104進(jìn)行連接,上述網(wǎng)絡(luò)包括但不限于:移動(dòng)通信網(wǎng)絡(luò)、廣域網(wǎng)、城域網(wǎng)或局域網(wǎng),終端102可以是手機(jī)終端,也可以是PC終端、筆記本終端或平板電腦終端。
圖1中示出的硬件環(huán)境系統(tǒng)的主要工作原理是:
在現(xiàn)有技術(shù)中,當(dāng)在終端102中播放直播數(shù)據(jù)時(shí),直播數(shù)據(jù)的播放碼率不會(huì)跟隨網(wǎng)絡(luò)傳輸速度的改變而發(fā)生改變。因此,當(dāng)網(wǎng)速較快時(shí),如果沒有采用更大的碼率對(duì)直播數(shù)據(jù)進(jìn)行播放,那么就會(huì)造成上行速度的浪費(fèi);當(dāng)網(wǎng)速較慢時(shí),如果沒有采用更小的碼率對(duì)直播數(shù)據(jù)進(jìn)行播放,那么就會(huì)導(dǎo)致直播過程中播放不清晰。
針對(duì)上述問題,在本發(fā)明實(shí)施例提供的碼率的調(diào)整方法中,當(dāng)在終端102中播放直播數(shù)據(jù)時(shí),終端102可以實(shí)時(shí)獲取服務(wù)器104在傳輸當(dāng)前視頻幀時(shí)在單位時(shí)間內(nèi)的數(shù)據(jù)發(fā)送量,即第一網(wǎng)絡(luò)傳輸速度,終端102還可以實(shí)時(shí)獲取服務(wù)器104在單位時(shí)間內(nèi)所允許的最大數(shù)據(jù)發(fā)送量,即第二網(wǎng)絡(luò)傳輸速度。終端102還可以確定當(dāng)前視頻幀的碼率所處的碼率區(qū)間對(duì)應(yīng)的目標(biāo)預(yù)設(shè)碼率。接下來,終端102就可以根據(jù)獲取到的第一網(wǎng)絡(luò)傳輸速度、第二網(wǎng)絡(luò)傳輸速度和目標(biāo)預(yù)設(shè)碼率調(diào)整當(dāng)前視頻幀的下一視頻幀的碼率。
例如,用戶在騰訊視頻客戶端中觀看體育賽事的直播。在直播的過程中,播放該體育賽事的終端可以實(shí)時(shí)獲取第一網(wǎng)絡(luò)傳輸速度和第二網(wǎng)絡(luò)傳輸速度,并實(shí)時(shí)確定播放的體育賽事的當(dāng)前視頻幀的碼率所處的碼率區(qū)間對(duì)應(yīng)的目標(biāo)預(yù)設(shè)碼率。最后,終端102就可以根據(jù)獲取到的第一網(wǎng)絡(luò)傳輸速度和第二網(wǎng)絡(luò)傳輸速度調(diào)整當(dāng)前視頻幀的碼率,得到當(dāng)前視頻幀的下一視頻幀的碼率,進(jìn)而,通過得到的碼率播放下一視頻幀。
圖2是根據(jù)本發(fā)明實(shí)施例的碼率的調(diào)整方法的流程圖,以下結(jié)合圖2對(duì)本發(fā)明實(shí)施例所提供的碼率的調(diào)整方法做具體介紹,如圖2所示,該碼率的調(diào)整方法主要包括如下步驟S202至步驟S206:
步驟S202,獲取第一網(wǎng)絡(luò)傳輸速度和第二網(wǎng)絡(luò)傳輸速度,其中,第一網(wǎng)絡(luò)傳輸速度為服務(wù)器傳輸直播數(shù)據(jù)的當(dāng)前視頻幀時(shí)單位時(shí)間內(nèi)的數(shù)據(jù)發(fā)送量,第二網(wǎng)絡(luò)傳輸速度為服務(wù)器在單位時(shí)間內(nèi)所允許的最大數(shù)據(jù)發(fā)送量。
在本發(fā)明實(shí)施例中,可以通過終端獲取第一網(wǎng)絡(luò)傳輸速度和第二網(wǎng)絡(luò)傳輸速度,其中,該終端為播放直播數(shù)據(jù)的終端;直播數(shù)據(jù)可以為通過客戶端進(jìn)行直播的視頻,例如,直播的體育賽事,直播的電視劇,以及即時(shí)通信軟件中的直播數(shù)據(jù)。
由于上述第一網(wǎng)絡(luò)傳輸速度為服務(wù)器傳輸當(dāng)前視頻幀時(shí)單位時(shí)間內(nèi)的數(shù)據(jù)發(fā)送量,第二網(wǎng)絡(luò)傳輸速度為服務(wù)器在相同的單位時(shí)間內(nèi)所允許發(fā)送的最大數(shù)據(jù)量。因此,通過比較第一網(wǎng)絡(luò)傳輸速度和第二網(wǎng)絡(luò)傳輸速度就能夠知曉網(wǎng)絡(luò)傳輸速度是否發(fā)生了變化,以及知曉網(wǎng)絡(luò)傳輸速度是增大了,還是減小了。如果網(wǎng)速增大,那么就可以適當(dāng)?shù)卦黾酉乱粠曨l的播放碼率;如果網(wǎng)速減小,那么就可以適當(dāng)?shù)販p小下一幀視頻的播放碼率,以實(shí)現(xiàn)根據(jù)網(wǎng)絡(luò)傳輸速度調(diào)整下一幀視頻的碼率。
步驟S204,確定與當(dāng)前視頻幀的碼率所處的目標(biāo)碼率區(qū)間對(duì)應(yīng)的目標(biāo)預(yù)設(shè)碼率。
在本發(fā)明實(shí)施例中,終端可以獲取當(dāng)前視頻幀的碼率,在獲取到碼率之后,就可以確定該碼率所處的目標(biāo)碼率區(qū)間。在確定目標(biāo)碼率區(qū)間之后,就可以進(jìn)一步確定出該目標(biāo)碼率區(qū)間對(duì)應(yīng)的目標(biāo)預(yù)設(shè)碼率。
步驟S206,根據(jù)目標(biāo)預(yù)設(shè)碼率、第一網(wǎng)絡(luò)傳輸速度和第二網(wǎng)絡(luò)傳輸速度調(diào)整直播數(shù)據(jù)的目標(biāo)視頻幀的碼率,其中,目標(biāo)視頻幀為當(dāng)前視頻幀的下一視頻幀。
通過上述步驟S202中的描述可知,終端在獲取到第一網(wǎng)絡(luò)傳輸速度和第二網(wǎng)絡(luò)傳輸速度之后,就可以通過比較第二網(wǎng)絡(luò)傳輸速度和第二網(wǎng)絡(luò)傳輸速度的大小來調(diào)整目標(biāo)預(yù)設(shè)碼率,并將調(diào)整之后的目標(biāo)預(yù)設(shè)碼率作為目標(biāo)視頻幀的碼率,并按照調(diào)整之后的目標(biāo)預(yù)設(shè)碼率播放目標(biāo)視頻幀。
在本發(fā)明實(shí)施例中,在獲取到第一網(wǎng)絡(luò)傳輸速度和第二網(wǎng)絡(luò)傳輸速度之后,以及確定與當(dāng)前視頻幀的碼率所處的目標(biāo)碼流區(qū)間對(duì)應(yīng)的目標(biāo)預(yù)設(shè)碼率之后,根據(jù)獲取到的第一網(wǎng)絡(luò)傳輸速度、第二網(wǎng)絡(luò)傳輸速度和目標(biāo)預(yù)設(shè)碼率調(diào)整當(dāng)前視頻幀的下一視頻幀的碼率,達(dá)到了根據(jù)網(wǎng)絡(luò)傳輸速度調(diào)整視頻碼率的目的,從而實(shí)現(xiàn)了在直播的過程中,提高了直播數(shù)據(jù)的碼率調(diào)整精度的技術(shù)效果,進(jìn)而解決了現(xiàn)有技術(shù)中對(duì)直播數(shù)據(jù)進(jìn)行碼率調(diào)整時(shí),調(diào)整精度較低的技術(shù)問題。
在本發(fā)明的一個(gè)可選實(shí)施方式中,在確定直播數(shù)據(jù)的當(dāng)前視頻幀的碼率所處的目標(biāo)碼率區(qū)間之前,還可以配置多個(gè)碼率區(qū)間與多個(gè)預(yù)設(shè)碼率之間的對(duì)應(yīng)關(guān)系,其中,每個(gè)碼率區(qū)間對(duì)應(yīng)一個(gè)預(yù)設(shè)碼率,多個(gè)碼率區(qū)間包括目標(biāo)碼率區(qū)間,多個(gè)預(yù)設(shè)碼率包括目標(biāo)預(yù)設(shè)碼率,碼率區(qū)間的邊界值越大,對(duì)應(yīng)的預(yù)設(shè)碼率越大。
在本發(fā)明實(shí)施例中,可以預(yù)先配置多個(gè)碼率區(qū)間,例如,預(yù)先配置多個(gè)連續(xù)的碼率區(qū)間,以及為每個(gè)碼率區(qū)間配置預(yù)設(shè)碼率,其中,為每個(gè)碼率區(qū)間配置的預(yù)設(shè)碼率不相同。例如,多個(gè)碼率區(qū)間為:[a,b]、[b,c]和[c,d],那么就可以為上述碼率區(qū)間[a,b]、[b,c]和[c,d]中的每個(gè)碼率區(qū)間配置一個(gè)預(yù)設(shè)碼率,如,為碼率區(qū)間[a,b]配置的預(yù)設(shè)碼率為A1,為碼率區(qū)間[b,c]配置的預(yù)設(shè)碼率為A2,為碼率區(qū)間[c,d]配置的預(yù)設(shè)碼率為A3。
如果上述a<b<c,那么A1<A2<A3。也就是說,當(dāng)碼率區(qū)間[a,b]、[b,c]和[c,d]的邊界值逐漸增大時(shí),每個(gè)碼率區(qū)間對(duì)應(yīng)的預(yù)設(shè)碼率也逐漸增大,即碼率區(qū)間的邊界值越大,對(duì)應(yīng)的預(yù)設(shè)碼率越大。相反地,如果碼率區(qū)間的邊界值越小,對(duì)應(yīng)的預(yù)設(shè)碼率也就越小。
在配置多個(gè)碼率區(qū)間與多個(gè)預(yù)設(shè)碼率之間的對(duì)應(yīng)關(guān)系之后,就可以在播放直播數(shù)據(jù)時(shí),獲取第一網(wǎng)絡(luò)傳輸速度和第二網(wǎng)絡(luò)傳輸速度,以及在預(yù)先配置的多個(gè)碼率區(qū)間確定目標(biāo)碼率區(qū)間,進(jìn)而,確定目標(biāo)碼率區(qū)間對(duì)應(yīng)的目標(biāo)預(yù)設(shè)碼率。接下來,就可以根據(jù)第一網(wǎng)絡(luò)傳輸速度、第二網(wǎng)絡(luò)傳輸速度和目標(biāo)預(yù)設(shè)碼率調(diào)整目標(biāo)視頻幀的碼率。
在本發(fā)明的另一可選實(shí)施方式中,根據(jù)目標(biāo)預(yù)設(shè)碼率、第一網(wǎng)絡(luò)傳輸速度和第二網(wǎng)絡(luò)傳輸速度調(diào)整直播數(shù)據(jù)的目標(biāo)視頻幀的碼率,具體為:比較第一網(wǎng)絡(luò)傳輸速度與第二網(wǎng)絡(luò)傳輸速度的大小;其中,若比較出第一網(wǎng)絡(luò)傳輸速度小于第二網(wǎng)絡(luò)傳輸速度,則將當(dāng)前視頻幀的碼率增大預(yù)設(shè)碼率,得到目標(biāo)視頻幀的碼率,若比較出第一網(wǎng)絡(luò)傳輸速度大于第二網(wǎng)絡(luò)傳輸速度,則將當(dāng)前視頻幀的碼率減少預(yù)設(shè)碼率,得到目標(biāo)視頻幀的碼率。
在上述步驟S202和步驟S204中獲取到目標(biāo)預(yù)設(shè)碼率、第一網(wǎng)絡(luò)傳輸速度和第二網(wǎng)絡(luò)傳輸速度之后,則比較第一網(wǎng)絡(luò)傳輸速度和第二網(wǎng)路傳輸?shù)拇笮。布?,比較服務(wù)器在單位時(shí)間內(nèi)的數(shù)據(jù)發(fā)送量和允許的最大數(shù)據(jù)發(fā)送量,其中,單位時(shí)間為發(fā)送當(dāng)前視頻幀時(shí)的單位時(shí)間。
如果比較出服務(wù)器在單位時(shí)間內(nèi)的數(shù)據(jù)發(fā)送量小于允許的最大數(shù)據(jù)發(fā)送量,那么表明網(wǎng)絡(luò)的傳輸速度增大了,此時(shí)可以將當(dāng)前視頻幀的碼率增大目標(biāo)預(yù)設(shè)碼率,并將增大之后的當(dāng)前視頻幀的碼率作為下一視頻幀的碼率。例如,當(dāng)前視頻幀的碼率為VB,目標(biāo)預(yù)設(shè)碼率為384,那么將VB+384作為下一視頻幀的碼率。
如果比較出服務(wù)器在單位時(shí)間內(nèi)的數(shù)據(jù)發(fā)送量大于允許的最大數(shù)據(jù)發(fā)送量,那么表明網(wǎng)絡(luò)的傳輸速度減小了,此時(shí)可以將當(dāng)前視頻幀的碼率減小目標(biāo)預(yù)設(shè)碼率,并將減小之后的當(dāng)前視頻幀的碼率作為下一視頻幀的碼率。例如,當(dāng)前視頻幀的碼率為VB,目標(biāo)預(yù)設(shè)碼率為384,那么將VB-384作為下一視頻幀的碼率。
在本發(fā)明的另一個(gè)可選實(shí)施方式中,在確定與當(dāng)前視頻幀的碼率所處的目標(biāo)碼率區(qū)間對(duì)應(yīng)的目標(biāo)預(yù)設(shè)碼率之后,還可以判斷當(dāng)前視頻幀的碼率所處的目標(biāo)碼率區(qū)間是否為最小碼率區(qū)間,其中,最小碼率區(qū)間為預(yù)先配置的多個(gè)碼率區(qū)間中邊界值最小的碼率區(qū)間,多個(gè)碼率區(qū)間包括目標(biāo)碼率區(qū)間,其中,如果判斷出目標(biāo)碼率區(qū)間為最小碼率區(qū)間,則指示服務(wù)器停止傳輸直播數(shù)據(jù)的視頻數(shù)據(jù),其中,服務(wù)器用于傳輸直播數(shù)據(jù)。
通過上述描述可知,如果預(yù)先配置的多個(gè)碼率區(qū)間為:[a,b]、[b,c]和[c,d],并且a、b和c滿足下述關(guān)系:a<b<c,那么即可確定碼率區(qū)間[a,b]即為預(yù)先配置的多個(gè)碼率區(qū)間中的最小碼率區(qū)間,其中,最小碼率區(qū)間的邊界值在多個(gè)碼率區(qū)間的多個(gè)邊界值中最小。
如果判斷出當(dāng)前視頻幀的碼率處于最小碼率區(qū)間,則表明當(dāng)前視頻幀的傳送速度最低。此時(shí),無需再增大當(dāng)前視頻幀的碼率或者減小當(dāng)前視頻幀的碼率,終端可以向服務(wù)器發(fā)送指示信息,用于指示服務(wù)器停止傳輸直播數(shù)據(jù)中的視頻數(shù)據(jù),但是可以繼續(xù)傳輸直播數(shù)據(jù)中的音頻數(shù)據(jù)。此時(shí),就可以在終端的顯示器中顯示靜態(tài)畫面,同時(shí)播放聲音。
假設(shè),多個(gè)碼率區(qū)間為:(-∞,32]、[32,128]、[128,512]、[512,1152]和[1152,+∞],其中,碼率區(qū)間(-∞,32]即為多個(gè)碼率區(qū)間的最小碼率區(qū)間;當(dāng)前視頻幀的碼率為20kbps。通過確定可知,當(dāng)前視頻幀的碼率所處的目標(biāo)碼率區(qū)間為碼率區(qū)間(-∞,32],此時(shí),終端可以向服務(wù)器發(fā)送指示信息,以指示服務(wù)器停止向終端傳輸直播數(shù)據(jù)的視頻數(shù)據(jù),但是繼續(xù)傳輸直播數(shù)據(jù)的音頻數(shù)據(jù)。
在本發(fā)明實(shí)施例中,獲取第一網(wǎng)絡(luò)傳輸速度包括:獲取服務(wù)器發(fā)送的用于指示第一網(wǎng)絡(luò)傳輸速度的第一指示信息;或者,根據(jù)單位時(shí)間內(nèi)從服務(wù)器接收到的數(shù)據(jù)接收量確定第一網(wǎng)絡(luò)傳輸速度。獲取第二網(wǎng)絡(luò)傳輸速度包括:獲取服務(wù)器發(fā)送的用于指示第二網(wǎng)絡(luò)傳輸速度的第二指示信息。
具體地,終端可以通過獲取服務(wù)器發(fā)送的第一指示信息來獲取第一網(wǎng)絡(luò)傳輸速度;終端也可以通過獲取發(fā)送的第二指示信息來獲取第二網(wǎng)絡(luò)傳輸速度。進(jìn)一步地,終端還可以確定單位時(shí)間內(nèi)從服務(wù)器接收到的數(shù)據(jù)量,進(jìn)而,根據(jù)接收到的數(shù)據(jù)量確定第一網(wǎng)絡(luò)傳輸速度。
下面將以具體實(shí)施例對(duì)本發(fā)明提供的碼率的調(diào)整方法進(jìn)行說明。
假設(shè),終端在播放直播數(shù)據(jù)時(shí),當(dāng)前視頻幀的碼率為vB1,多個(gè)碼率區(qū)間為(-∞,32]、[32,128]、[128,512]、[512,1152]和[1152,+∞),并且,上述多個(gè)碼率區(qū)間的預(yù)設(shè)碼率分別為:32、64、128和384;當(dāng)前視頻幀的下一視頻幀的碼率為vB2。第一網(wǎng)絡(luò)傳輸速度為Q1,第二網(wǎng)絡(luò)傳輸速度為Q2根據(jù)以下算法調(diào)整碼率,其中,第一網(wǎng)絡(luò)傳輸速度又可以稱為當(dāng)前網(wǎng)絡(luò)的發(fā)送量,第二網(wǎng)絡(luò)傳輸速度又可以稱為當(dāng)前網(wǎng)絡(luò)的承載量Q2。
如果當(dāng)前視頻幀的碼率vB1大于1152kbps,則確定當(dāng)前視頻幀的目標(biāo)碼率區(qū)間為[1152,+∞)。此時(shí)比較Q2和Q1的大小,其中,當(dāng)比較出Q2大于Q1時(shí),表明網(wǎng)絡(luò)傳輸速度增大,此時(shí),將vB1增加預(yù)設(shè)碼率384,即vB1+384,得到vB2,即vB2=vB1+384,其中,vB2即為需要調(diào)整的下一視頻幀的碼率;當(dāng)比較出Q2小于Q1時(shí),表明網(wǎng)絡(luò)傳輸速度減小,此時(shí),將vB1減小預(yù)設(shè)碼率384,即vB1-384,得到vB2,即vB2=vB1-384,其中,vB2即為需要調(diào)整的下一視頻幀的碼率。
如果當(dāng)前視頻幀的碼率vB1大于512kbps且小于1152kbps,則確定當(dāng)前視頻幀的目標(biāo)碼率區(qū)間為[512,1152]。此時(shí)比較Q2和Q1的大小,其中,當(dāng)比較出Q2大于Q1時(shí),表明網(wǎng)絡(luò)傳輸速度增大,此時(shí),將vB1增加預(yù)設(shè)碼率128,即vB1+128,得到vB2,即vB2=vB1+128,其中,vB2即為需要調(diào)整的下一視頻幀的碼率;當(dāng)比較出Q2小于Q1時(shí),表明網(wǎng)絡(luò)傳輸速度減小,此時(shí),將vB1減小預(yù)設(shè)碼率128,即vB1-128,得到vB2,即vB2=vB1-128,其中,vB2即為需要調(diào)整的下一視頻幀的碼率。
如果當(dāng)前視頻幀的碼率vB1大于128kbps且小于512kbps,則確定當(dāng)前視頻幀的目標(biāo)碼率區(qū)間為[128,512]。此時(shí)比較Q2和Q1的大小,其中,當(dāng)比較出Q2大于Q1時(shí),表明網(wǎng)絡(luò)傳輸速度增大,此時(shí),將vB1增加預(yù)設(shè)碼率64,即vB1+64,得到vB2,即vB2=vB1+64,其中,vB2即為需要調(diào)整的下一視頻幀的碼率;當(dāng)比較出Q2小于Q1時(shí),表明網(wǎng)絡(luò)傳輸速度減小,此時(shí),將vB1減小預(yù)設(shè)碼率64,即vB1-64,得到vB2,即vB2=vB1-64,其中,vB2即為需要調(diào)整的下一視頻幀的碼率。
如果當(dāng)前視頻幀的碼率vB1大于32kbps且小于128kbps,則確定當(dāng)前視頻幀的目標(biāo)碼率區(qū)間為[32,128]。此時(shí)比較Q2和Q1的大小,其中,當(dāng)比較出Q2大于Q1時(shí),表明網(wǎng)絡(luò)傳輸速度增大,此時(shí),將vB1增加預(yù)設(shè)碼率32,即vB1+32,得到vB2,即vB2=vB1+32,其中,vB2即為需要調(diào)整的下一視頻幀的碼率;當(dāng)比較出Q2小于Q1時(shí),表明網(wǎng)絡(luò)傳輸速度減小,此時(shí),將vB1減小預(yù)設(shè)碼率32,即vB1-32,得到vB2,即vB2=vB1-32,其中,vB2即為需要調(diào)整的下一視頻幀的碼率。
如果當(dāng)前視頻幀的碼率vB1小于32kbps,則確定當(dāng)前視頻幀的目標(biāo)碼率區(qū)間為(-∞,32],此時(shí),則不再傳輸視頻數(shù)據(jù),轉(zhuǎn)而只傳輸音頻數(shù)據(jù),這時(shí)候可以在播放端顯示靜態(tài)畫面的同時(shí)播放音聲。
通過上述描述可知,在本發(fā)明實(shí)施例中,根據(jù)結(jié)合獲取到的當(dāng)前視頻幀的碼率、第一網(wǎng)絡(luò)傳輸速度和第二網(wǎng)絡(luò)傳輸速度來調(diào)整播放的直播數(shù)據(jù)的分辨率的方法,達(dá)到了根據(jù)已發(fā)送數(shù)據(jù)得到當(dāng)前網(wǎng)速反饋,然后,根據(jù)網(wǎng)速的不同不斷地調(diào)整直播中的視頻的碼率達(dá)到了逐步調(diào)整碼率的目的。其中,若網(wǎng)速整體較快,則調(diào)整的碼率的粒度相應(yīng)較大,若網(wǎng)速整體較慢,則調(diào)整的碼率的粒度相應(yīng)較?。贿@就使得視頻播放過程中的數(shù)據(jù)的傳輸量逼近當(dāng)前網(wǎng)絡(luò)的承載量,即不浪費(fèi)上行帶寬,又能收到高碼率數(shù)據(jù)。
需要說明的是,對(duì)于前述的各方法實(shí)施例,為了簡(jiǎn)單描述,故將其都表述為一系列的動(dòng)作組合,但是本領(lǐng)域技術(shù)人員應(yīng)該知悉,本發(fā)明并不受所描述的動(dòng)作順序的限制,因?yàn)橐罁?jù)本發(fā)明,某些步驟可以采用其他順序或者同時(shí)進(jìn)行。其次,本領(lǐng)域技術(shù)人員也應(yīng)該知悉,說明書中所描述的實(shí)施例均屬于優(yōu)選實(shí)施例,所涉及的動(dòng)作和模塊并不一定是本發(fā)明所必須的。
通過以上的實(shí)施方式的描述,本領(lǐng)域的技術(shù)人員可以清楚地了解到根據(jù)上述實(shí)施例的方法可借助軟件加必需的通用硬件平臺(tái)的方式來實(shí)現(xiàn),當(dāng)然也可以通過硬件,但很多情況下前者是更佳的實(shí)施方式。基于這樣的理解,本發(fā)明的技術(shù)方案本質(zhì)上或者說對(duì)現(xiàn)有技術(shù)做出貢獻(xiàn)的部分可以以軟件產(chǎn)品的形式體現(xiàn)出來,該計(jì)算機(jī)軟件產(chǎn)品存儲(chǔ)在一個(gè)存儲(chǔ)介質(zhì)(如ROM/RAM、磁碟、光盤)中,包括若干指令用以使得一臺(tái)終端設(shè)備(可以是手機(jī),計(jì)算機(jī),服務(wù)器,或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行本發(fā)明各個(gè)實(shí)施例所述的方法。
實(shí)施例2
根據(jù)本發(fā)明實(shí)施例,還提供了一種用于實(shí)施上述碼率的調(diào)整方法的碼率的調(diào)整裝置,該碼率的調(diào)整裝置主要用于執(zhí)行本發(fā)明實(shí)施例上述內(nèi)容所提供的碼率的調(diào)整方法,以下對(duì)本發(fā)明實(shí)施例所提供的碼率的調(diào)整裝置做具體介紹:
圖3是根據(jù)本發(fā)明實(shí)施例的碼率的調(diào)整裝置的示意圖,如圖3所示,該碼率的調(diào)整裝置主要包括獲取單元301、確定單元303和調(diào)整單元305,其中:
獲取單元,用于獲取第一網(wǎng)絡(luò)傳輸速度和第二網(wǎng)絡(luò)傳輸速度,其中,第一網(wǎng)絡(luò)傳輸速度為服務(wù)器傳輸直播數(shù)據(jù)的當(dāng)前視頻幀時(shí)單位時(shí)間內(nèi)的數(shù)據(jù)發(fā)送量,第二網(wǎng)絡(luò)傳輸速度為服務(wù)器在單位時(shí)間內(nèi)所允許的最大數(shù)據(jù)發(fā)送量;
在本發(fā)明實(shí)施例中,可以通過終端獲取第一網(wǎng)絡(luò)傳輸速度和第二網(wǎng)絡(luò)傳輸速度,其中,該終端為播放直播數(shù)據(jù)的終端;直播數(shù)據(jù)可以為通過客戶端進(jìn)行直播的視頻,例如,直播的體育賽事,直播的電視劇,以及即時(shí)通信軟件中的直播數(shù)據(jù)。
由于上述第一網(wǎng)絡(luò)傳輸速度為服務(wù)器傳輸當(dāng)前視頻幀時(shí)單位時(shí)間內(nèi)的數(shù)據(jù)發(fā)送量,第二網(wǎng)絡(luò)傳輸速度為服務(wù)器在相同的單位時(shí)間內(nèi)所允許發(fā)送的最大數(shù)據(jù)量。因此,通過比較第一網(wǎng)絡(luò)傳輸速度和第二網(wǎng)絡(luò)傳輸速度就能夠知曉網(wǎng)絡(luò)傳輸速度是否發(fā)生了變化,以及知曉網(wǎng)絡(luò)傳輸速度是增大了,還是減小了。如果網(wǎng)速增大,那么就可以適當(dāng)?shù)卦黾酉乱粠曨l的播放碼率;如果網(wǎng)速減小,那么就可以適當(dāng)?shù)販p小下一幀視頻的播放碼率,以實(shí)現(xiàn)根據(jù)網(wǎng)絡(luò)傳輸速度調(diào)整下一幀視頻的碼率。
確定單元,用于確定與當(dāng)前視頻幀的碼率所處的目標(biāo)碼率區(qū)間對(duì)應(yīng)的目標(biāo)預(yù)設(shè)碼率;
在本發(fā)明實(shí)施例中,終端可以獲取當(dāng)前視頻幀的碼率,在獲取到碼率之后,就可以確定該碼率所處的目標(biāo)碼率區(qū)間。在確定目標(biāo)碼率區(qū)間之后,就可以進(jìn)一步確定出該目標(biāo)碼率區(qū)間對(duì)應(yīng)的目標(biāo)預(yù)設(shè)碼率。
調(diào)整單元,用于根據(jù)目標(biāo)預(yù)設(shè)碼率、第一網(wǎng)絡(luò)傳輸速度和第二網(wǎng)絡(luò)傳輸速度調(diào)整直播數(shù)據(jù)的目標(biāo)視頻幀的碼率,其中,目標(biāo)視頻幀為當(dāng)前視頻幀的下一視頻幀。
通過上述獲取單元中的描述可知,終端在獲取到第一網(wǎng)絡(luò)傳輸速度和第二網(wǎng)絡(luò)傳輸速度之后,就可以通過比較第二網(wǎng)絡(luò)傳輸速度和第二網(wǎng)絡(luò)傳輸速度的大小來調(diào)整目標(biāo)預(yù)設(shè)碼率,并將調(diào)整之后的目標(biāo)預(yù)設(shè)碼率作為目標(biāo)視頻幀的碼率,并按照調(diào)整之后的目標(biāo)預(yù)設(shè)碼率播放目標(biāo)視頻幀。
在本發(fā)明實(shí)施例中,在獲取到第一網(wǎng)絡(luò)傳輸速度和第二網(wǎng)絡(luò)傳輸速度之后,以及確定與當(dāng)前視頻幀的碼率所處的目標(biāo)碼流區(qū)間對(duì)應(yīng)的目標(biāo)預(yù)設(shè)碼率之后,根據(jù)獲取到的第一網(wǎng)絡(luò)傳輸速度、第二網(wǎng)絡(luò)傳輸速度和目標(biāo)預(yù)設(shè)碼率調(diào)整當(dāng)前視頻幀的下一視頻幀的碼率,達(dá)到了根據(jù)網(wǎng)絡(luò)傳輸速度調(diào)整視頻碼率的目的,從而實(shí)現(xiàn)了在直播的過程中,提高了直播數(shù)據(jù)的碼率調(diào)整精度的技術(shù)效果,進(jìn)而解決了現(xiàn)有技術(shù)中對(duì)直播數(shù)據(jù)進(jìn)行碼率調(diào)整時(shí),調(diào)整精度較低的技術(shù)問題。
可選地,裝置還包括:配置單元,用于在確定直播數(shù)據(jù)的當(dāng)前視頻幀的碼率所處的目標(biāo)碼率區(qū)間之前,配置多個(gè)碼率區(qū)間與多個(gè)預(yù)設(shè)碼率之間的對(duì)應(yīng)關(guān)系,其中,每個(gè)碼率區(qū)間對(duì)應(yīng)一個(gè)預(yù)設(shè)碼率,多個(gè)碼率區(qū)間包括目標(biāo)碼率區(qū)間,多個(gè)預(yù)設(shè)碼率包括目標(biāo)預(yù)設(shè)碼率,碼率區(qū)間的邊界值越大,對(duì)應(yīng)的預(yù)設(shè)碼率越大。
在本發(fā)明實(shí)施例中,可以預(yù)先配置多個(gè)碼率區(qū)間,例如,預(yù)先配置多個(gè)連續(xù)的碼率區(qū)間,以及為每個(gè)碼率區(qū)間配置預(yù)設(shè)碼率,其中,為每個(gè)碼率區(qū)間配置的預(yù)設(shè)碼率不相同。例如,多個(gè)碼率區(qū)間為:[a,b]、[b,c]和[c,d],那么就可以為上述碼率區(qū)間[a,b]、[b,c]和[c,d]中的每個(gè)碼率區(qū)間配置一個(gè)預(yù)設(shè)碼率,如,為碼率區(qū)間[a,b]配置的預(yù)設(shè)碼率為A1,為碼率區(qū)間[b,c]配置的預(yù)設(shè)碼率為A2,為碼率區(qū)間[c,d]配置的預(yù)設(shè)碼率為A3。
如果上述a<b<c,那么A1<A2<A3。也就是說,當(dāng)碼率區(qū)間[a,b]、[b,c]和[c,d]的邊界值逐漸增大時(shí),每個(gè)碼率區(qū)間對(duì)應(yīng)的預(yù)設(shè)碼率也逐漸增大,即碼率區(qū)間的邊界值越大,對(duì)應(yīng)的預(yù)設(shè)碼率越大。相反地,如果碼率區(qū)間的邊界值越小,對(duì)應(yīng)的預(yù)設(shè)碼率也就越小。
在配置多個(gè)碼率區(qū)間與多個(gè)預(yù)設(shè)碼率之間的對(duì)應(yīng)關(guān)系之后,就可以在播放直播數(shù)據(jù)時(shí),獲取第一網(wǎng)絡(luò)傳輸速度和第二網(wǎng)絡(luò)傳輸速度,以及在預(yù)先配置的多個(gè)碼率區(qū)間確定目標(biāo)碼率區(qū)間,進(jìn)而,確定目標(biāo)碼率區(qū)間對(duì)應(yīng)的目標(biāo)預(yù)設(shè)碼率。接下來,就可以根據(jù)第一網(wǎng)絡(luò)傳輸速度、第二網(wǎng)絡(luò)傳輸速度和目標(biāo)預(yù)設(shè)碼率調(diào)整目標(biāo)視頻幀的碼率。
可選地,調(diào)整單元包括:比較模塊,用于比較第一網(wǎng)絡(luò)傳輸速度與第二網(wǎng)絡(luò)傳輸速度的大?。坏谝徽{(diào)整模塊,用于在比較出第一網(wǎng)絡(luò)傳輸速度小于第二網(wǎng)絡(luò)傳輸速度的情況下,將當(dāng)前視頻幀的碼率增大目標(biāo)預(yù)設(shè)碼率,得到目標(biāo)視頻幀的碼率;第二調(diào)整模塊,用于在比較出第一網(wǎng)絡(luò)傳輸速度大于第二網(wǎng)絡(luò)傳輸速度的情況下,將當(dāng)前視頻幀的碼率減少目標(biāo)預(yù)設(shè)碼率,得到目標(biāo)視頻幀的碼率。
在上述步驟S202和步驟S204中獲取到目標(biāo)預(yù)設(shè)碼率、第一網(wǎng)絡(luò)傳輸速度和第二網(wǎng)絡(luò)傳輸速度之后,則比較第一網(wǎng)絡(luò)傳輸速度和第二網(wǎng)路傳輸?shù)拇笮?,也即,比較服務(wù)器在單位時(shí)間內(nèi)的數(shù)據(jù)發(fā)送量和允許的最大數(shù)據(jù)發(fā)送量,其中,單位時(shí)間為發(fā)送當(dāng)前視頻幀時(shí)的單位時(shí)間。
如果比較出服務(wù)器在單位時(shí)間內(nèi)的數(shù)據(jù)發(fā)送量小于允許的最大數(shù)據(jù)發(fā)送量,那么表明網(wǎng)絡(luò)的傳輸速度增大了,此時(shí)可以將當(dāng)前視頻幀的碼率增大目標(biāo)預(yù)設(shè)碼率,并將增大之后的當(dāng)前視頻幀的碼率作為下一視頻幀的碼率。例如,當(dāng)前視頻幀的碼率為VB,目標(biāo)預(yù)設(shè)碼率為384,那么將VB+384作為下一視頻幀的碼率。
如果比較出服務(wù)器在單位時(shí)間內(nèi)的數(shù)據(jù)發(fā)送量大于允許的最大數(shù)據(jù)發(fā)送量,那么表明網(wǎng)絡(luò)的傳輸速度減小了,此時(shí)可以將當(dāng)前視頻幀的碼率減小目標(biāo)預(yù)設(shè)碼率,并將減小之后的當(dāng)前視頻幀的碼率作為下一視頻幀的碼率。例如,當(dāng)前視頻幀的碼率為VB,目標(biāo)預(yù)設(shè)碼率為384,那么將VB-384作為下一視頻幀的碼率。
可選地,裝置還包括:判斷單元,用于在確定與當(dāng)前視頻幀的碼率所處的目標(biāo)碼率區(qū)間對(duì)應(yīng)的目標(biāo)預(yù)設(shè)碼率之后,判斷當(dāng)前視頻幀的碼率所處的目標(biāo)碼率區(qū)間是否為最小碼率區(qū)間,其中,最小碼率區(qū)間為預(yù)先配置的多個(gè)碼率區(qū)間中邊界值最小的碼率區(qū)間,多個(gè)碼率區(qū)間包括目標(biāo)碼率區(qū)間;指示模塊,用于在判斷出目標(biāo)碼率區(qū)間為最小碼率區(qū)間的情況下,指示服務(wù)器停止傳輸直播數(shù)據(jù)的視頻數(shù)據(jù),其中,服務(wù)器用于傳輸直播數(shù)據(jù)。
在本發(fā)明的另一個(gè)可選實(shí)施方式中,在確定與當(dāng)前視頻幀的碼率所處的目標(biāo)碼率區(qū)間對(duì)應(yīng)的目標(biāo)預(yù)設(shè)碼率之后,還可以判斷當(dāng)前視頻幀的碼率所處的目標(biāo)碼率區(qū)間是否為最小碼率區(qū)間,其中,最小碼率區(qū)間為預(yù)先配置的多個(gè)碼率區(qū)間中邊界值最小的碼率區(qū)間,多個(gè)碼率區(qū)間包括目標(biāo)碼率區(qū)間,其中,如果判斷出目標(biāo)碼率區(qū)間為最小碼率區(qū)間,則指示服務(wù)器停止傳輸直播數(shù)據(jù)的視頻數(shù)據(jù),其中,服務(wù)器用于傳輸直播數(shù)據(jù)。
通過上述描述可知,如果預(yù)先配置的多個(gè)碼率區(qū)間為:[a,b]、[b,c]和[c,d],并且a、b和c滿足下述關(guān)系:a<b<c,那么即可確定碼率區(qū)間[a,b]即為預(yù)先配置的多個(gè)碼率區(qū)間中的最小碼率區(qū)間,其中,最小碼率區(qū)間的邊界值在多個(gè)碼率區(qū)間的多個(gè)邊界值中最小。
如果判斷出當(dāng)前視頻幀的碼率處于最小碼率區(qū)間,則表明當(dāng)前視頻幀的傳送速度最低。此時(shí),無需再增大當(dāng)前視頻幀的碼率或者減小當(dāng)前視頻幀的碼率,終端可以向服務(wù)器發(fā)送指示信息,用于指示服務(wù)器停止傳輸直播數(shù)據(jù)中的視頻數(shù)據(jù),但是可以繼續(xù)傳輸直播數(shù)據(jù)中的音頻數(shù)據(jù)。此時(shí),就可以在終端的顯示器中顯示靜態(tài)畫面,同時(shí)播放聲音。
假設(shè),多個(gè)碼率區(qū)間為:(-∞,32]、[32,128]、[128,512]、[512,1152]和[1152,+∞],其中,碼率區(qū)間(-∞,32]即為多個(gè)碼率區(qū)間的最小碼率區(qū)間;當(dāng)前視頻幀的碼率為20kbps。通過確定可知,當(dāng)前視頻幀的碼率所處的目標(biāo)碼率區(qū)間為碼率區(qū)間(-∞,32],此時(shí),終端可以向服務(wù)器發(fā)送指示信息,以指示服務(wù)器停止向終端傳輸直播數(shù)據(jù)的視頻數(shù)據(jù),但是繼續(xù)傳輸直播數(shù)據(jù)的音頻數(shù)據(jù)。
可選地,獲取單元包括:第一獲取模塊,用于獲取服務(wù)器發(fā)送的用于指示第一網(wǎng)絡(luò)傳輸速度的第一指示信息;或者,第二獲取模塊,用于根據(jù)單位時(shí)間內(nèi)從服務(wù)器接收到的數(shù)據(jù)接收量獲取第一網(wǎng)絡(luò)傳輸速度;獲取單元包括:第三獲取模塊,用于獲取服務(wù)器發(fā)送的用于指示第二網(wǎng)絡(luò)傳輸速度的第二指示信息。
具體地,終端可以通過獲取服務(wù)器發(fā)送的第一指示信息來獲取第一網(wǎng)絡(luò)傳輸速度;終端也可以通過獲取發(fā)送的第二指示信息來獲取第二網(wǎng)絡(luò)傳輸速度。進(jìn)一步地,終端還可以確定單位時(shí)間內(nèi)從服務(wù)器接收到的數(shù)據(jù)量,進(jìn)而,根據(jù)接收到的數(shù)據(jù)量確定第一網(wǎng)絡(luò)傳輸速度。
實(shí)施例3
根據(jù)本發(fā)明實(shí)施例,還提供了一種用于實(shí)施上述信息的碼率的調(diào)整方法的終端。
圖4是根據(jù)本發(fā)明實(shí)施例的一種終端的結(jié)構(gòu)框圖,如圖所示,該終端可以包括:一個(gè)或多個(gè)(圖中僅示出一個(gè))處理器401、存儲(chǔ)器403、以及傳輸裝置405,如圖4所示,該終端還可以包括輸入輸出設(shè)備407。
其中,存儲(chǔ)器403可用于存儲(chǔ)軟件程序以及模塊,如本發(fā)明實(shí)施例中的彈幕的顯示方法和裝置對(duì)應(yīng)的程序指令/模塊,處理器401通過運(yùn)行存儲(chǔ)在存儲(chǔ)器403內(nèi)的軟件程序以及模塊,從而執(zhí)行各種功能應(yīng)用以及數(shù)據(jù)處理,即實(shí)現(xiàn)上述的碼率的調(diào)整方法。存儲(chǔ)器403可包括高速隨機(jī)存儲(chǔ)器,還可以包括非易失性存儲(chǔ)器,如一個(gè)或者多個(gè)磁性存儲(chǔ)裝置、閃存、或者其他非易失性固態(tài)存儲(chǔ)器。在一些實(shí)例中,存儲(chǔ)器403可進(jìn)一步包括相對(duì)于處理器401遠(yuǎn)程設(shè)置的存儲(chǔ)器,這些遠(yuǎn)程存儲(chǔ)器可以通過網(wǎng)絡(luò)連接至終端。上述網(wǎng)絡(luò)的實(shí)例包括但不限于互聯(lián)網(wǎng)、企業(yè)內(nèi)部網(wǎng)、局域網(wǎng)、移動(dòng)通信網(wǎng)及其組合。
上述的傳輸裝置405用于經(jīng)由一個(gè)網(wǎng)絡(luò)接收或者發(fā)送數(shù)據(jù),還可以用于處理器與存儲(chǔ)器之間的數(shù)據(jù)傳輸。上述的網(wǎng)絡(luò)具體實(shí)例可包括有線網(wǎng)絡(luò)及無線網(wǎng)絡(luò)。在一個(gè)實(shí)例中,傳輸裝置405包括一個(gè)網(wǎng)絡(luò)適配器(Network Interface Controller,NIC),其可通過網(wǎng)線與其他網(wǎng)絡(luò)設(shè)備與路由器相連從而可與互聯(lián)網(wǎng)或局域網(wǎng)進(jìn)行通訊。在一個(gè)實(shí)例中,傳輸裝置405為射頻(Radio Frequency,RF)模塊,其用于通過無線方式與互聯(lián)網(wǎng)進(jìn)行通訊。
其中,具體地,存儲(chǔ)器403用于存儲(chǔ)應(yīng)用程序。
處理器401可以通過傳輸裝置405調(diào)用存儲(chǔ)器403存儲(chǔ)的應(yīng)用程序,以執(zhí)行下述步驟:
獲取第一網(wǎng)絡(luò)傳輸速度和第二網(wǎng)絡(luò)傳輸速度,其中,所述第一網(wǎng)絡(luò)傳輸速度為服務(wù)器傳輸直播數(shù)據(jù)的當(dāng)前視頻幀時(shí)單位時(shí)間內(nèi)的數(shù)據(jù)發(fā)送量,所述第二網(wǎng)絡(luò)傳輸速度為所述服務(wù)器在所述單位時(shí)間內(nèi)所允許的最大數(shù)據(jù)發(fā)送量;確定與所述當(dāng)前視頻幀的碼率所處的目標(biāo)碼率區(qū)間對(duì)應(yīng)的目標(biāo)預(yù)設(shè)碼率;根據(jù)所述目標(biāo)預(yù)設(shè)碼率、所述第一網(wǎng)絡(luò)傳輸速度和所述第二網(wǎng)絡(luò)傳輸速度調(diào)整所述直播數(shù)據(jù)的目標(biāo)視頻幀的碼率,其中,所述目標(biāo)視頻幀為所述當(dāng)前視頻幀的下一視頻幀。
處理器401還用于執(zhí)行下述步驟:比較所述第一網(wǎng)絡(luò)傳輸速度與所述第二網(wǎng)絡(luò)傳輸速度的大??;若比較出所述第一網(wǎng)絡(luò)傳輸速度小于所述第二網(wǎng)絡(luò)傳輸速度,則將所述當(dāng)前視頻幀的碼率增大所述目標(biāo)預(yù)設(shè)碼率,得到所述目標(biāo)視頻幀的碼率;若比較出所述第一網(wǎng)絡(luò)傳輸速度大于所述第二網(wǎng)絡(luò)傳輸速度,則將所述當(dāng)前視頻幀的碼率減少所述目標(biāo)預(yù)設(shè)碼率,得到所述目標(biāo)視頻幀的碼率。
處理器401還用于執(zhí)行下述步驟:在確定與所述當(dāng)前視頻幀的碼率所處的目標(biāo)碼率區(qū)間對(duì)應(yīng)的目標(biāo)預(yù)設(shè)碼率之后,判斷所述當(dāng)前視頻幀的碼率所處的目標(biāo)碼率區(qū)間是否為最小碼率區(qū)間,其中,所述最小碼率區(qū)間為預(yù)先配置的多個(gè)碼率區(qū)間中邊界值最小的碼率區(qū)間,所述多個(gè)碼率區(qū)間包括所述目標(biāo)碼率區(qū)間;如果判斷出所述目標(biāo)碼率區(qū)間為所述最小碼率區(qū)間,則指示服務(wù)器停止傳輸所述直播數(shù)據(jù)的視頻數(shù)據(jù),其中,所述服務(wù)器用于傳輸所述直播數(shù)據(jù)。
處理器401還用于執(zhí)行下述步驟:獲取服務(wù)器發(fā)送的用于指示所述第一網(wǎng)絡(luò)傳輸速度的第一指示信息;或者,根據(jù)所述單位時(shí)間內(nèi)從所述服務(wù)器接收到的數(shù)據(jù)接收量確定所述第一網(wǎng)絡(luò)傳輸速度;獲取所述服務(wù)器發(fā)送的用于指示所述第二網(wǎng)絡(luò)傳輸速度的第二指示信息。
處理器401還用于執(zhí)行下述步驟:在確定所述直播數(shù)據(jù)的所述當(dāng)前視頻幀的碼率所處的目標(biāo)碼率區(qū)間之前,配置多個(gè)碼率區(qū)間與多個(gè)預(yù)設(shè)碼率之間的對(duì)應(yīng)關(guān)系,其中,每個(gè)所述碼率區(qū)間對(duì)應(yīng)一個(gè)所述預(yù)設(shè)碼率,所述多個(gè)碼率區(qū)間包括所述目標(biāo)碼率區(qū)間,所述多個(gè)預(yù)設(shè)碼率包括所述目標(biāo)預(yù)設(shè)碼率,所述碼率區(qū)間的邊界值越大,對(duì)應(yīng)的所述預(yù)設(shè)碼率越大。
可選地,本實(shí)施例中的具體示例可以參考上述實(shí)施例1和實(shí)施例2中所描述的示例,本實(shí)施例在此不再贅述。
實(shí)施例4
本發(fā)明的實(shí)施例還提供了一種存儲(chǔ)介質(zhì)??蛇x地,在本實(shí)施例中,上述存儲(chǔ)介質(zhì)可以用于存儲(chǔ)本發(fā)明實(shí)施例的碼率的調(diào)整方法的程序代碼。
可選地,在本實(shí)施例中,上述存儲(chǔ)介質(zhì)可以位于移動(dòng)通信網(wǎng)絡(luò)、廣域網(wǎng)、城域網(wǎng)或局域網(wǎng)的網(wǎng)絡(luò)中的多個(gè)網(wǎng)絡(luò)設(shè)備中的至少一個(gè)網(wǎng)絡(luò)設(shè)備。
可選地,在本實(shí)施例中,存儲(chǔ)介質(zhì)被設(shè)置為存儲(chǔ)用于執(zhí)行以下步驟的程序代碼:
S1,獲取第一網(wǎng)絡(luò)傳輸速度和第二網(wǎng)絡(luò)傳輸速度,其中,所述第一網(wǎng)絡(luò)傳輸速度為服務(wù)器傳輸直播數(shù)據(jù)的當(dāng)前視頻幀時(shí)單位時(shí)間內(nèi)的數(shù)據(jù)發(fā)送量,所述第二網(wǎng)絡(luò)傳輸速度為所述服務(wù)器在所述單位時(shí)間內(nèi)所允許的最大數(shù)據(jù)發(fā)送量;
S2,確定與所述當(dāng)前視頻幀的碼率所處的目標(biāo)碼率區(qū)間對(duì)應(yīng)的目標(biāo)預(yù)設(shè)碼率;
S3,根據(jù)所述目標(biāo)預(yù)設(shè)碼率、所述第一網(wǎng)絡(luò)傳輸速度和所述第二網(wǎng)絡(luò)傳輸速度調(diào)整所述直播數(shù)據(jù)的目標(biāo)視頻幀的碼率,其中,所述目標(biāo)視頻幀為所述當(dāng)前視頻幀的下一視頻幀。
可選地,在本實(shí)施例中,上述存儲(chǔ)介質(zhì)可以包括但不限于:U盤、只讀存儲(chǔ)器(ROM,Read-Only Memory)、隨機(jī)存取存儲(chǔ)器(RAM,Random Access Memory)、移動(dòng)硬盤、磁碟或者光盤等各種可以存儲(chǔ)程序代碼的介質(zhì)。
可選地,本實(shí)施例中的具體示例可以參考上述實(shí)施例1和實(shí)施例2中所描述的示例,本實(shí)施例在此不再贅述。
上述本發(fā)明實(shí)施例序號(hào)僅僅為了描述,不代表實(shí)施例的優(yōu)劣。
上述實(shí)施例中的集成的單元如果以軟件功能單元的形式實(shí)現(xiàn)并作為獨(dú)立的產(chǎn)品銷售或使用時(shí),可以存儲(chǔ)在上述計(jì)算機(jī)可讀取的存儲(chǔ)介質(zhì)中。基于這樣的理解,本發(fā)明的技術(shù)方案本質(zhì)上或者說對(duì)現(xiàn)有技術(shù)做出貢獻(xiàn)的部分或者該技術(shù)方案的全部或部分可以以軟件產(chǎn)品的形式體現(xiàn)出來,該計(jì)算機(jī)軟件產(chǎn)品存儲(chǔ)在存儲(chǔ)介質(zhì)中,包括若干指令用以使得一臺(tái)或多臺(tái)計(jì)算機(jī)設(shè)備(可為個(gè)人計(jì)算機(jī)、服務(wù)器或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行本發(fā)明各個(gè)實(shí)施例所述方法的全部或部分步驟。
在本發(fā)明的上述實(shí)施例中,對(duì)各個(gè)實(shí)施例的描述都各有側(cè)重,某個(gè)實(shí)施例中沒有詳述的部分,可以參見其他實(shí)施例的相關(guān)描述。
在本申請(qǐng)所提供的幾個(gè)實(shí)施例中,應(yīng)該理解到,所揭露的客戶端,可通過其它的方式實(shí)現(xiàn)。其中,以上所描述的裝置實(shí)施例僅僅是示意性的,例如所述單元的劃分,僅僅為一種邏輯功能劃分,實(shí)際實(shí)現(xiàn)時(shí)可以有另外的劃分方式,例如多個(gè)單元或組件可以結(jié)合或者可以集成到另一個(gè)系統(tǒng),或一些特征可以忽略,或不執(zhí)行。另一點(diǎn),所顯示或討論的相互之間的耦合或直接耦合或通信連接可以是通過一些接口,單元或模塊的間接耦合或通信連接,可以是電性或其它的形式。
所述作為分離部件說明的單元可以是或者也可以不是物理上分開的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位于一個(gè)地方,或者也可以分布到多個(gè)網(wǎng)絡(luò)單元上??梢愿鶕?jù)實(shí)際的需要選擇其中的部分或者全部單元來實(shí)現(xiàn)本實(shí)施例方案的目的。
另外,在本發(fā)明各個(gè)實(shí)施例中的各功能單元可以集成在一個(gè)處理單元中,也可以是各個(gè)單元單獨(dú)物理存在,也可以兩個(gè)或兩個(gè)以上單元集成在一個(gè)單元中。上述集成的單元既可以采用硬件的形式實(shí)現(xiàn),也可以采用軟件功能單元的形式實(shí)現(xiàn)。
以上所述僅是本發(fā)明的優(yōu)選實(shí)施方式,應(yīng)當(dāng)指出,對(duì)于本技術(shù)領(lǐng)域的普通技術(shù)人員來說,在不脫離本發(fā)明原理的前提下,還可以做出若干改進(jìn)和潤(rùn)飾,這些改進(jìn)和潤(rùn)飾也應(yīng)視為本發(fā)明的保護(hù)范圍。