一種流媒體碼率的控制方法、系統(tǒng)及流媒體服務(wù)器的制造方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及流媒體播放技術(shù)領(lǐng)域,尤其涉及一種流媒體碼率的控制方法、系統(tǒng)及 流媒體服務(wù)器。
【背景技術(shù)】
[0002] 流媒體技術(shù)也稱流式媒體技術(shù),把連續(xù)的影像和聲音信息經(jīng)過壓縮處理后放上網(wǎng) 站服務(wù)器,讓用戶一邊下載一邊觀看、收聽,先在使用者端的計算機(jī)上創(chuàng)建一個緩沖區(qū),在 播放前預(yù)先下一段數(shù)據(jù)作為緩沖。IPTV利用寬帶網(wǎng),集互聯(lián)網(wǎng)、多媒體、通訊等技術(shù)于一體, 向家庭用戶提供包括數(shù)字電視在內(nèi)的多種交互式服務(wù)的嶄新技術(shù),能夠很好地適應(yīng)當(dāng)今網(wǎng) 絡(luò)飛速發(fā)展的趨勢,充分有效地利用網(wǎng)絡(luò)資源。隨著流媒體技術(shù)的發(fā)展,視頻質(zhì)量越來越 高,如何保證傳輸流TS流在IP網(wǎng)絡(luò)上平滑傳輸一直是IPTV業(yè)務(wù)的重要研究領(lǐng)域?,F(xiàn)有的 IPTVVBR(Vari油IeBitrate,可變比特率)傳輸流控通常通過機(jī)頂盒終端PLAY指令上報 的需要調(diào)整的緩存數(shù)據(jù)量(X-BurstSize)來進(jìn)行,當(dāng)緩存數(shù)據(jù)量超過上限或低于下限時, 要求服務(wù)器在當(dāng)前發(fā)流速率的基礎(chǔ)上減少或增加數(shù)據(jù)量,難W保證視頻傳輸?shù)馁|(zhì)量,極大 地降低了用戶的體驗度。
【發(fā)明內(nèi)容】
[0003] 有鑒于此,本發(fā)明要解決的一個技術(shù)問題是提供一種流媒體碼率的控制方法,通 過實時測算終端的空閑緩存W及碼流波動前后相關(guān)性確定碼率。
[0004] -種流媒體碼率的控制方法,包括:接收終端發(fā)送的緩存狀態(tài)信息,根據(jù)所述緩存 狀態(tài)信息和媒體流的初始碼率實時測算所述終端的空閑緩存;根據(jù)所述終端的空閑緩存W 及媒體流碼率波動的相關(guān)性確定媒體流的碼率。
[0005] 根據(jù)本發(fā)明的一個實施例,進(jìn)一步的,接收所述終端發(fā)送的首個播放PLAY命令, 其中,所述PLAY命令中攜帶的緩存下溢信息;啟動媒體流的播放,設(shè)置媒體流的初始碼率R 初始;其中,R械S=y*R源;為經(jīng)驗值,R源為源媒體流文件的基礎(chǔ)碼率。
[0006] 根據(jù)本發(fā)明的一個實施例,進(jìn)一步的,接收所述終端發(fā)送的PLAY命令,所述 PLAY命令中攜帶所述終端發(fā)送的第一個上溢信息X-BurstSize;計算所述終端的緩存 BuffSize。;其中,BuffSize。=巧傳輸一R源)*t播放時間;t播放時間為所述終端播放媒體流到發(fā)起 束x-BurstSize的時間間隔;R傳輸為t播放時間內(nèi)媒體流的碼率平均值,R初始=R傳輸。
[0007] 根據(jù)本發(fā)明的一個實施例,進(jìn)一步的,將媒體流分為多個關(guān)聯(lián)頓組,每個關(guān)聯(lián)頓組 都包括N個頓,關(guān)聯(lián)頓組的傳輸速率為町;根據(jù)所述終端的當(dāng)前空閑緩存BuffSizet計算當(dāng) 前媒體流的碼率R;其中
N為關(guān) 聯(lián)頓組的頓數(shù),為頓速率,tw為所述終端發(fā)起上一個X-BurstSize到當(dāng)前的時間間隔; 為tw時間內(nèi)傳輸?shù)年P(guān)聯(lián)頓組的町的傳輸速率平均值。
[0008] 根據(jù)本發(fā)明的一個實施例,進(jìn)一步的,計算當(dāng)前傳輸?shù)年P(guān)聯(lián)頓組的傳輸速率Rw;其 中,町=町1+a(R-町I);町I為前一個關(guān)聯(lián)頓組的平均傳輸速率,R為當(dāng)前媒體流的碼率R,a為調(diào)整系數(shù)。
[0009] 根據(jù)本發(fā)明的一個實施例,進(jìn)一步的,U為1. 2,a為0. 2。
[0010] 本發(fā)明要解決的一個技術(shù)問題是提供一種流媒體碼率的控制方法,通過實時測算 終端的空閑緩存W及碼流波動前后相關(guān)性確定碼率。
[0011] 一種流媒體服務(wù)器,包括:消息接收單元,用于接收終端發(fā)送的緩存狀態(tài)信息;緩 存計算單元,用于根據(jù)所述緩存狀態(tài)信息和媒體流的初始碼率實時測算所述終端的空閑緩 存;碼率計算單元,用于根據(jù)所述終端的空閑緩存W及媒體流碼率波動的相關(guān)性確定媒體 流的碼率。
[0012] 根據(jù)本發(fā)明的一個實施例,進(jìn)一步的,所述消息接收單元還用于接收所述終端發(fā) 送的首個播放PLAY命令,所述PLAY命令中攜帶的緩存下溢信息;所述碼率計算單元還用于 啟動媒體流的播放,設(shè)置媒體流的初始碼率自;其中,自=U*Rai;y為經(jīng)驗值,R源為 源媒體流文件的基礎(chǔ)碼率。
[0013] 根據(jù)本發(fā)明的一個實施例,進(jìn)一步的,所述消息接收單元還用于接收所述終端發(fā) 送的PLAY命令,所述PLAY命令中攜帶所述終端發(fā)送的第一個上溢信息X-BurstSize;所述 緩存計算單元還用于計算所述終端的緩存BuffSize。;其中,BuffSize。=巧傳輸一R源)*t播 放時間間為所述終端播放媒體流到發(fā)起第一個X-BurstSize的時間間隔;R傳輸為t播刺悄 內(nèi)媒體流的碼率平均值,RtMJ=
[0014] 根據(jù)本發(fā)明的一個實施例,進(jìn)一步的,所述碼率計算單元還用于將媒體流分為多 個關(guān)聯(lián)頓組,其中每個關(guān)聯(lián)頓組都包括N個頓,關(guān)聯(lián)頓組的傳輸速率為Rw;所述緩存計算單 元還用于計算所述終端的當(dāng)前空閑緩存BuffSizet;其中BuffSize=Buffsize廠巧傳輸一R 源)*tw;所述碼率計算單元還用于根據(jù)所述當(dāng)前空閑緩存BuffSizet計算當(dāng)前媒體流的碼率 R;其中,
N為關(guān)聯(lián)頓組的頓數(shù),Rff。。。 為頓速率,tw為所述終端發(fā)起上一個X-BurstSize到當(dāng)前的時間間隔;R傳輸為tw時間內(nèi)傳 輸?shù)年P(guān)聯(lián)頓組的町的平均值。
[0015] 根據(jù)本發(fā)明的一個實施例,進(jìn)一步的,所述碼率計算單元還用于計算當(dāng)前傳輸?shù)?關(guān)聯(lián)頓組的傳輸速率町;其中,町=町i+a巧-町1);町1為前一個關(guān)聯(lián)頓組的平均傳輸速 率,R為當(dāng)前媒體流的碼率R,a為調(diào)整系數(shù)。
[0016] 一種流媒體碼率的控制系統(tǒng),包括如上所述的流媒體服務(wù)器。
[0017] 本發(fā)明的流媒體碼率的控制方法、系統(tǒng)及流媒體服務(wù)器,通過實時測算終端的空 閑緩存W及碼流波動前后相關(guān)性確定碼率,能夠避免終端出現(xiàn)碼流緩存溢出的同時有效提 升緩存利用率,并對碼流進(jìn)行了平滑處理,有效降低瞬間峰值碼率對傳輸網(wǎng)絡(luò)和服務(wù)器帶 寬的壓力,保證了視頻傳輸質(zhì)量,提升用戶體驗。
【附圖說明】
[0018] 為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實施例或現(xiàn) 有技術(shù)描述中所需要使用的附圖作一簡單地介紹,顯而易見地,下面描述中的附圖僅僅是 本發(fā)明的一些實施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動性的前提下,還 可W根據(jù)送些附圖獲得其他的附圖。
[0019] 圖1為根據(jù)本發(fā)明的流媒體碼率的控制方法的一個實施例的流程圖;
[0020] 圖2為根據(jù)本發(fā)明的流媒體碼率的控制方法的另一個實施例的消息交互圖;
[0021] 圖3為關(guān)聯(lián)頓組的結(jié)構(gòu)示意圖;
[0022] 圖4為根據(jù)本發(fā)明的流媒體服務(wù)器的一個實施例的示意圖。
【具體實施方式】
[0023] 下面參照附圖對本發(fā)明進(jìn)行更全面的描述,其中說明本發(fā)明的示例性實施例。下 面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯 然,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是全部的實施例?;诒景l(fā)明中的實 施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬 于本發(fā)明保護(hù)的范圍。下面結(jié)合各個圖和實施例對本發(fā)明的技術(shù)方案進(jìn)行多方面的描述。
[0024] 圖1為根據(jù)本發(fā)明的流媒體碼率的控制方法的一個實施例的流程圖,如圖1所 示:
[0025]步驟101,接收終端發(fā)送的緩存狀態(tài)信息,根據(jù)緩存狀態(tài)信息和媒體流的初始碼率 實時測算終端的空閑緩存。
[0026] 步驟102,根據(jù)終端的空閑緩存W及媒體流碼率波動的相關(guān)性確定媒體流的碼率。
[0027] 上述的流媒體碼率的控制方法,能夠根據(jù)初始碼流傳輸速率和終端的緩存狀態(tài)反 饋,實時測算終端的空閑緩存大小,并考慮碼率波動的前后相關(guān)性,推算出最佳傳輸碼率, 能夠避免終端出現(xiàn)碼流緩存溢出的同時有效提升緩存利用率。
[0028] 服務(wù)器與終端之間采用RTSP協(xié)議的命令或消息進(jìn)行流媒體的播放協(xié)商。 RTSP巧ealTimeStreamingProtocol;實時流傳輸協(xié)議)定義了一對多應(yīng)用程序如何有效 地通過IP網(wǎng)絡(luò)傳送多媒體數(shù)據(jù)。RTSP在體系結(jié)構(gòu)上位于RTP和RTCP之上,它使用TCP或 RTP完成數(shù)據(jù)傳輸。RTSP用來控制聲音或影像的多媒體串流協(xié)議,并允許同時多個串流需 求控制,傳輸時所用的網(wǎng)絡(luò)通訊協(xié)定并不在其定義的范圍內(nèi),服務(wù)器端可W自行選擇使用 TCP或UDP來傳送串流內(nèi)容。
[0029] 在一個實施例中,接收終端發(fā)送的首個RTSP的播放PLAY命令,PLAY命令中攜帶 的緩存下溢信息。啟動媒體流的播放,設(shè)置媒體流的初始碼率RtMS,自=W 為經(jīng) 驗值,Rjg為源媒體流文件的基礎(chǔ)碼率。
[0030] 終端的緩存都不會太大,緩存的數(shù)據(jù)太大,會造成等待數(shù)據(jù)處理延時太高.達(dá)不 到實時的要求。如果指數(shù)據(jù)發(fā)送太快,硬件處理不過來,緩存已經(jīng)裝不下郝么多數(shù)據(jù),開 始丟棄送些數(shù)據(jù),放棄處理,就是指上溢。如果數(shù)據(jù)發(fā)送太慢,緩沖區(qū)的數(shù)據(jù)都處理空了, 輸入數(shù)據(jù)還沒過來,硬件還在等待緩沖區(qū)有足夠數(shù)據(jù)可W處理,輸出接口就在要求發(fā)送處 理好的數(shù)據(jù)出去,就是指下溢。
[0031] 在一個實施例中,接收終端發(fā)送的PLAY命令,PLAY命令中攜帶終端發(fā)送的第一個 上溢信息x-BurstSize。計算終端的緩存BuffSize。;其中,BuffSize。=巧傳輸一R源)*t播 放時間;t播放時間為終吉而播放媒體流到發(fā)起束l^x-BurstSize的時間間隔;R傳輸為t播放時間內(nèi)媒 體流的碼率平均值,。由于1?&^大于源媒體流文件的基礎(chǔ)碼率,即終端播放的媒 體流的速率小于服務(wù)器發(fā)送的速率,終端的緩存必定會被充滿,即可計算出終端的緩存。
[0032] 在一個實施例中,將媒體流分為多個關(guān)聯(lián)頓組,每個關(guān)聯(lián)頓組都包括N個頓,關(guān)聯(lián) 頓組的傳輸速率為町。
[0033] 根據(jù)終端的當(dāng)前空閑緩存BuffSizet計算當(dāng)前媒體流的碼率R;其中,
N為關(guān)聯(lián)頓組的頓數(shù),Rff^。為頓 速率,tw為終端發(fā)起上一個X-BurstSize到當(dāng)前的時間間隔;R傳輸為tw時間內(nèi)傳輸?shù)年P(guān)聯(lián) 頓組的町的傳輸速率平均值。
[0034] 在一個實施例中,計算當(dāng)前傳輸?shù)年P(guān)聯(lián)頓組的傳輸速率Rn,Rn=Rn1+a(R-Rn1); 町1為前一個關(guān)聯(lián)頓組的平均傳輸速率,R為當(dāng)前媒體流的碼率R,a為調(diào)整系數(shù)。
[0035] 在上述的流媒體碼率的控制方法中,通過獲取的緩存終端,在此次或之后對此終 端進(jìn)行的視頻播放中實時測算終端的空閑緩存大小,并考慮碼率波動的前后相關(guān)性,推算 出最佳傳輸碼率,能夠避免終端出現(xiàn)碼流緩存溢出的同時有效提升緩存利用率。
[0036] 考慮了碼流波動前后相關(guān)性,并對碼流進(jìn)行了平滑處理,有效降低瞬間峰值碼率 對傳輸網(wǎng)絡(luò)和服務(wù)器帶寬的壓力,并能夠有效提升平滑流控效率,保證視頻傳輸質(zhì)量,提升 用戶體驗。
[0037] 圖2為根據(jù)本發(fā)明的流媒體碼率的控制方法的一個實施例的流程圖