專利名稱:一種流媒體處理方法、設(shè)備和系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及通信技術(shù)領(lǐng)域,尤其涉及一種流媒體處理方法、設(shè)備和系統(tǒng)。
背景技術(shù):
隨著網(wǎng)絡(luò)技術(shù)的進(jìn)步,流媒體業(yè)務(wù)得以迅猛發(fā)展,用戶可以使用手機(jī)、電腦、電視 等終端設(shè)備接入到有線或無線網(wǎng)絡(luò)中,享受音視頻服務(wù)。由于接入的網(wǎng)絡(luò)類型不同,所接入 的網(wǎng)絡(luò)帶寬也不相同,如GSM通常只能提供幾十K的帶寬,WIFI則能提供幾十M的帶寬,即 使是同一種網(wǎng)絡(luò),帶寬也會(huì)隨著時(shí)間發(fā)生變化,無線網(wǎng)絡(luò)尤為明顯。網(wǎng)絡(luò)帶寬越高,能提供 的視頻質(zhì)量越好,如何在可變的帶寬下,提供最佳的視頻體驗(yàn),是流媒體服務(wù)提供商面臨的 一個(gè)問題。參見圖1,為現(xiàn)有技術(shù)一種實(shí)現(xiàn)方案,其中,圖1中的碼流存儲(chǔ)服務(wù)器中存儲(chǔ)著每 個(gè)流媒體節(jié)目的多份碼率的碼流,每份碼流按固定時(shí)間(如2秒)被切分成不同的分片,作 為流媒體傳輸?shù)幕締挝?,如圖2所示。圖1中的流服務(wù)器用于檢測(cè)用戶終端的接入帶寬,然后從碼流存儲(chǔ)服務(wù)器中選擇 和用戶終端帶寬最匹配的碼流分片發(fā)送給用戶終端。例如,碼流存儲(chǔ)服務(wù)器存儲(chǔ)了預(yù)先 壓縮好的0. 5Mbps, 1Mbps, 2Mbps的碼流分片,當(dāng)用戶終端的接入帶寬為1. 8Mbps時(shí),傳輸 IMbps碼流分片;當(dāng)終端的接入帶寬變化到2. IMbps時(shí),傳輸2Mbps的分片;碼率切換以分 片為基本單位進(jìn)行切換,g卩如果當(dāng)前碼流為碼流1的分片12,如果在傳輸分片12的過程中 檢測(cè)到帶寬發(fā)生變化,想切換到碼流2的分片23,則需要等到分片12結(jié)束后才切換。發(fā)明人在實(shí)現(xiàn)本發(fā)明的過程中,發(fā)現(xiàn)現(xiàn)有技術(shù)至少存在以下缺點(diǎn)由于流服務(wù)器只能根據(jù)用戶終端帶寬選擇與用戶終端最匹配的碼流發(fā)送給用戶 終端,因此,會(huì)存在無法充分利用用戶帶寬,提供最優(yōu)流媒體質(zhì)量的缺點(diǎn),例如,當(dāng)用戶帶寬 為1. 8Mbps時(shí),流服務(wù)器只能選擇其中IMbps的碼流分片,從而使得用戶1. 8Mbps的帶寬得 不到充分利用。
發(fā)明內(nèi)容
本發(fā)明實(shí)施例提供一種流媒體處理方法、設(shè)備和系統(tǒng),用于使得用戶終端能夠有 效利用帶寬獲取較高質(zhì)量的流媒體。其中,一種流媒體處理方法包括根據(jù)用戶終端當(dāng)前帶寬以及預(yù)存儲(chǔ)碼流的碼率,判斷是否需要轉(zhuǎn)碼;如果是,選擇所述預(yù)存儲(chǔ)碼流中碼率高于所述終端用戶當(dāng)前帶寬的碼流進(jìn)行轉(zhuǎn) 碼,輸出與所述用戶終端當(dāng)前帶寬匹配的碼流給所述用戶終端。其中,一種流媒體處理設(shè)備包括獲取單元,用于獲取用戶終端當(dāng)前帶寬;轉(zhuǎn)碼控制單元,用于根據(jù)所述用戶終端當(dāng)前帶寬以及預(yù)存儲(chǔ)碼流的碼率判斷是否 轉(zhuǎn)碼;
業(yè)務(wù)處理單元,用于當(dāng)所述轉(zhuǎn)碼控制單元判斷進(jìn)行轉(zhuǎn)碼后,接收通過選擇所述預(yù) 存儲(chǔ)碼流中碼率高于所述用戶終端當(dāng)前帶寬的碼流進(jìn)行轉(zhuǎn)碼后得到的與用戶終端當(dāng)前帶 寬匹配的碼流,并輸出給所述用戶終端。其中,一種流媒體處理系統(tǒng)包括獲取單元,用于獲取用戶終端當(dāng)前帶寬;碼流存儲(chǔ)單元,用于存儲(chǔ)流媒體碼流;轉(zhuǎn)碼控制單元,用于根據(jù)所述用戶終端當(dāng)前帶寬以及所述碼流存儲(chǔ)單元預(yù)存儲(chǔ)碼 流的碼率,判斷是否需要轉(zhuǎn)碼;轉(zhuǎn)碼單元,用于當(dāng)所述轉(zhuǎn)碼判斷單元判斷需要轉(zhuǎn)碼時(shí),選擇所述碼流存儲(chǔ)單元預(yù) 存儲(chǔ)碼流中碼率高于所述用戶終端當(dāng)前帶寬的碼流進(jìn)行轉(zhuǎn)碼,輸出與所述用戶終端當(dāng)前帶 寬匹配的碼流;業(yè)務(wù)處理單元,用于將所述轉(zhuǎn)碼單元輸出的碼流輸出給所述用戶終端。上述技術(shù)方案中具有如下的優(yōu)點(diǎn)本發(fā)明實(shí)施例通過根據(jù)用戶終端當(dāng)前帶寬以及預(yù)存儲(chǔ)碼流判斷是否轉(zhuǎn)碼,如果 是,選擇預(yù)存儲(chǔ)碼流中碼率高于用戶終端當(dāng)前帶寬的碼流進(jìn)行轉(zhuǎn)碼,輸出與用戶終端當(dāng)前 帶寬匹配的碼流,可以使得用戶終端能夠有效地利用帶寬獲取較高質(zhì)量的流媒體。
為了更清楚地說明本發(fā)明實(shí)施例中的技術(shù)方案,下面將對(duì)實(shí)施例或現(xiàn)有技術(shù)描述 中所需要使用的附圖作簡(jiǎn)單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些 實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)這些附 圖獲得其他的附圖。圖1為現(xiàn)有技術(shù)流媒體系統(tǒng)結(jié)構(gòu)示意圖2為預(yù)存儲(chǔ)碼流的分片示意圖3為本發(fā)明實(shí)施例--流媒體處理方法流程示意圖4為本發(fā)明實(shí)施例二二流媒體處理方法流程示意圖5為本發(fā)明實(shí)施例二二預(yù)存儲(chǔ)碼流示意圖6為本發(fā)明實(shí)施例二二通過閾值判斷是否進(jìn)行轉(zhuǎn)碼示意圖7為本發(fā)明實(shí)施例三三流媒體處理設(shè)備結(jié)構(gòu)示意圖8為本發(fā)明實(shí)施例三三流媒體處理設(shè)備另一結(jié)構(gòu)示意圖9為本發(fā)明實(shí)施例三三流媒體處理設(shè)備另一結(jié)構(gòu)示意圖10為本發(fā)明實(shí)施例四流媒體處理系統(tǒng)結(jié)構(gòu)示意圖
圖11為本發(fā)明實(shí)施例四流媒體處理系統(tǒng)一種具體實(shí)現(xiàn)結(jié)構(gòu)示意圖12為本發(fā)明實(shí)施例基于圖11所示的系統(tǒng)進(jìn)行流媒體處理流程示意圖。
具體實(shí)施例方式為使本發(fā)明的目的、技術(shù)方案及優(yōu)點(diǎn)更加清楚明白,以下將通過具體實(shí)施例和相 關(guān)附圖,對(duì)本發(fā)明作進(jìn)一步詳細(xì)說明。實(shí)施例一
本發(fā)明實(shí)施例一提供了一種流媒體處理方法,用于充分利用用戶帶寬輸出較高質(zhì) 量的碼流;參見圖3,包括如下步驟S101、根據(jù)用戶終端當(dāng)前帶寬以及預(yù)存儲(chǔ)碼流的碼率,判斷是否需要轉(zhuǎn)碼;S102、如果是,選擇所述預(yù)存儲(chǔ)碼流中碼率高于所述用戶終端當(dāng)前帶寬的碼流進(jìn) 行轉(zhuǎn)碼,輸出與所述用戶終端帶寬匹配的碼流給所述用戶終端。如果否,則選擇所述預(yù)存儲(chǔ)碼流中小于等于所述用戶終端帶寬且碼率最高的碼流 輸出給所述用戶終端。其中,判斷是否需要轉(zhuǎn)碼根據(jù)用戶終端當(dāng)前帶寬和預(yù)存儲(chǔ)碼流的情況不同而不 同,例如當(dāng)預(yù)存儲(chǔ)的碼流有多個(gè),且用戶終端的帶寬達(dá)到一定的閾值后,判斷需要進(jìn)行轉(zhuǎn) 碼,否則,不進(jìn)行轉(zhuǎn)碼;其中,閾值的設(shè)置可以是固定的,或者通過用戶配置參數(shù)進(jìn)行調(diào)整;或者,當(dāng)預(yù)存儲(chǔ)的碼流只有一個(gè),且碼率大于用戶終端當(dāng)前帶寬時(shí),判斷需要進(jìn)行轉(zhuǎn) 碼;當(dāng)預(yù)存儲(chǔ)的碼流只有一個(gè),且碼率小于或等于用戶終端當(dāng)前帶寬時(shí),判斷不需要進(jìn)行轉(zhuǎn) 碼;此外,還可以結(jié)合其他信息來判斷是否進(jìn)行轉(zhuǎn)碼,例如當(dāng)前流媒體處理資源(如 轉(zhuǎn)碼處理資源等)以及所述用戶終端性能參數(shù)(如計(jì)算能力等)和用戶網(wǎng)絡(luò)性能參數(shù)(如 丟包率、時(shí)延等)等因素來判斷是否進(jìn)行轉(zhuǎn)碼。上述用戶終端當(dāng)前帶寬可以通過實(shí)時(shí)檢測(cè)用戶終端帶寬得到,也可以通過事先配 置的信息進(jìn)行得到,或者通過其他方式得到。如果根據(jù)上述信息判斷進(jìn)行轉(zhuǎn)碼時(shí),選擇所述預(yù)存儲(chǔ)碼流中碼率高于所述用戶終 端當(dāng)前帶寬的碼流進(jìn)行轉(zhuǎn)碼;可以選用在同一分辨率下碼率比用戶終端當(dāng)前帶高的碼流, 如選擇最高的;也可以選擇不同分辨率下碼率比用戶終端當(dāng)前帶寬高的碼流,為了得到與 用戶終端帶寬分辨率相同的碼流,此時(shí)還需要對(duì)分辨率進(jìn)行轉(zhuǎn)換。進(jìn)行轉(zhuǎn)碼后,輸出與用戶帶寬匹配的碼流,這里的匹配可以指碼流的碼率與用戶 終端帶寬相等;或者碼流的碼率與用戶終端帶寬結(jié)合其他信息(如當(dāng)前流媒體處理資源、 丟包率等)后得到的帶寬相等;需要說明的是,這里的相等并不意味著嚴(yán)格等同,由于通信 設(shè)備處理時(shí)或傳輸時(shí)造成實(shí)際輸出與用戶終端帶寬有一定的誤差,也可認(rèn)為是相等,其他 情況下的相同也可以有一定的誤差存在。本發(fā)明實(shí)施例通過根據(jù)用戶終端當(dāng)前帶寬以及預(yù)存儲(chǔ)碼流判斷是否轉(zhuǎn)碼,如果 是,選擇預(yù)存儲(chǔ)碼流中碼率高于用戶終端當(dāng)前帶寬的碼流進(jìn)行轉(zhuǎn)碼,輸出與用戶終端當(dāng)前 帶寬匹配的碼流,可以使用戶終端能夠有效地利用帶寬獲取較高質(zhì)量的流媒體,從而提高 了流媒體服務(wù)的質(zhì)量。實(shí)施例二本發(fā)明實(shí)施例提供了一種流媒體處理方法,參見圖4,包括如下步驟S201、獲取用戶終端當(dāng)前帶寬;具體的,可以通過實(shí)時(shí)檢測(cè)來獲取用戶終端當(dāng)前帶寬;或者,通過預(yù)先配置的信息 來獲取,配置的信息可以通過對(duì)歷史時(shí)刻的用戶終端的帶寬進(jìn)行統(tǒng)計(jì)得到,如統(tǒng)計(jì)得到在 早上8點(diǎn)到晚上6點(diǎn)用戶終端帶寬較大,晚上6點(diǎn)到晚上10點(diǎn)用戶帶寬較小等。
S202、根據(jù)用戶終端當(dāng)前帶寬以及預(yù)存儲(chǔ)碼流的碼率,判斷是否需要轉(zhuǎn)碼;預(yù)存儲(chǔ)的碼流一般包括多個(gè)經(jīng)壓縮后的流媒體碼流(如aVi、rm、mp4等流媒體碼 流);但因?yàn)槭艽鎯?chǔ)容量及處理能力的限制,不可能存儲(chǔ)很多,如一般可設(shè)為5-10個(gè)(可根 據(jù)存儲(chǔ)器容量及處理能力進(jìn)行適當(dāng)調(diào)整);同時(shí),針對(duì)某個(gè)具體的分辨率都設(shè)置成幾個(gè)不 同碼率的碼流。參見圖5,為一種預(yù)存儲(chǔ)的碼流形式,其中,碼流1-碼流2存儲(chǔ)著為分辨率 為40(^200的碼流,最高碼率為15Mbps ;碼流3-碼流5存儲(chǔ)著為分辨率為200*100的碼流, 最高碼率為3Mbps ;碼流6-碼流7存儲(chǔ)著為分辨率為100*50的碼流,最高碼率為0. 8Mbps。當(dāng)有多個(gè)流媒體碼流時(shí),判斷轉(zhuǎn)碼可以通過判斷是否超過某個(gè)閾值來進(jìn)行;閾值 的設(shè)定可以是固定的,也可以是動(dòng)態(tài)調(diào)整的。采用固定閾值可以采用如下方法在每個(gè)預(yù)存 儲(chǔ)的碼流之間設(shè)置一個(gè)閾值,當(dāng)越過這個(gè)閾值時(shí)進(jìn)行轉(zhuǎn)碼,不超過這個(gè)閾值時(shí)不進(jìn)行轉(zhuǎn)碼, 如參考圖5,可以在碼流7與碼流6之間設(shè)置一個(gè)閾值0. 6Mbps,當(dāng)用戶終端當(dāng)前帶寬超過 0. 6Mbps時(shí)進(jìn)行轉(zhuǎn)碼,反之,則不進(jìn)行轉(zhuǎn)碼。其中碼流的閾值也可以進(jìn)行類似設(shè)置。更多的情況可以讓用戶根據(jù)實(shí)際情況來對(duì)閾值進(jìn)行動(dòng)態(tài)調(diào)整,此時(shí),可以通過讓 用戶調(diào)整一個(gè)配置參數(shù)來對(duì)閾值進(jìn)行動(dòng)態(tài)調(diào)整,具體調(diào)整的參數(shù)及算法并不限定,參見圖 6,為本發(fā)明實(shí)施例所舉的一個(gè)具體調(diào)整參數(shù)的方法該調(diào)整方法的配置參數(shù)為a,對(duì)a的定義為a = (TH-Bi) / (Bw-Bi),其中,Bi及Bi+1 為預(yù)存儲(chǔ)碼流的碼率,且兩個(gè)為相鄰的碼流,Bi+1大于Bi, (Bfflax為最大碼流的碼率,Bfflin為最 小碼流的碼率);配置參數(shù)a的含義為閾值TH-Bi ABw-Bi的百分比,取值范圍W,1];如當(dāng) 配置a為1/3時(shí),那么可以通過a的定義計(jì)算得到TH值,只要超過TH,即進(jìn)行轉(zhuǎn)碼,否則,不 進(jìn)行轉(zhuǎn)碼。需要說明的是,該配置參數(shù)a的定義只是一個(gè)具體的簡(jiǎn)單定義,實(shí)際應(yīng)用中也可 以采用其他定義的配置參數(shù)來對(duì)閾值進(jìn)行設(shè)定,在此并不限定。當(dāng)預(yù)存儲(chǔ)的碼流只有一個(gè)時(shí),此時(shí),如果該碼流的碼率大于用戶終端當(dāng)前帶寬,則 判斷需要進(jìn)行轉(zhuǎn)碼;反之,如果該碼流的碼率小于或等于用戶終端當(dāng)前帶寬時(shí),判斷不需要 進(jìn)行轉(zhuǎn)碼。判斷是否轉(zhuǎn)碼除了根據(jù)用戶終端當(dāng)前帶寬及預(yù)存儲(chǔ)的碼流外,還可以結(jié)合流媒體 處理資源(如轉(zhuǎn)碼處理資源)、用戶終端性能參數(shù)(如計(jì)算能力)、或用戶網(wǎng)絡(luò)性能參數(shù)(如 丟包率、時(shí)延等)等因素(可以根據(jù)其中的一個(gè)或多個(gè))來判斷是否進(jìn)行轉(zhuǎn)碼或調(diào)整相關(guān) 的閾值;例如,如果流媒體轉(zhuǎn)碼能力較強(qiáng),且需要處理的流很少,則說明流媒體處理資源充 足,以圖6中的例子為例,此時(shí),可以調(diào)低相應(yīng)的閾值,即TH只要超過Bi —點(diǎn)就可以進(jìn)行 轉(zhuǎn)碼;反之,當(dāng)流媒體轉(zhuǎn)碼能力較弱,且需要處理的流很多時(shí),說明流媒體處理資源不足,此 時(shí),可以調(diào)高相應(yīng)的閾值,或者不進(jìn)行轉(zhuǎn)碼。同理,也可以根據(jù)用戶終端性能參數(shù)或用戶網(wǎng) 絡(luò)性能參數(shù)(如丟包率)等各種系統(tǒng)參數(shù)來判斷是否進(jìn)行轉(zhuǎn)碼或調(diào)整相關(guān)的閾值,例如,在 用戶終端丟包率較高的情況下,可以選擇將閾值調(diào)整得高一點(diǎn),或者不進(jìn)行轉(zhuǎn)碼;反之,在 丟包率較低的情況下,可以將閾值調(diào)整得低一點(diǎn)等。S203、如果是,選擇所述預(yù)存儲(chǔ)碼流中碼率高于所述用戶終端當(dāng)前帶寬的碼流進(jìn) 行轉(zhuǎn)碼,輸出與所述用戶終端帶寬匹配的碼流給所述用戶終端;如果判斷進(jìn)行轉(zhuǎn)碼,則選擇預(yù)存儲(chǔ)碼流中碼率高于所述用戶終端當(dāng)前帶寬的碼流 進(jìn)行轉(zhuǎn)碼(選擇低于或等于的不會(huì)提升流媒體質(zhì)量,因此沒有意義)。具體選擇時(shí),可以選擇與當(dāng)前分辨率下的最高碼率的碼流進(jìn)行轉(zhuǎn)碼;例如,以圖5為例,假設(shè)給用戶終端的當(dāng)前碼流的分辨率為200*100,碼率為1. 5Mbps ;如果判斷碼率超 過閾值(如2Mbps),則進(jìn)行轉(zhuǎn)碼,此時(shí),選擇此分辨率下最高碼率的碼流進(jìn)行轉(zhuǎn)碼,例如,這 里選擇3Mbps的碼流進(jìn)行轉(zhuǎn)碼。這里也可以選擇不是此分辨率下最高碼率的碼流進(jìn)行轉(zhuǎn)碼,例如,這里也可以選 擇碼率為1. 5Mbps的碼流進(jìn)行轉(zhuǎn)碼;除此之外,也可以選擇分辨率不是當(dāng)前分辨率的碼流進(jìn)行轉(zhuǎn)碼,但在轉(zhuǎn)碼過程中 還需要進(jìn)行分辨率的轉(zhuǎn)換。轉(zhuǎn)碼后輸出與用戶終端帶寬匹配的碼流,這里的匹配可以指碼流的碼率與用戶終 端帶寬相等;或者碼流的碼率與用戶終端帶寬結(jié)合其他信息(如流媒體處理資源、用戶終 端性能參數(shù)、用戶網(wǎng)絡(luò)性能參數(shù)等)后得到的帶寬相等,如獲取的終端用戶當(dāng)前帶寬為2M, 但由于用戶網(wǎng)絡(luò)性能參數(shù)比較差(如丟包率比較高),此時(shí)可以輸出1. 9Mbps或1. 8Mbps的 碼流給終端用戶;需要說明的是,這里的相等并不意味著嚴(yán)格等同,由于通信設(shè)備處理時(shí)或 傳輸時(shí)造成實(shí)際輸出與用戶終端帶寬有一定的誤差,也可認(rèn)為是相等,同理,其他情況下的 相同也可以有一定的誤差存在。S204、如果否,則選擇所述預(yù)存儲(chǔ)碼流中小于等于所述用戶終端帶寬且碼率最高 的碼流輸出給所述用戶終端。例如,以圖5所示的為例,假設(shè)用戶終端帶寬為1. 7Mbps,轉(zhuǎn)碼閾值為2Mbps,由于 小于轉(zhuǎn)碼閾值,因此,不進(jìn)行轉(zhuǎn)碼,此時(shí),選擇小于等于用戶終端帶寬的碼流中碼率最高的 一個(gè)給用戶終端,這里選擇1. 5Mbps的給用戶終端,這樣可以最大程度保證流媒體的質(zhì)量。需要說明的是,上述判斷的具體時(shí)間并不限定,但轉(zhuǎn)換需要以時(shí)間分片為基本單 位進(jìn)行轉(zhuǎn)換,即在一個(gè)碼流的時(shí)間片結(jié)束才能轉(zhuǎn)到另外一個(gè)碼流的分。同一碼流的不同時(shí) 間分片長(zhǎng)度可以不同,但不同碼流同一順序的時(shí)間分片長(zhǎng)度須要相等,否則會(huì)出現(xiàn)切換碼 流時(shí),時(shí)間不對(duì)應(yīng)的情況。如圖5所示,圖中分片11、12、13、14或21、22、23、24的長(zhǎng)度可以 各不相同,但分片11、21、31. . . 71或13、23、33. . . 73的長(zhǎng)度必須相同。本發(fā)明實(shí)施例通過根據(jù)用戶終端當(dāng)前帶寬以及預(yù)存儲(chǔ)碼流判斷是否轉(zhuǎn)碼,如果 是,選擇預(yù)存儲(chǔ)碼流中碼率高于用戶終端當(dāng)前帶寬的碼流進(jìn)行轉(zhuǎn)碼,輸出與用戶終端當(dāng)前 帶寬匹配的碼流,可以使得用戶終端能夠有效地利用帶寬獲取較高質(zhì)量的流媒體,本發(fā)明實(shí)施例通過根據(jù)用戶終端當(dāng)前帶寬以及預(yù)存儲(chǔ)碼流判斷是否轉(zhuǎn)碼,如果 是,選擇預(yù)存儲(chǔ)碼流中碼率高于用戶終端當(dāng)前帶寬的碼流進(jìn)行轉(zhuǎn)碼,輸出與用戶終端當(dāng)前 帶寬匹配的碼流,可以使用戶終端能夠有效地利用帶寬獲取較高質(zhì)量的流媒體,從而提高 了流媒體服務(wù)的質(zhì)量。實(shí)施例三本發(fā)明實(shí)施例提供了一種流媒體處理設(shè)備30,參見圖7,包括如下單元獲取單元31,用于獲取用戶終端當(dāng)前帶寬;轉(zhuǎn)碼控制單元32,用于根據(jù)所述用戶終端當(dāng)前帶寬以及預(yù)存儲(chǔ)碼流的碼率判斷是 否轉(zhuǎn)碼;業(yè)務(wù)處理單元33,用于當(dāng)所述轉(zhuǎn)碼控制單元32判斷進(jìn)行轉(zhuǎn)碼后,接收通過選擇預(yù) 存儲(chǔ)碼流中碼率高于所述用戶終端當(dāng)前帶寬的碼流進(jìn)行轉(zhuǎn)碼后得到的與用戶終端當(dāng)前帶 寬匹配的碼流,并輸出給所述用戶終端。
當(dāng)所述轉(zhuǎn)碼控制單元32判斷不進(jìn)行轉(zhuǎn)碼時(shí),選擇所述預(yù)存儲(chǔ)碼流中小于等于所 述用戶終端帶寬且碼率最高的碼流輸出給所述用戶終端。轉(zhuǎn)碼控制單元判斷是否轉(zhuǎn)碼可以根據(jù)以下幾種情況來判斷當(dāng)預(yù)存儲(chǔ)的碼流有多個(gè),且所述用戶終端當(dāng)前帶寬達(dá)到一定的閾值后,判斷需要 進(jìn)行轉(zhuǎn)碼,否則,不進(jìn)行轉(zhuǎn)碼;其中,所述閾值的設(shè)置為固定的,或者通過配置參數(shù)進(jìn)行調(diào) 整,配置參數(shù)的形式以及具體算法可以根據(jù)實(shí)際情況進(jìn)行調(diào)整,在此并不限定;或者,當(dāng)預(yù)存儲(chǔ)的碼流只有一個(gè),且碼率大于用戶終端當(dāng)前帶寬時(shí),判斷需要進(jìn)行轉(zhuǎn) 碼;當(dāng)預(yù)存儲(chǔ)的碼流只有一個(gè),且碼率小于或等于用戶終端當(dāng)前帶寬時(shí),判斷不需要進(jìn)行轉(zhuǎn) 碼;或者,根據(jù)所述用戶終端帶寬和所述預(yù)存儲(chǔ)的碼流并結(jié)合流媒體處理資源、所述用戶終 端性能參數(shù)、用戶網(wǎng)絡(luò)性能參數(shù)中的一個(gè)或多個(gè)來判斷是否進(jìn)行轉(zhuǎn)碼,例如當(dāng)流媒體處理 資源比較少時(shí),可以將閾值調(diào)整得大一點(diǎn)或者不進(jìn)行轉(zhuǎn)碼;同理,當(dāng)丟包率較大時(shí),可以將 閾值調(diào)整得大一點(diǎn)或不進(jìn)行轉(zhuǎn)碼,當(dāng)丟包率較小,可將閾值調(diào)整得小一點(diǎn)。本發(fā)明實(shí)施例中,處理轉(zhuǎn)碼的設(shè)備或單元(如轉(zhuǎn)碼單元)以及預(yù)存儲(chǔ)碼流的設(shè)備 或單元(如碼流存儲(chǔ)單元)可以與本發(fā)明實(shí)施例在同一個(gè)設(shè)備,也可以通過其他設(shè)備來實(shí) 現(xiàn)。參見圖8,為轉(zhuǎn)碼單元與本發(fā)明實(shí)施例設(shè)備不在同一個(gè)設(shè)備的結(jié)構(gòu)示意圖;參見圖9,為 本發(fā)明實(shí)施例設(shè)備也包括轉(zhuǎn)碼單元的示意圖;同理,碼流存儲(chǔ)單元也可以進(jìn)行類似設(shè)備,如 圖8、圖9所示,碼流存儲(chǔ)單元與本發(fā)明實(shí)施例設(shè)備均不在同一個(gè)設(shè)備,在實(shí)際應(yīng)用中,本發(fā) 明實(shí)施例中也可以包括碼流存儲(chǔ)單元。上述各單元可以通過各種硬件處理單元來實(shí)現(xiàn),如通過處理芯片或?qū)S糜布幚?芯片及其他具有類似功能的硬件電路等,且其中一個(gè)功能單元可以用一種或多種硬件處理 單元實(shí)現(xiàn),同時(shí),一個(gè)硬件處理單元也可以實(shí)現(xiàn)一個(gè)或多個(gè)功能單元,在此并不限定。各單 元之間的具體操作流程也可以參考實(shí)施例二的相關(guān)步驟,在此不再贅述。具體的,本發(fā)明實(shí)施例流媒體處理設(shè)備可以為流媒體服務(wù)器,媒體網(wǎng)關(guān),媒體資源 服務(wù)器等。本發(fā)明實(shí)施例通過根據(jù)用戶終端當(dāng)前帶寬以及預(yù)存儲(chǔ)碼流判斷是否轉(zhuǎn)碼,如果 是,選擇預(yù)存儲(chǔ)碼流中碼率高于用戶終端當(dāng)前帶寬的碼流進(jìn)行轉(zhuǎn)碼,輸出與用戶終端當(dāng)前 帶寬匹配的碼流,可以使用戶終端能夠有效地利用帶寬獲取較高質(zhì)量的流媒體,從而提高 了流媒體服務(wù)的質(zhì)量。實(shí)施例四本發(fā)明實(shí)施例提供了一種流媒體處理系統(tǒng)40,參見圖10,包括獲取單元41,用于獲取用戶終端當(dāng)前帶寬;碼流存儲(chǔ)單元42,用于存儲(chǔ)流媒體碼流;轉(zhuǎn)碼控制單元43,用于根據(jù)所述用戶終端當(dāng)前帶寬以及所述碼流存儲(chǔ)單元預(yù)存儲(chǔ) 碼流的碼率,判斷是否需要轉(zhuǎn)碼;轉(zhuǎn)碼單元44,用于當(dāng)所述轉(zhuǎn)碼判斷單元判斷需要轉(zhuǎn)碼時(shí),選擇所述碼流存儲(chǔ)單元 預(yù)存儲(chǔ)碼流中碼率高于所述用戶終端當(dāng)前帶寬的碼流進(jìn)行轉(zhuǎn)碼,輸出與所述用戶終端當(dāng)前帶寬匹配的碼流;業(yè)務(wù)處理單元45,用于將所述轉(zhuǎn)碼單元輸出的碼流輸出給所述用戶終端。所述業(yè)務(wù)處理單元還用于,當(dāng)所述轉(zhuǎn)碼控制單元判斷不需要轉(zhuǎn)碼時(shí),選擇所述預(yù) 存儲(chǔ)碼流中小于等于所述用戶終端帶寬且碼率最高的碼流輸出給所述用戶終端。所述轉(zhuǎn)碼控制單元根據(jù)所述用戶終端當(dāng)前帶寬以及所述碼流存儲(chǔ)單元預(yù)存儲(chǔ)碼 流的碼率,判斷是否需要轉(zhuǎn)碼的步驟包括當(dāng)預(yù)存儲(chǔ)的碼流有多個(gè),且所述用戶終端當(dāng)前帶寬達(dá)到一定的閾值后,判斷需要 進(jìn)行轉(zhuǎn)碼,否則,不進(jìn)行轉(zhuǎn)碼;其中,所述閾值的設(shè)置為固定的,或者通過配置參數(shù)進(jìn)行調(diào) 整;或者,當(dāng)預(yù)存儲(chǔ)的碼流只有一個(gè),且碼率大于用戶終端當(dāng)前帶寬時(shí),判斷需要進(jìn)行轉(zhuǎn) 碼;當(dāng)預(yù)存儲(chǔ)的碼流只有一個(gè),且碼率小于或等于用戶終端當(dāng)前帶寬時(shí),判斷不需要進(jìn)行轉(zhuǎn) 碼;或者,根據(jù)所述用戶終端帶寬和所述預(yù)存儲(chǔ)的碼流并結(jié)合流媒體處理資源、所述用戶終 端性能參數(shù)、用戶網(wǎng)絡(luò)性能參數(shù)中的一個(gè)或多個(gè)來判斷是否進(jìn)行轉(zhuǎn)碼。上述各單元可以通過各種硬件處理單元來實(shí)現(xiàn),如通過處理芯片或?qū)S糜布幚?芯片及其他具有類似功能的硬件電路等,且其中一個(gè)功能單元可以用一種或多種硬件處理 單元實(shí)現(xiàn),同時(shí),一個(gè)硬件處理單元也可以實(shí)現(xiàn)一個(gè)或多個(gè)功能單元,在此并不限定。各單 元之間的具體操作流程也可以參考實(shí)施例二的相關(guān)步驟,在此不再贅述。參見圖11,為本發(fā)明實(shí)施例給出的一個(gè)上述各單元通過不同設(shè)備實(shí)現(xiàn)的一個(gè)具體 應(yīng)用示意圖如圖11所示,本發(fā)明實(shí)施例中一種流媒體處理系統(tǒng)包括流媒體服務(wù)器51、轉(zhuǎn)碼器 52、碼流存儲(chǔ)服務(wù)器53;其中,流媒體服務(wù)器51包括獲取單元41,轉(zhuǎn)碼控制單元43以及業(yè)務(wù)處理單元45 ; 轉(zhuǎn)碼器包括轉(zhuǎn)碼單元44,碼流存儲(chǔ)服務(wù)器53包括碼流存儲(chǔ)單元42 ;參見圖12,為基于圖11流媒體系統(tǒng)進(jìn)行流媒體處理的方法流程示意圖,包括如下 步驟S701、流媒體服務(wù)器51獲取用戶終端當(dāng)前帶寬;具體的,可以通過獲取單元41來獲取用戶終端當(dāng)前帶寬;S702、流媒體服務(wù)器51根據(jù)用戶終端當(dāng)前帶寬以及預(yù)存儲(chǔ)碼流的碼率,判斷是否 需要轉(zhuǎn)碼;如果是,執(zhí)行步驟S703、S704 ;如果否,執(zhí)行步驟S705 ;具體的,可以通過轉(zhuǎn)碼控制單元來判斷是否轉(zhuǎn)碼;其轉(zhuǎn)碼判斷條件可以參考相關(guān) 實(shí)施例中的判斷條件,在此不再贅述;S703、如果是,則轉(zhuǎn)碼器52進(jìn)行轉(zhuǎn)碼;具體的,轉(zhuǎn)碼器52可以通過轉(zhuǎn)碼單元來實(shí)現(xiàn)轉(zhuǎn)碼,通過選擇碼流存儲(chǔ)服務(wù)器53中 預(yù)存儲(chǔ)碼流中碼率高于用戶終端當(dāng)前帶寬的碼流進(jìn)行轉(zhuǎn)碼轉(zhuǎn)碼,輸出與用戶終端當(dāng)前帶寬 匹配的碼流;其中,碼流存儲(chǔ)服務(wù)器53包括碼流存儲(chǔ)單元42 ;S704、流媒體服務(wù)器51接收轉(zhuǎn)碼器52輸出的碼流,并將其輸出給用戶終端;
具體的,流媒體服務(wù)器可以通過業(yè)務(wù)處理單元接收轉(zhuǎn)碼器輸出的碼流,然后將其 進(jìn)行業(yè)務(wù)處理后輸出給用戶終端;S705、如果否,則選擇碼流存儲(chǔ)服務(wù)器53中選擇預(yù)存儲(chǔ)碼流中小于等于用戶終端 帶寬且碼率最高的碼流輸出給用戶終端;需要說明的是,上述實(shí)施例只是一種具體的實(shí)現(xiàn)形式,在實(shí)際應(yīng)用中,上述流媒體 服務(wù)器也可以是媒體網(wǎng)關(guān),媒體資源服務(wù)器等設(shè)備;上述轉(zhuǎn)碼器或碼流存儲(chǔ)服務(wù)器可以是 獨(dú)立的,也可以是媒體網(wǎng)關(guān)、流媒體服務(wù)器等設(shè)備的一個(gè)功能模塊,其具體實(shí)現(xiàn)形式并不限定。本發(fā)明實(shí)施例通過根據(jù)用戶終端當(dāng)前帶寬以及預(yù)存儲(chǔ)碼流判斷是否轉(zhuǎn)碼,如果 是,選擇預(yù)存儲(chǔ)碼流中碼率高于用戶終端當(dāng)前帶寬的碼流進(jìn)行轉(zhuǎn)碼,輸出與用戶終端當(dāng)前 帶寬匹配的碼流,可以使用戶終端能夠有效地利用帶寬獲取較高質(zhì)量的流媒體,從而提高 了流媒體服務(wù)的質(zhì)量。本領(lǐng)域普通技術(shù)人員可以理解實(shí)現(xiàn)上述實(shí)施例方法中的全部或部分流程,是可以 通過計(jì)算機(jī)程序來指令相關(guān)的硬件來完成,所述的程序可存儲(chǔ)于一計(jì)算機(jī)可讀取存儲(chǔ)介質(zhì) 中,該程序在執(zhí)行時(shí),可包括如上述各方法的實(shí)施例的流程。其中,所述的存儲(chǔ)介質(zhì)可為磁 碟、光盤、只讀存儲(chǔ)記憶體(Read-Only Memory, ROM)或隨機(jī)存儲(chǔ)記憶體(Random Access Memory, RAM)等。上列較佳實(shí)施例,對(duì)本發(fā)明的目的、技術(shù)方案和優(yōu)點(diǎn)進(jìn)行了進(jìn)一步詳細(xì)說明,所應(yīng) 理解的是,以上所述僅為本發(fā)明的較佳實(shí)施例而已,并不用以限制本發(fā)明,凡在本發(fā)明的精 神和原則之內(nèi),所作的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。
權(quán)利要求
1.一種流媒體處理方法,其特征在于,包括如下步驟根據(jù)用戶終端當(dāng)前帶寬以及預(yù)存儲(chǔ)碼流的碼率,判斷是否需要轉(zhuǎn)碼;如果是,選擇所述預(yù)存儲(chǔ)碼流中碼率高于所述終端用戶當(dāng)前帶寬的碼流進(jìn)行轉(zhuǎn)碼,輸 出與所述用戶終端當(dāng)前帶寬匹配的碼流給所述用戶終端。
2.如權(quán)利要求1所述的流媒體處理方法,其特征在于如果否,選擇所述預(yù)存儲(chǔ)碼流中小于等于所述用戶終端帶寬且碼率最高的碼流輸出給 所述用戶終端。
3.如權(quán)利要求1所述的流媒體處理方法,其特征在于,所述根據(jù)用戶終端當(dāng)前帶寬以 及預(yù)存儲(chǔ)碼流的碼率,判斷是否需要轉(zhuǎn)碼包括當(dāng)預(yù)存儲(chǔ)的碼流有多個(gè),且所述用戶終端當(dāng)前帶寬達(dá)到一定的閾值后,判斷需要進(jìn)行 轉(zhuǎn)碼,否則,不進(jìn)行轉(zhuǎn)碼;其中,所述閾值的設(shè)置為固定的,或者通過配置參數(shù)進(jìn)行調(diào)整;或者,當(dāng)預(yù)存儲(chǔ)的碼流只有一個(gè),且碼率大于用戶終端當(dāng)前帶寬時(shí),判斷需要進(jìn)行轉(zhuǎn)碼;當(dāng)預(yù) 存儲(chǔ)的碼流只有一個(gè),且碼率小于或等于用戶終端當(dāng)前帶寬時(shí),判斷不需要進(jìn)行轉(zhuǎn)碼;或者,當(dāng)預(yù)存儲(chǔ)的碼流一個(gè)或多個(gè)時(shí),結(jié)合流媒體處理資源、所述用戶終端性能參數(shù)、用戶網(wǎng) 絡(luò)性能參數(shù)中的一個(gè)或多個(gè)來判斷是否進(jìn)行轉(zhuǎn)碼。
4.如權(quán)利要求1所述的流媒體處理方法,其特征在于,所述根據(jù)所述預(yù)存儲(chǔ)碼流進(jìn)行 轉(zhuǎn)碼,輸出與所述用戶終端當(dāng)前帶寬匹配的碼流給所述用戶終端還包括根據(jù)所述預(yù)存儲(chǔ)碼流中碼率高于所述終端用戶當(dāng)前帶寬的碼流進(jìn)行轉(zhuǎn)碼,輸出與所述 用戶終端當(dāng)前帶寬匹配的碼流給所述用戶終端。
5.一種流媒體處理設(shè)備,其特征在于,包括獲取單元,用于獲取用戶終端當(dāng)前帶寬;轉(zhuǎn)碼控制單元,用于根據(jù)所述用戶終端當(dāng)前帶寬以及預(yù)存儲(chǔ)碼流的碼率判斷是否轉(zhuǎn)碼;業(yè)務(wù)處理單元,用于當(dāng)所述轉(zhuǎn)碼控制單元判斷進(jìn)行轉(zhuǎn)碼后,接收通過選擇所述預(yù)存儲(chǔ) 碼流中碼率高于所述用戶終端當(dāng)前帶寬的碼流進(jìn)行轉(zhuǎn)碼后得到的與用戶終端當(dāng)前帶寬匹 配的碼流,并輸出給所述用戶終端。
6.如權(quán)利要求5所述的流媒體處理設(shè)備,其特征在于,還包括當(dāng)所述轉(zhuǎn)碼控制單元判斷不進(jìn)行轉(zhuǎn)碼時(shí),選擇所述預(yù)存儲(chǔ)碼流中小于等于所述用戶終 端帶寬且碼率最高的碼流輸出給所述用戶終端。
7.如權(quán)利要求5所述的流媒體處理設(shè)備,其特征在于,所述轉(zhuǎn)碼控制單元根據(jù)所述用 戶終端當(dāng)前帶寬以及預(yù)存儲(chǔ)碼流的碼率判斷是否轉(zhuǎn)碼包括當(dāng)預(yù)存儲(chǔ)的碼流有多個(gè),且所述用戶終端當(dāng)前帶寬達(dá)到一定的閾值后,判斷需要進(jìn)行 轉(zhuǎn)碼,否則,不進(jìn)行轉(zhuǎn)碼;其中,所述閾值的設(shè)置為固定的,或者通過配置參數(shù)進(jìn)行調(diào)整;或者,當(dāng)預(yù)存儲(chǔ)的碼流只有一個(gè),且碼率大于用戶終端當(dāng)前帶寬時(shí),判斷需要進(jìn)行轉(zhuǎn)碼;當(dāng)預(yù) 存儲(chǔ)的碼流只有一個(gè),且碼率小于或等于用戶終端當(dāng)前帶寬時(shí),判斷不需要進(jìn)行轉(zhuǎn)碼;或者,根據(jù)所述用戶終端帶寬和所述預(yù)存儲(chǔ)的碼流并結(jié)合流媒體處理資源、所述用戶終端性 能參數(shù)、用戶網(wǎng)絡(luò)性能參數(shù)中的一個(gè)或多個(gè)來判斷是否進(jìn)行轉(zhuǎn)碼。
8.一種流媒體處理系統(tǒng),其特征在于,包括獲取單元,用于獲取用戶終端當(dāng)前帶寬;碼流存儲(chǔ)單元,用于存儲(chǔ)流媒體碼流;轉(zhuǎn)碼控制單元,用于根據(jù)所述用戶終端當(dāng)前帶寬以及所述碼流存儲(chǔ)單元預(yù)存儲(chǔ)碼流的 碼率,判斷是否需要轉(zhuǎn)碼;轉(zhuǎn)碼單元,用于當(dāng)所述轉(zhuǎn)碼判斷單元判斷需要轉(zhuǎn)碼時(shí),選擇所述碼流存儲(chǔ)單元預(yù)存儲(chǔ) 碼流中碼率高于所述用戶終端當(dāng)前帶寬的碼流進(jìn)行轉(zhuǎn)碼,輸出與所述用戶終端當(dāng)前帶寬匹 配的碼流;業(yè)務(wù)處理單元,用于將所述轉(zhuǎn)碼單元輸出的碼流輸出給所述用戶終端。
9.如權(quán)利要求8所述的流媒體系統(tǒng),其特征在于所述業(yè)務(wù)處理單元還用于,當(dāng)所述轉(zhuǎn)碼控制單元判斷不需要轉(zhuǎn)碼時(shí),選擇所述預(yù)存儲(chǔ) 碼流中小于等于所述用戶終端帶寬且碼率最高的碼流輸出給所述用戶終端。
10.如權(quán)利要求8所述的流媒體系統(tǒng),其特征在于所述轉(zhuǎn)碼控制單元根據(jù)所述用戶終端當(dāng)前帶寬以及所述碼流存儲(chǔ)單元預(yù)存儲(chǔ)碼流的 碼率,判斷是否需要轉(zhuǎn)碼的步驟包括當(dāng)預(yù)存儲(chǔ)的碼流有多個(gè),且所述用戶終端當(dāng)前帶寬達(dá)到一定的閾值后,判斷需要進(jìn)行 轉(zhuǎn)碼,否則,不進(jìn)行轉(zhuǎn)碼;其中,所述閾值的設(shè)置為固定的,或者通過配置參數(shù)進(jìn)行調(diào)整;或者,當(dāng)預(yù)存儲(chǔ)的碼流只有一個(gè),且碼率大于用戶終端當(dāng)前帶寬時(shí),判斷需要進(jìn)行轉(zhuǎn)碼;當(dāng)預(yù) 存儲(chǔ)的碼流只有一個(gè),且碼率小于或等于用戶終端當(dāng)前帶寬時(shí),判斷不需要進(jìn)行轉(zhuǎn)碼;或者,根據(jù)所述用戶終端帶寬和所述預(yù)存儲(chǔ)的碼流并結(jié)合流媒體處理資源、所述用戶終端性 能參數(shù)、用戶網(wǎng)絡(luò)性能參數(shù)中的一個(gè)或多個(gè)來判斷是否進(jìn)行轉(zhuǎn)碼。
全文摘要
本發(fā)明實(shí)施例公開了一種流媒體處理方法、設(shè)備和系統(tǒng),其中,所述流媒體處理方法包括如下步驟根據(jù)用戶終端當(dāng)前帶寬以及預(yù)存儲(chǔ)碼流的碼率,判斷是否需要轉(zhuǎn)碼;如果是,選擇所述預(yù)存儲(chǔ)碼流中碼率高于所述終端用戶當(dāng)前帶寬的碼流進(jìn)行轉(zhuǎn)碼,輸出與所述用戶終端當(dāng)前帶寬匹配的碼流給所述用戶終端。本發(fā)明實(shí)施例通過根據(jù)用戶終端當(dāng)前帶寬以及預(yù)存儲(chǔ)碼流判斷是否轉(zhuǎn)碼,如果是,選擇預(yù)存儲(chǔ)碼流中碼率高于用戶終端當(dāng)前帶寬的碼流進(jìn)行轉(zhuǎn)碼,輸出與用戶終端當(dāng)前帶寬匹配的碼流,可以使得用戶終端能夠有效地利用帶寬獲取較高質(zhì)量的流媒體。
文檔編號(hào)H04L29/06GK102118357SQ20091023889
公開日2011年7月6日 申請(qǐng)日期2009年12月31日 優(yōu)先權(quán)日2009年12月31日
發(fā)明者萬木楊, 馮蔚騰, 李瑞華, 王衛(wèi)勤 申請(qǐng)人:華為技術(shù)有限公司