專利名稱:調(diào)整流媒體碼率的方法和裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及通信領(lǐng)域,尤其涉及一種調(diào)整流媒體碼率的方法和裝置。
背景技術(shù):
現(xiàn)的音視頻流媒體業(yè)務(wù)傳輸時(shí)采用多碼率技術(shù)為,將同一業(yè)務(wù)內(nèi)容設(shè)置在不同碼
率的音視頻軌上,由流媒體服務(wù)器根據(jù)用戶實(shí)時(shí)帶寬,動(dòng)態(tài)選擇不同碼率的音視頻軌傳輸
流媒體。當(dāng)用戶的可用帶寬過(guò)低,就選擇低碼率流媒體傳輸,避免傳輸丟包,保證用戶能流
暢播放;當(dāng)用戶的可用帶寬升高,就選擇高碼率流媒體傳輸,提高用戶的音視頻體驗(yàn)。
而現(xiàn)有如何能夠根據(jù)帶寬的實(shí)際情況實(shí)時(shí)調(diào)整流媒體碼率至少有兩種第一種由
用戶端統(tǒng)計(jì)一段時(shí)間內(nèi)流媒體服務(wù)器與用戶端傳輸過(guò)程中的丟包數(shù),定時(shí)上報(bào)給流媒體服
務(wù)器;流媒體服務(wù)器通過(guò)用戶端最近的丟包數(shù),間接地獲得網(wǎng)絡(luò)傳輸質(zhì)量,動(dòng)態(tài)調(diào)整流媒體
碼率;當(dāng)用戶端連續(xù)丟包時(shí),選擇低碼率傳輸,當(dāng)用戶端連續(xù)沒(méi)有丟包時(shí),選擇高碼率傳輸。
第二種解決方式由流媒體服務(wù)器測(cè)量并計(jì)算自身與用戶端之間的帶寬狀況,根據(jù)計(jì)算結(jié)
果,再選擇適合的碼率傳輸數(shù)據(jù),然后根據(jù)網(wǎng)絡(luò)傳輸質(zhì)量,動(dòng)態(tài)調(diào)整傳輸碼率。 在實(shí)現(xiàn)上述實(shí)時(shí)調(diào)整流媒體碼率的過(guò)程中,發(fā)明人發(fā)現(xiàn)現(xiàn)有技術(shù)中需要用戶端返
回丟包數(shù)或需要依靠大量、復(fù)雜、長(zhǎng)時(shí)間的運(yùn)算,從而導(dǎo)致時(shí)效性差。
發(fā)明內(nèi)容
本發(fā)明的實(shí)施例提供一種調(diào)整流媒體碼率的方法和裝置,能夠高時(shí)效地根據(jù)帶寬 的實(shí)際情況實(shí)時(shí)調(diào)整流媒體碼率。 為達(dá)到上述目的,本發(fā)明的實(shí)施例采用如下技術(shù)方案 —種調(diào)整流媒體碼率的方法,包括 周期性查詢發(fā)送緩沖區(qū)的數(shù)據(jù)量; 根據(jù)發(fā)送緩沖區(qū)的數(shù)據(jù)量變化切換視頻軌的碼率。
—種調(diào)整流媒體碼率的裝置,包括 查詢模塊用于周期性查詢發(fā)送緩沖區(qū)的數(shù)據(jù)量; 碼率選擇模塊用于根據(jù)發(fā)送緩沖區(qū)的數(shù)據(jù)量變化切換視頻軌的碼率。 本發(fā)明實(shí)施例提供的調(diào)整流媒體碼率的方法、裝置,通過(guò)監(jiān)控服務(wù)器發(fā)送緩沖區(qū)
的數(shù)據(jù)量的變化情況,間接判斷網(wǎng)絡(luò)帶寬狀況,調(diào)整流媒體碼率,無(wú)需等待用戶端返回丟包
數(shù),也無(wú)需大量計(jì)算,能夠保證調(diào)整流媒體碼率的時(shí)效性。
為了更清楚地說(shuō)明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對(duì)實(shí)施例或現(xiàn) 有技術(shù)描述中所需要使用的附圖作簡(jiǎn)單地介紹,顯而易見(jiàn)地,下面描述中的附圖僅僅是本 發(fā)明的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來(lái)講,在不付出創(chuàng)造性勞動(dòng)性的前提下,還可 以根據(jù)這些附圖獲得其他的附圖。
圖1為本發(fā)明調(diào)整流媒體碼率方法的一個(gè)實(shí)施例的流程圖; 圖2為本發(fā)明調(diào)整流媒體碼率方法的另一個(gè)實(shí)施例的流程圖; 圖3為本發(fā)明調(diào)整流媒體碼率方法的又一個(gè)方法實(shí)施例的流程圖; 圖4為本發(fā)明調(diào)整流媒體碼率方法的再一個(gè)方法實(shí)施例的流程圖; 圖5為本發(fā)明裝置實(shí)施例的一種實(shí)現(xiàn)方式結(jié)構(gòu)圖; 圖6為本發(fā)明裝置實(shí)施例的另一種實(shí)現(xiàn)方式結(jié)構(gòu)圖; 圖7為本發(fā)明裝置實(shí)施例的又一種實(shí)現(xiàn)方式結(jié)構(gòu)圖。
具體實(shí)施例方式
下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完 整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例?;?本發(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒(méi)有作出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他 實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。 下面結(jié)合附圖對(duì)本發(fā)明實(shí)施例調(diào)整流媒體碼率的方法、裝置進(jìn)行詳細(xì)描述。
本發(fā)明調(diào)整流媒體碼率方法的一個(gè)實(shí)施例如圖1所示,包括
S101、周期性查詢發(fā)送緩沖區(qū)的數(shù)據(jù)量。 當(dāng)客戶端和服務(wù)器建立連接后,開(kāi)始傳送數(shù)據(jù)。具體的,服務(wù)器先將要發(fā)送的數(shù)據(jù) 寫(xiě)入網(wǎng)絡(luò)層的發(fā)送緩沖區(qū),然后按照TCP傳輸協(xié)議由服務(wù)器向客戶端傳輸。服務(wù)器以固定 速率向發(fā)送緩沖區(qū)寫(xiě)入數(shù)據(jù),然后服務(wù)器周期性查詢發(fā)送緩沖區(qū)內(nèi)還沒(méi)來(lái)得及發(fā)送的數(shù)據(jù) 量。所述查詢操作可以通過(guò)UNIX操作系統(tǒng)本身提供的接口函數(shù)進(jìn)行查詢;也可以考慮修改 服務(wù)器端的TCP協(xié)議棧,增加一個(gè)查詢協(xié)議棧緩存區(qū)的接口 ,應(yīng)用程序通過(guò)該接口就能夠 向指定的TCP協(xié)議棧發(fā)出緩存區(qū)的查詢指令,TCP協(xié)議棧收到應(yīng)用程序發(fā)出的查詢指令后, 返回發(fā)送緩存區(qū)的數(shù)據(jù)量。 S102、根據(jù)發(fā)送緩沖區(qū)的數(shù)據(jù)量變化趨勢(shì),切換視頻軌的碼率,改變向發(fā)送緩存區(qū) 寫(xiě)入數(shù)據(jù)的速率。 發(fā)送緩沖區(qū)的數(shù)據(jù)量是寫(xiě)入數(shù)據(jù)(服務(wù)器發(fā)送給發(fā)送緩沖區(qū)的數(shù)據(jù))減讀出數(shù)據(jù) (發(fā)送緩沖區(qū)向客戶端發(fā)送數(shù)據(jù))之差。由于發(fā)送緩沖區(qū)的寫(xiě)入數(shù)據(jù)的速率是固定的,如果 發(fā)送緩沖區(qū)的數(shù)據(jù)量增大,說(shuō)明發(fā)送緩沖區(qū)的讀出數(shù)據(jù)速率下降了,也就是說(shuō)網(wǎng)絡(luò)側(cè)與客 戶端之間的網(wǎng)絡(luò)通信不暢,這時(shí)就要調(diào)低發(fā)送數(shù)據(jù)的碼率,以適應(yīng)較低的通信帶寬;如果發(fā) 送緩沖區(qū)的數(shù)據(jù)量減小,說(shuō)明發(fā)送緩沖區(qū)的讀出數(shù)據(jù)速率上升了,也就是說(shuō)服務(wù)器與客戶 端之間的網(wǎng)絡(luò)通信順暢,這時(shí)就要調(diào)高發(fā)送數(shù)據(jù)的碼率,以充分利用較高的通信帶寬。
發(fā)送緩存區(qū)的數(shù)據(jù)量,一定程度上反映了當(dāng)前網(wǎng)絡(luò)傳輸帶寬大小,服務(wù)器通過(guò)監(jiān) 控發(fā)送緩存區(qū)的數(shù)據(jù)量,就可以判斷網(wǎng)絡(luò)傳輸?shù)目捎脦挘M(jìn)一步判斷當(dāng)前播放文件碼率 和網(wǎng)絡(luò)帶寬的匹配情況,如果有必要,可以馬上調(diào)整文件的碼率。這種調(diào)整具有很好的實(shí)時(shí) 性,服務(wù)器可以在發(fā)送端緩存區(qū)在發(fā)生上溢或者下溢之前,提前調(diào)整,避免發(fā)送緩存區(qū)的溢 出丟包。 本發(fā)明調(diào)整流媒體碼率方法的另一個(gè)實(shí)施例如圖2所示,與第一個(gè)實(shí)施例的區(qū)別 主要在于,將發(fā)送緩沖區(qū)按照數(shù)據(jù)量大小明確劃分成三個(gè)區(qū)危險(xiǎn)區(qū)、中間區(qū)和安全區(qū)。危 險(xiǎn)區(qū)代表發(fā)送緩沖區(qū)中數(shù)據(jù)量較多,有上溢(發(fā)送緩沖區(qū)中數(shù)據(jù)量超過(guò)發(fā)送緩沖區(qū)的最大容量造成數(shù)據(jù)丟失)的危險(xiǎn);安全區(qū)代表發(fā)送緩沖區(qū)中數(shù)據(jù)量較少,有下溢(發(fā)送緩沖區(qū)中 數(shù)據(jù)量枯竭,造成數(shù)據(jù)傳輸中斷)的問(wèn)題。中間區(qū)介于危險(xiǎn)區(qū)和安全區(qū)之間,代表發(fā)送緩沖 區(qū)中數(shù)據(jù)量處于適宜水平。
本實(shí)施例包括 S201 、流媒體服務(wù)器以恒定速率向發(fā)送緩沖區(qū)寫(xiě)入數(shù)據(jù)。 客戶端和流媒體服務(wù)器建立TCP連接成功后,流媒體服務(wù)器開(kāi)始不斷地從磁盤(pán)上 讀取媒體文件,或者接收直播的組播流數(shù)據(jù)。流媒體服務(wù)器將讀取的數(shù)據(jù)按照一定的格式 進(jìn)行打包,并按照恒定的速率寫(xiě)入到發(fā)送緩存區(qū)。 S202、發(fā)送緩沖區(qū)在TCP協(xié)議的擁塞控制機(jī)制下向網(wǎng)絡(luò)發(fā)送數(shù)據(jù)。 通過(guò)TCP協(xié)議的擁塞控制機(jī)制,服務(wù)器協(xié)議??刂瓢l(fā)送緩沖區(qū)向客戶端發(fā)送數(shù)據(jù)
的速率。TCP傳輸協(xié)議具有滑動(dòng)窗口的特性,發(fā)送方(服務(wù)器)根據(jù)傳輸?shù)膩G包事件,探測(cè)
傳輸路徑上的擁塞,從而動(dòng)態(tài)的調(diào)整數(shù)據(jù)的發(fā)送速率,實(shí)現(xiàn)TCP擁塞控制的功能。通過(guò)流量
控制機(jī)制,服務(wù)器協(xié)議棧獲得客戶端的空閑緩存區(qū)的大小,決定向網(wǎng)絡(luò)發(fā)送數(shù)據(jù)的數(shù)據(jù)量。
所謂流量控制機(jī)制是指接收方(客戶端)通過(guò)應(yīng)答ACK消息的wingdow size字段,報(bào)告
當(dāng)前接收緩存區(qū)的大小,發(fā)送方根據(jù)接收方緩存區(qū)的大小和自身發(fā)送緩存區(qū)的大小,動(dòng)態(tài)
調(diào)整發(fā)送數(shù)據(jù)量,實(shí)現(xiàn)TCP流量控制的功能。因此服務(wù)器的協(xié)議??刂屏藬?shù)據(jù)發(fā)送的速率
和數(shù)量,以符合當(dāng)前網(wǎng)絡(luò)傳輸?shù)膸挕?S203、周期性查詢發(fā)送緩沖區(qū)的數(shù)據(jù)量。 由于發(fā)送緩存區(qū)的寫(xiě)入速率由當(dāng)前播放文件的碼率決定,而讀出速率由當(dāng)前網(wǎng)絡(luò) 帶寬決定,因此緩存區(qū)里的數(shù)據(jù)量實(shí)時(shí)在變化,變化的情況也反映了當(dāng)前網(wǎng)絡(luò)的帶寬。
S204、如果發(fā)送緩沖區(qū)的數(shù)據(jù)量增大到危險(xiǎn)區(qū),向下切換視頻軌的碼率,降低向所 述發(fā)送緩沖區(qū)寫(xiě)入數(shù)據(jù)的速率。 S205、如果發(fā)送緩沖區(qū)的數(shù)據(jù)量減少到安全區(qū),向上切換視頻軌的碼率,提高向所 述發(fā)送緩沖區(qū)寫(xiě)入數(shù)據(jù)的速率。 本發(fā)明調(diào)整流媒體碼率方法的又一個(gè)實(shí)施例如圖3所示,本實(shí)施例為將發(fā)送緩 沖區(qū)按數(shù)據(jù)量從大到小分為五個(gè)檔次高危區(qū)、中高區(qū)、正常區(qū)、中低區(qū)、低危區(qū)。具體包 括 S301 、流媒體服務(wù)器以恒定速率向發(fā)送緩沖區(qū)寫(xiě)入數(shù)據(jù)。 S302、發(fā)送緩沖區(qū)在TCP協(xié)議的擁塞控制機(jī)制下向網(wǎng)絡(luò)發(fā)送數(shù)據(jù)。 S303、周期性查詢發(fā)送緩沖區(qū)的數(shù)據(jù)量。 S304、將發(fā)送緩沖區(qū)按數(shù)據(jù)量從大到小分為五個(gè)檔次高危區(qū)、中高區(qū)、正常區(qū)、中 低區(qū)、低危區(qū)。 S305、如果發(fā)送緩沖區(qū)的數(shù)據(jù)量處于高危區(qū),將所選擇的視頻軌碼率向下調(diào)整兩 個(gè)檔次,降低向所述發(fā)送緩沖區(qū)寫(xiě)入數(shù)據(jù)的速率。 S306、如果發(fā)送緩沖區(qū)的數(shù)據(jù)量處于中高區(qū),將所選擇的視頻軌碼率向下調(diào)整一 個(gè)檔次,降低向所述發(fā)送緩沖區(qū)寫(xiě)入數(shù)據(jù)的速率。 S307、如果發(fā)送緩沖區(qū)的數(shù)據(jù)量處于正常區(qū),保持所選擇的視頻軌碼率,保持向所 述發(fā)送緩沖區(qū)寫(xiě)入數(shù)據(jù)的速率。 S308、如果發(fā)送緩沖區(qū)的數(shù)據(jù)量處于中低區(qū),將所選擇的視頻軌碼率向上調(diào)整一個(gè)檔次,提高向所述發(fā)送緩沖區(qū)寫(xiě)入數(shù)據(jù)的速率。 S309、如果發(fā)送緩沖區(qū)的數(shù)據(jù)量處于低危區(qū),將所選擇的視頻軌碼率向上調(diào)整兩 個(gè)檔次,提高向所述發(fā)送緩沖區(qū)寫(xiě)入數(shù)據(jù)的速率。本實(shí)施例中,步驟S301、 S302與S303、 S304之間不存在必然的先后順序。 本發(fā)明調(diào)整流媒體碼率方法的再一個(gè)實(shí)施例如圖4所示,本實(shí)施例場(chǎng)景與上一個(gè)
實(shí)施例相同。具體包括 S401 、流媒體服務(wù)器以恒定速率向發(fā)送緩沖區(qū)寫(xiě)入數(shù)據(jù)。 S402、發(fā)送緩沖區(qū)在TCP協(xié)議的擁塞控制機(jī)制下向網(wǎng)絡(luò)發(fā)送數(shù)據(jù)。 S403、周期性查詢發(fā)送緩沖區(qū)的數(shù)據(jù)量。 S404、將發(fā)送緩沖區(qū)按數(shù)據(jù)量從大到小分為五個(gè)檔次高危區(qū)、中高區(qū)、正常區(qū)、中 低區(qū)、低危區(qū)。 S405、如果發(fā)送緩沖區(qū)的數(shù)據(jù)量處于高危區(qū),將所選擇的視頻軌碼率向下調(diào)整到 最低碼率,降低向所述發(fā)送緩沖區(qū)寫(xiě)入數(shù)據(jù)的速率。 S406、如果發(fā)送緩沖區(qū)的數(shù)據(jù)量處于中高區(qū),將所選擇的視頻軌碼率向下調(diào)整一 個(gè)檔次,降低向所述發(fā)送緩沖區(qū)寫(xiě)入數(shù)據(jù)的速率。 S407、如果發(fā)送緩沖區(qū)的數(shù)據(jù)量處于正常區(qū),保持所選擇的視頻軌碼率,保持向所 述發(fā)送緩沖區(qū)寫(xiě)入數(shù)據(jù)的速率。 S408、如果發(fā)送緩沖區(qū)的數(shù)據(jù)量處于中低區(qū),將所選擇的視頻軌碼率向上調(diào)整一 個(gè)檔次,提高向所述發(fā)送緩沖區(qū)寫(xiě)入數(shù)據(jù)的速率。 S409、如果發(fā)送緩沖區(qū)的數(shù)據(jù)量處于低危區(qū),將所選擇的視頻軌碼率向上調(diào)整到 最高碼率,降低向所述發(fā)送緩沖區(qū)寫(xiě)入數(shù)據(jù)的速率。本實(shí)施例中,步驟S401、 S402與S403、 S404之間不存在必然的先后順序。
調(diào)整流媒體碼率方法的又一個(gè)實(shí)施例和再一個(gè)實(shí)施例中,推薦劃分緩存區(qū)五檔次 的四個(gè)閾值分別是80% (高危區(qū)與中高區(qū)之間),70% (中高區(qū)與正常區(qū)之間),30% (正 常區(qū)與中低區(qū)之間)和20% (中低區(qū)與低危區(qū)之間),也可以根據(jù)實(shí)際的情況,適當(dāng)調(diào)整閾 值的取值。 上述方法實(shí)施例利用TCP協(xié)議本身的流量控制和擁塞控制特性,可以解決流媒體 業(yè)務(wù)中碼率調(diào)整實(shí)時(shí)性的問(wèn)題。在流媒體業(yè)務(wù)中,當(dāng)客戶端和服務(wù)器建立連接,開(kāi)始傳輸數(shù) 據(jù),服務(wù)器根據(jù)當(dāng)前點(diǎn)播文件的碼率,以固定的速率向發(fā)送緩存區(qū)寫(xiě)入數(shù)據(jù);而TCP協(xié)議棧 利用流量控制機(jī)制和擁塞控制機(jī)制,實(shí)時(shí)計(jì)算并控制發(fā)送的速率,發(fā)送速率則根據(jù)網(wǎng)絡(luò)傳 輸?shù)膸挘瑢?shí)時(shí)變化。當(dāng)發(fā)送緩存區(qū)的寫(xiě)入速率大于讀出速率時(shí),發(fā)送緩存區(qū)的數(shù)據(jù)量將不 斷遞增,可用空間減少,說(shuō)明當(dāng)前播放的碼率大于網(wǎng)絡(luò)傳輸?shù)膸?,需要降低播放的碼率; 當(dāng)發(fā)送緩存區(qū)的寫(xiě)入速率小于讀出速率時(shí),發(fā)送緩存區(qū)的數(shù)據(jù)量少,可用空間大,說(shuō)明當(dāng)前 播放的碼率小于網(wǎng)絡(luò)傳輸?shù)膸?,可以適當(dāng)提高播放的碼率。 因此,服務(wù)器發(fā)送緩存區(qū)的數(shù)據(jù)量,一定程度上反映了當(dāng)前網(wǎng)絡(luò)傳輸帶寬大小,服 務(wù)器通過(guò)監(jiān)控發(fā)送緩存區(qū)的數(shù)據(jù)量,就可以判斷網(wǎng)絡(luò)傳輸?shù)目捎脦挘M(jìn)一步判斷當(dāng)前播 放文件碼率和網(wǎng)絡(luò)帶寬的匹配情況,如果有必要,可以馬上調(diào)整文件的碼率。這種調(diào)整具 有很好的實(shí)時(shí)性,服務(wù)器可以在發(fā)送端緩存區(qū)在發(fā)生上溢或者下溢之前,提前調(diào)整,避免發(fā) 送緩存區(qū)的溢出丟包;而TCP傳輸有可以保證網(wǎng)絡(luò)傳輸?shù)目煽啃裕虼诉@種發(fā)送緩存區(qū)的監(jiān)控方式和TCP傳輸方式可以保證服務(wù)器和客戶端之間傳輸?shù)目煽啃?,避免任何環(huán)節(jié)的丟 包。 上述方法實(shí)施例可以提高多碼率調(diào)整的有效性,多碼率文件一般都有多個(gè)不同的 碼率,而現(xiàn)有的技術(shù)方案中,每次只能向上或者向下調(diào)整一個(gè)碼率,不能一次有效地調(diào)整到 適當(dāng)?shù)拇a率。而方法實(shí)施例三和四的技術(shù)方案可以為發(fā)送緩存區(qū)設(shè)定一個(gè)刻度,根據(jù)當(dāng)前 發(fā)送緩存區(qū)數(shù)據(jù)量的大小,設(shè)置不同的碼率調(diào)整幅度,當(dāng)發(fā)送緩存區(qū)的數(shù)據(jù)量嚴(yán)重超標(biāo),可 以將播放文件的碼率向下調(diào)整多個(gè)檔次或者直接調(diào)到最低碼率;當(dāng)緩存區(qū)的數(shù)據(jù)量不足, 可以向上調(diào)整多個(gè)檔次或者直接調(diào)到最高碼率。這種根據(jù)緩存區(qū)的實(shí)際大小,改變碼率調(diào) 整幅度的方式,具有更好的實(shí)時(shí)性和有效性,不僅可以最大程度的避免丟包,還可以更好地 提升用戶的播放體驗(yàn)效果。 本技術(shù)方案還可以提升服務(wù)器的性能和效率,以及網(wǎng)絡(luò)傳輸?shù)男?。服?wù)器不用 接收和解析客戶端的RTCP消息,不用判斷客戶端上報(bào)的丟包數(shù)。服務(wù)器也不用利用其他協(xié) 議計(jì)算網(wǎng)絡(luò)帶寬,精簡(jiǎn)服務(wù)器的業(yè)務(wù)流程,減少了網(wǎng)絡(luò)傳輸數(shù)據(jù)的流量,提高了服務(wù)器的效 率和網(wǎng)絡(luò)傳輸?shù)男省?本發(fā)明裝置實(shí)施例如圖8所示,包括 查詢模塊1 :用于周期性查詢發(fā)送緩沖區(qū)的數(shù)據(jù)量; 碼率選擇模塊2 :用于根據(jù)發(fā)送緩沖區(qū)的數(shù)據(jù)量變化趨勢(shì),切換視頻軌的碼率,改 變向發(fā)送緩存區(qū)寫(xiě)入數(shù)據(jù)的速率。
作為本實(shí)施例的一種實(shí)現(xiàn)方式,如圖5所示,所述碼率選擇模塊2包括 第一碼率調(diào)整子模塊21 :如果發(fā)送緩沖區(qū)的數(shù)據(jù)量增大到危險(xiǎn)區(qū),向下切換視頻
軌的碼率,降低向所述發(fā)送緩沖區(qū)寫(xiě)入數(shù)據(jù)的速率; 如果發(fā)送緩沖區(qū)的數(shù)據(jù)量減少到安全區(qū),向上切換視頻軌的碼率,提高向所述發(fā) 送緩沖區(qū)寫(xiě)入數(shù)據(jù)的速率。 作為本實(shí)施例的另一種實(shí)現(xiàn)方式,如圖6所示,所述碼率選擇模塊2包括 第一分檔子模塊22 :用于將發(fā)送緩沖區(qū)按數(shù)據(jù)量從大到小分為五個(gè)檔次高危
區(qū)、中高區(qū)、正常區(qū)、中低區(qū)、低危區(qū); 第二碼率調(diào)整子模塊23 :如果發(fā)送緩沖區(qū)的數(shù)據(jù)量處于高危區(qū),將所選擇的視頻 軌碼率向下調(diào)整兩個(gè)檔次,降低向所述發(fā)送緩沖區(qū)寫(xiě)入數(shù)據(jù)的速率; 如果發(fā)送緩沖區(qū)的數(shù)據(jù)量處于中高區(qū),將所選擇的視頻軌碼率向下調(diào)整一個(gè)檔 次,降低向所述發(fā)送緩沖區(qū)寫(xiě)入數(shù)據(jù)的速率; 如果發(fā)送緩沖區(qū)的數(shù)據(jù)量處于正常區(qū),保持所選擇的視頻軌碼率,保持向所述發(fā) 送緩沖區(qū)寫(xiě)入數(shù)據(jù)的速率; 如果發(fā)送緩沖區(qū)的數(shù)據(jù)量處于中低區(qū),將所選擇的視頻軌碼率向上調(diào)整一個(gè)檔 次,提高向所述發(fā)送緩沖區(qū)寫(xiě)入數(shù)據(jù)的速率; 如果發(fā)送緩沖區(qū)的數(shù)據(jù)量處于低危區(qū),將所選擇的視頻軌碼率向上調(diào)整兩個(gè)檔 次,提高向所述發(fā)送緩沖區(qū)寫(xiě)入數(shù)據(jù)的速率。 作為本實(shí)施例的又一種實(shí)現(xiàn)方式,如圖7所示,所述碼率選擇模塊2包括 第二分檔子模塊24 :用于將發(fā)送緩沖區(qū)按數(shù)據(jù)量從大到小分為五個(gè)檔次高危
區(qū)、中高區(qū)、正常區(qū)、中低區(qū)、低危區(qū);
8
第三碼率調(diào)整子模塊25 :如果發(fā)送緩沖區(qū)的數(shù)據(jù)量處于高危區(qū),將所選擇的視頻 軌碼率向下調(diào)整到最低碼率,降低向所述發(fā)送緩沖區(qū)寫(xiě)入數(shù)據(jù)的速率; 如果發(fā)送緩沖區(qū)的數(shù)據(jù)量處于中高區(qū),將所選擇的視頻軌碼率向下調(diào)整一個(gè)檔 次,降低向所述發(fā)送緩沖區(qū)寫(xiě)入數(shù)據(jù)的速率; 如果發(fā)送緩沖區(qū)的數(shù)據(jù)量處于正常區(qū),保持所選擇的視頻軌碼率,保持向所述發(fā) 送緩沖區(qū)寫(xiě)入數(shù)據(jù)的速率; 如果發(fā)送緩沖區(qū)的數(shù)據(jù)量處于中低區(qū),將所選擇的視頻軌碼率向上調(diào)整一個(gè)檔 次,提高向所述發(fā)送緩沖區(qū)寫(xiě)入數(shù)據(jù)的速率; 如果發(fā)送緩沖區(qū)的數(shù)據(jù)量處于低危區(qū),將所選擇的視頻軌碼率向上調(diào)整到最高碼 率,降低向所述發(fā)送緩沖區(qū)寫(xiě)入數(shù)據(jù)的速率。 本裝置實(shí)施例可以解決多碼率調(diào)整的實(shí)時(shí)性的問(wèn)題,確保當(dāng)網(wǎng)絡(luò)帶寬變化,緩存 區(qū)溢出前先進(jìn)行碼率調(diào)整,改變向緩存區(qū)寫(xiě)入數(shù)據(jù)的速率,控制緩存區(qū)的數(shù)據(jù)量,避免溢出 丟包的發(fā)生,從而提高用戶音視頻播放的流暢性。 本裝置實(shí)施例可以提升多碼率調(diào)整的效率,實(shí)現(xiàn)高低多個(gè)碼率之間的直接切換, 提高多碼率切換的效率。也可以簡(jiǎn)化流媒體多碼率特性的實(shí)現(xiàn)方案,提升服務(wù)器的性能效 率,由于減少了不必要的數(shù)據(jù)傳輸,提升網(wǎng)絡(luò)傳輸?shù)男省?本裝置實(shí)施例的關(guān)鍵點(diǎn)是利用TCP流量控制機(jī)制和擁塞機(jī)制,這些機(jī)制控制了向 網(wǎng)絡(luò)發(fā)送數(shù)據(jù)的速率和數(shù)量,直接影響了發(fā)送緩存區(qū)的數(shù)據(jù)量。流媒體服務(wù)器通過(guò)實(shí)時(shí)查 詢發(fā)送緩存區(qū)的數(shù)據(jù)量,間接地獲得當(dāng)前網(wǎng)絡(luò)的帶寬情況,從而在緩存區(qū)溢出丟包之前,主 動(dòng)地將流媒體調(diào)整到適當(dāng)?shù)拇a率,避免丟包,提升用戶的體驗(yàn)效果。 本領(lǐng)域普通技術(shù)人員可以理解實(shí)現(xiàn)上述實(shí)施例方法中的全部或部分流程,是可以 通過(guò)計(jì)算機(jī)程序來(lái)指令相關(guān)的硬件來(lái)完成,所述的程序可存儲(chǔ)于一計(jì)算機(jī)可讀取存儲(chǔ)介質(zhì) 中,該程序在執(zhí)行時(shí),可包括如上述各方法的實(shí)施例的流程。其中,所述的存儲(chǔ)介質(zhì)可為磁 碟、光盤(pán)、只讀存儲(chǔ)記憶體(Read-Only Memory, ROM)或隨機(jī)存儲(chǔ)記憶體(Random Access Memory,廳)等。 以上所述,僅為本發(fā)明的具體實(shí)施方式
,但本發(fā)明的保護(hù)范圍并不局限于此,例 如,本發(fā)明的技術(shù)方案還可以應(yīng)用在IPTV業(yè)務(wù)和MTV業(yè)務(wù)當(dāng)中。任何熟悉本技術(shù)領(lǐng)域的技 術(shù)人員在本發(fā)明揭露的技術(shù)范圍內(nèi),可輕易想到變化或替換,都應(yīng)涵蓋在本發(fā)明的保護(hù)范 圍之內(nèi)。因此,本發(fā)明的保護(hù)范圍應(yīng)以權(quán)利要求的保護(hù)范圍為準(zhǔn)。
9
權(quán)利要求
一種調(diào)整流媒體碼率的方法,其特征在于,包括周期性查詢發(fā)送緩沖區(qū)的數(shù)據(jù)量;根據(jù)發(fā)送緩沖區(qū)的數(shù)據(jù)量變化切換視頻軌的碼率。
2. 根據(jù)權(quán)利要求1所述的方法,其特征在于,所述根據(jù)發(fā)送緩沖區(qū)的數(shù)據(jù)量變化切換 視頻軌的碼率的步驟具體為如果發(fā)送緩沖區(qū)的數(shù)據(jù)量增大到危險(xiǎn)區(qū),向下切換視頻軌的碼率; 如果發(fā)送緩沖區(qū)的數(shù)據(jù)量減少到安全區(qū),向上切換視頻軌的碼率。
3. 根據(jù)權(quán)利要求1所述的方法,其特征在于,所述根據(jù)發(fā)送緩沖區(qū)的數(shù)據(jù)量變化切換 視頻軌的碼率的步驟具體為將發(fā)送緩沖區(qū)按數(shù)據(jù)量從大到小分為五個(gè)檔次高危區(qū)、中高區(qū)、正常區(qū)、中低區(qū)、低危區(qū);如果發(fā)送緩沖區(qū)的數(shù)據(jù)量處于高危區(qū),將所選擇的視頻軌碼率向下調(diào)整兩個(gè)檔次,降 低向所述發(fā)送緩沖區(qū)寫(xiě)入數(shù)據(jù)的速率;如果發(fā)送緩沖區(qū)的數(shù)據(jù)量處于中高區(qū),將所選擇的視頻軌碼率向下調(diào)整一個(gè)檔次,降 低向所述發(fā)送緩沖區(qū)寫(xiě)入數(shù)據(jù)的速率;如果發(fā)送緩沖區(qū)的數(shù)據(jù)量處于正常區(qū),保持所選擇的視頻軌碼率,保持向所述發(fā)送緩 沖區(qū)寫(xiě)入數(shù)據(jù)的速率;如果發(fā)送緩沖區(qū)的數(shù)據(jù)量處于中低區(qū),將所選擇的視頻軌碼率向上調(diào)整一個(gè)檔次,提 高向所述發(fā)送緩沖區(qū)寫(xiě)入數(shù)據(jù)的速率;如果發(fā)送緩沖區(qū)的數(shù)據(jù)量處于低危區(qū),將所選擇的視頻軌碼率向上調(diào)整兩個(gè)檔次,提 高向所述發(fā)送緩沖區(qū)寫(xiě)入數(shù)據(jù)的速率。
4. 根據(jù)權(quán)利要求1所述的方法,其特征在于,所述根據(jù)發(fā)送緩沖區(qū)的數(shù)據(jù)量變化切換 視頻軌的碼率的步驟具體為將發(fā)送緩沖區(qū)按數(shù)據(jù)量從大到小分為五個(gè)檔次高危區(qū)、中高區(qū)、正常區(qū)、中低區(qū)、低危區(qū);如果發(fā)送緩沖區(qū)的數(shù)據(jù)量處于高危區(qū),將所選擇的視頻軌碼率向下調(diào)整到最低碼率, 降低向所述發(fā)送緩沖區(qū)寫(xiě)入數(shù)據(jù)的速率;如果發(fā)送緩沖區(qū)的數(shù)據(jù)量處于中高區(qū),將所選擇的視頻軌碼率向下調(diào)整一個(gè)檔次,降 低向所述發(fā)送緩沖區(qū)寫(xiě)入數(shù)據(jù)的速率;如果發(fā)送緩沖區(qū)的數(shù)據(jù)量處于正常區(qū),保持所選擇的視頻軌碼率,保持向所述發(fā)送緩 沖區(qū)寫(xiě)入數(shù)據(jù)的速率;如果發(fā)送緩沖區(qū)的數(shù)據(jù)量處于中低區(qū),將所選擇的視頻軌碼率向上調(diào)整一個(gè)檔次,提 高向所述發(fā)送緩沖區(qū)寫(xiě)入數(shù)據(jù)的速率;如果發(fā)送緩沖區(qū)的數(shù)據(jù)量處于低危區(qū),將所選擇的視頻軌碼率向上調(diào)整到最高碼率, 降低向所述發(fā)送緩沖區(qū)寫(xiě)入數(shù)據(jù)的速率。
5. —種調(diào)整流媒體碼率的裝置,其特征在于,包括 查詢模塊用于周期性查詢發(fā)送緩沖區(qū)的數(shù)據(jù)量;碼率選擇模塊用于根據(jù)發(fā)送緩沖區(qū)的數(shù)據(jù)量變化切換視頻軌的碼率。
6. 根據(jù)權(quán)利要求5所述的裝置,其特征在于,所述碼率選擇模塊包括第一碼率調(diào)整子模塊如果發(fā)送緩沖區(qū)的數(shù)據(jù)量增大到危險(xiǎn)區(qū),向下切換視頻軌的碼 率,降低向所述發(fā)送緩沖區(qū)寫(xiě)入數(shù)據(jù)的速率;如果發(fā)送緩沖區(qū)的數(shù)據(jù)量減少到安全區(qū),向上切換視頻軌的碼率,提高向所述發(fā)送緩 沖區(qū)寫(xiě)入數(shù)據(jù)的速率。
7. 根據(jù)權(quán)利要求5所述的裝置,其特征在于,所述碼率選擇模塊包括 第一分檔子模塊用于將發(fā)送緩沖區(qū)按數(shù)據(jù)量從大到小分為五個(gè)檔次高危區(qū)、中高區(qū)、正常區(qū)、中低區(qū)、低危區(qū);第二碼率調(diào)整子模塊如果發(fā)送緩沖區(qū)的數(shù)據(jù)量處于高危區(qū),將所選擇的視頻軌碼率 向下調(diào)整兩個(gè)檔次,降低向所述發(fā)送緩沖區(qū)寫(xiě)入數(shù)據(jù)的速率;如果發(fā)送緩沖區(qū)的數(shù)據(jù)量處于中高區(qū),將所選擇的視頻軌碼率向下調(diào)整一個(gè)檔次,降 低向所述發(fā)送緩沖區(qū)寫(xiě)入數(shù)據(jù)的速率;如果發(fā)送緩沖區(qū)的數(shù)據(jù)量處于正常區(qū),保持所選擇的視頻軌碼率,保持向所述發(fā)送緩 沖區(qū)寫(xiě)入數(shù)據(jù)的速率;如果發(fā)送緩沖區(qū)的數(shù)據(jù)量處于中低區(qū),將所選擇的視頻軌碼率向上調(diào)整一個(gè)檔次,提 高向所述發(fā)送緩沖區(qū)寫(xiě)入數(shù)據(jù)的速率;如果發(fā)送緩沖區(qū)的數(shù)據(jù)量處于低危區(qū),將所選擇的視頻軌碼率向上調(diào)整兩個(gè)檔次,提 高向所述發(fā)送緩沖區(qū)寫(xiě)入數(shù)據(jù)的速率。
8. 根據(jù)權(quán)利要求5所述的裝置,其特征在于,所述碼率選擇模塊包括 第二分檔子模塊用于將發(fā)送緩沖區(qū)按數(shù)據(jù)量從大到小分為五個(gè)檔次高危區(qū)、中高區(qū)、正常區(qū)、中低區(qū)、低危區(qū);第三碼率調(diào)整子模塊如果發(fā)送緩沖區(qū)的數(shù)據(jù)量處于高危區(qū),將所選擇的視頻軌碼率 向下調(diào)整到最低碼率,降低向所述發(fā)送緩沖區(qū)寫(xiě)入數(shù)據(jù)的速率;如果發(fā)送緩沖區(qū)的數(shù)據(jù)量處于中高區(qū),將所選擇的視頻軌碼率向下調(diào)整一個(gè)檔次,降 低向所述發(fā)送緩沖區(qū)寫(xiě)入數(shù)據(jù)的速率;如果發(fā)送緩沖區(qū)的數(shù)據(jù)量處于正常區(qū),保持所選擇的視頻軌碼率,保持向所述發(fā)送緩 沖區(qū)寫(xiě)入數(shù)據(jù)的速率;如果發(fā)送緩沖區(qū)的數(shù)據(jù)量處于中低區(qū),將所選擇的視頻軌碼率向上調(diào)整一個(gè)檔次,提 高向所述發(fā)送緩沖區(qū)寫(xiě)入數(shù)據(jù)的速率;如果發(fā)送緩沖區(qū)的數(shù)據(jù)量處于低危區(qū),將所選擇的視頻軌碼率向上調(diào)整到最高碼率, 降低向所述發(fā)送緩沖區(qū)寫(xiě)入數(shù)據(jù)的速率。
全文摘要
本發(fā)明公開(kāi)了一種調(diào)整流媒體碼率的方法和裝置,涉及通信領(lǐng)域,為解決現(xiàn)有技術(shù)實(shí)時(shí)調(diào)整流媒體碼率的過(guò)程時(shí)效性差的問(wèn)題而發(fā)明。本發(fā)明實(shí)施例提供的方法,包括如下步驟周期性查詢發(fā)送緩沖區(qū)的數(shù)據(jù)量;根據(jù)發(fā)送緩沖區(qū)的數(shù)據(jù)量變化切換視頻軌的碼率,從而改變向緩存區(qū)寫(xiě)入數(shù)據(jù)的速率,提高網(wǎng)絡(luò)傳輸?shù)馁|(zhì)量,提升音視頻體驗(yàn)效果。本發(fā)明適用于通信系統(tǒng)。
文檔編號(hào)H04L12/18GK101771492SQ20081018948
公開(kāi)日2010年7月7日 申請(qǐng)日期2008年12月29日 優(yōu)先權(quán)日2008年12月29日
發(fā)明者徐偉軍 申請(qǐng)人:華為技術(shù)有限公司