一種基于流媒體選擇碼流分段的方法、播放器和終端的制作方法
【專利摘要】本發(fā)明公開了一種基于流媒體選擇碼流分段的方法,所述方法包括,獲得所述流媒體中對應(yīng)第一時刻的至少兩個分段的每一個分段的分段信息,其中,所述分段信息包括分段質(zhì)量;根據(jù)每一個分段的所述分段質(zhì)量和預(yù)設(shè)質(zhì)量閾值在對應(yīng)所述第一時刻的至少兩個分段中選擇一個初始分段;如果判斷出下載所述初始分段不會導(dǎo)致終端播放異常,則將所述初始分段作為選定的碼流分段。根據(jù)本發(fā)明實(shí)施例的一種基于流媒體選擇碼流分段的方法,使得最終選擇的碼流分段在充分利用帶寬的同時,分段的質(zhì)量更加接近,視頻播放時視頻質(zhì)量更加平滑。本發(fā)明實(shí)施例還公開了一種基于流媒體選擇碼流分段的播放器和終端。
【專利說明】一種基于流媒體選擇碼流分段的方法、播放器和終端
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及通信系統(tǒng)中的視頻通信技術(shù),特別涉及一種基于流媒體選擇碼流分段的方法、播放器和終端。
【背景技術(shù)】
[0002]流媒體技術(shù)是一種在應(yīng)用層中使用HTTP (Hypertext transfer protocol,超文本傳輸協(xié)議)實(shí)現(xiàn)媒體數(shù)據(jù)傳輸?shù)募夹g(shù),該技術(shù)能夠?qū)崿F(xiàn)在下載媒體節(jié)目的同時還可以觀看媒體節(jié)目。為了適應(yīng)終端的多樣性以及用戶所接入的網(wǎng)絡(luò)帶寬的波動性,在提供媒體內(nèi)容的服務(wù)器上針對同一個媒體內(nèi)容會同時存儲有多個的碼流。碼流之間的音視頻編碼參數(shù),碼率或者視頻的分辨率都是不同的,而且每一個碼流都被分割為多個分段,每個分段是可以獨(dú)立播放的。終端可以根據(jù)網(wǎng)絡(luò)帶寬信息請求不同碼率的分段,不同碼率的分段在終端是可以連續(xù)的播放的。
[0003]在現(xiàn)有的技術(shù)中,服務(wù)器會向終端提供媒體內(nèi)容的MPD (media presentationdescription,媒體描述文件),在該文件中會描述每個碼流的碼率,時間等信息,也會描述每個分段的碼率,時間,URL (Uniform/Universal Resource Locator,統(tǒng)一資源定位符)等信息;終端在獲得MPD后,解析該MPD,獲得服務(wù)器中對應(yīng)媒體內(nèi)容所提供的碼流的碼率等信息,終端會根據(jù)終端的網(wǎng)絡(luò)帶寬情況,請求碼率小于當(dāng)前帶寬的的最大碼率的媒體節(jié)目分段;該方法實(shí)現(xiàn)簡單,但是該方法在實(shí)現(xiàn)時僅僅考慮分段碼率不超過帶寬的情況,采用該方法既不能充分的利用帶寬資源,也不能帶給用戶良好的視頻體。
【發(fā)明內(nèi)容】
[0004]有鑒與此,本發(fā)明的實(shí)施例提供了一種基于流媒體選擇碼流分段的方法、播放器和終端,根據(jù)本發(fā)明實(shí)施例的基于流媒體選擇碼流分段的方法、裝置和終端,在充分利用帶寬,保證在緩存不下溢的同時,通過向下調(diào)整高質(zhì)量和/或向上調(diào)整低質(zhì)量分段的質(zhì)量/碼率的方式,使得最終選擇的碼流分段在充分利用帶寬的同時,分段的質(zhì)量更加接近,視頻播放時視頻質(zhì)量更加平滑。
[0005]本發(fā)明第一方面的實(shí)施例公開了一種基于流媒體選擇碼流分段的方法,所述方法包括:獲得所述流媒體中對應(yīng)第一時刻的至少兩個分段的每一個分段的分段信息,其中,所述分段信息包括分段質(zhì)量;根據(jù)每一個分段的所述分段質(zhì)量和預(yù)設(shè)質(zhì)量閾值在對應(yīng)所述第一時刻的至少兩個分段中選擇一個初始分段;如果判斷出下載所述初始分段不會導(dǎo)致終端播放異常,則將所述初始分段作為選定的碼流分段。
[0006]根據(jù)本發(fā)明第一方面實(shí)施例的基于流媒體選擇碼流分段的方法,使得最終選擇的碼流分段在充分利用帶寬的同時,分段的質(zhì)量更加接近,視頻播放時視頻質(zhì)量更加平滑。
[0007]在本發(fā)明第一方面實(shí)施例的一種可能實(shí)現(xiàn)的方式中,所述判斷出下載所述初始分段不會導(dǎo)致終端播放異常包括:獲得終端的緩存參數(shù)信息,所述緩存參數(shù)信息包括預(yù)設(shè)的緩存閾值;如果根據(jù)所述初始分段的分段信息和所述終端的緩存參數(shù)信息判斷出下載所述初始分段不會導(dǎo)致可用的所述終端的緩存小于所述預(yù)設(shè)的緩存閾值,則判斷出下載所述初始分段不會導(dǎo)致終端播放異常。
[0008]結(jié)合上述任意之一實(shí)施例的本發(fā)明第一方面實(shí)施例的第二種可能實(shí)現(xiàn)的方式中,所述根據(jù)每一個分段的所述分段質(zhì)量和質(zhì)量閾值在對應(yīng)所述第一時刻的至少兩個分段中選擇一個初始分段選擇初始分段包括:在對應(yīng)所述第一時刻的全部所述分段中選擇分段質(zhì)量與質(zhì)量閾值的差值的絕對值最小的所述分段作為初始分段。
[0009]結(jié)合上述任意之一實(shí)施例的本發(fā)明第一方面實(shí)施例的第三種可能實(shí)現(xiàn)的方式中,所述分段信息還包括分段時間長度、分段碼率;所述終端的緩存參數(shù)信息還包括緩存中未播放的流媒體的時間長度;在根據(jù)所述初始分段的分段信息和所述終端的緩存參數(shù)信息判斷出下載所述初始分段不會導(dǎo)致所述終端的緩存小于預(yù)設(shè)的緩存閾值之前,所述方法還包括:獲得所述終端下載所述流媒體的可用網(wǎng)絡(luò)帶寬;所述根據(jù)所述初始分段的分段信息和所述終端的緩存參數(shù)信息判斷出下載所述初始分段不會導(dǎo)致所述終端的緩存小于所述預(yù)設(shè)的緩存閾值包括:根據(jù)所述初始分段的分段時間長度和分段碼率以及所述可用網(wǎng)絡(luò)帶寬確定完成所述初始分段下載的時間長度;如果所述終端緩存中未播放的流媒體的時間長度和所述初始分段的分段時間長度之和不小于所述初始分段下載完成的時間長度和所述預(yù)設(shè)的緩存閾值之和,則下載所述初始分段不會導(dǎo)致所述可用的終端緩存小于預(yù)設(shè)的緩存閾值。
[0010]結(jié)合上述任意之一實(shí)施例的本發(fā)明第一方面實(shí)施例的第四種可能實(shí)現(xiàn)的方式中在所述獲得終端的緩存參數(shù)信息之后,所述方法還包括:如果根據(jù)所述初始分段的分段信息和所述終端的緩存參數(shù)信息判斷出下載所述初始分段會導(dǎo)致可用的所述終端的緩存小于預(yù)設(shè)的緩存閾值,則,在對應(yīng)所述第一時刻的全部所述分段中順序選擇分段質(zhì)量比所述初始分段的分段質(zhì)量小的第二分段,將所述第二分段作為更新后的初始分段,重復(fù)上述步驟直至判斷出下載所述更新后的初始分段不會導(dǎo)致可用的所述終端的緩存小于預(yù)設(shè)的緩存閾值,將所述更新后的初始分段作為選定的碼流分段。
[0011]結(jié)合上述任意之一實(shí)施例的本發(fā)明第一方面實(shí)施例的第五種可能實(shí)現(xiàn)的方式中,所述預(yù)設(shè)質(zhì)量閾值的值可以是預(yù)先設(shè)定的;或所述預(yù)設(shè)質(zhì)量閾值的值是根據(jù)所述終端已經(jīng)下載的分段質(zhì)量加權(quán)計(jì)算得到的;或所述預(yù)設(shè)質(zhì)量閾值的值是根據(jù)所述終端已經(jīng)下載的分段質(zhì)量和所述第一時刻分段的全部分段的分段質(zhì)量加權(quán)計(jì)算得到的。
[0012]本發(fā)明第二方面實(shí)施例公開了一種基于流媒體選擇碼流分段的方法,所述方法包括:分別獲得對應(yīng)所述流媒體的第一播放時刻的至少兩個碼流分段的分段信息和對應(yīng)第二播放時刻的至少兩個碼流分段的分段信息,所述第一播放時刻的碼流分段的分段信息和第二播放時刻的碼流分段的分段信息包括分段質(zhì)量;在所述對應(yīng)所述第一播放時刻的碼流分段中選擇第一碼流分段,在對應(yīng)所述第二播放時刻的碼流分段中選擇第二碼流分段,組成第一碼流分段組,其中,所述第一碼流分段組是能夠在終端中連續(xù)播放的碼流分段組;在所述第一碼流分段組中未選定碼流分段的分段中選擇分段質(zhì)量最小的所述碼流分段,在所述分段質(zhì)量最小的碼流分段對應(yīng)的所述第一播放時刻的全部碼流分段中按照分段質(zhì)量從低到高的順序選擇分段質(zhì)量大于所述分段質(zhì)量最小的碼流分段的第三碼流分段,使用所述第三碼流分段替換所述分段質(zhì)量最小的碼流分段的方式更新所述第一碼流分段組,若所述更新后的所述第一碼流分段組是能夠在所述終端中連續(xù)播放的碼流分段組且所述第一播放時刻的全部碼流分段中分段質(zhì)量最大的碼流分段不是所述第三碼流分段,則重復(fù)本步驟直至所述更新后的所述第一碼流分段組是不能夠在所述終端中連續(xù)播放的碼流分段組或所述第三碼流分段是所述第一播放時刻的全部碼流分段中分段質(zhì)量最大的碼流分段;若所述更新后的所述第一碼流分段組是不能夠在所述終端中連續(xù)播放的碼流分段組,則,在所述更新后的所述第一碼流分段組中選擇所述不能連續(xù)播放時刻之前的分段或所述不能連續(xù)播放時刻的分段中分段質(zhì)量最大的碼流分段,如果所述更新后的所述第一碼流分段組中分段質(zhì)量最大的碼流分段是所述第三碼流分段,則,在所述第三碼流分段對應(yīng)的所述第一播放時刻或所述第二播放時刻的全部碼流分段中按照分段質(zhì)量從高到低的順序選擇分段質(zhì)量小于所述第三碼流分段的碼流分段作為所述第一播放時刻或所述第二播放時刻的選定碼流分段;重復(fù)上述步驟直至找到所述第一播時刻和所述第二播放時刻對應(yīng)的選定碼流分段,根據(jù)對應(yīng)所述第一播放時刻的選定碼流分段和對應(yīng)所述第二播放時刻的選定碼流分段得到第二碼流分段組。
[0013]根據(jù)本發(fā)明第二方面實(shí)施例的一種基于流媒體選擇碼流分段的方法,使得最終選擇的碼流分段在充分利用帶寬的同時,分段的質(zhì)量更加接近,視頻播放時視頻質(zhì)量更加平滑。
[0014]在本發(fā)明第二方面實(shí)施例的一種可能實(shí)現(xiàn)的方式中,所述分段信息包括分段時間長度、分段碼率;在所述分別獲得對應(yīng)所述流媒體的第一播放時刻的至少兩個碼流分段的分段信息和對應(yīng)第二播放時刻的至少兩個碼流分段的分段信息之后,所述方法還包括:獲得終端的緩存參數(shù)信息,所述終端的緩存參數(shù)信息包括緩存中未播放的流媒體的時間長度;獲得所述終端下載所述流媒體的可用網(wǎng)絡(luò)帶寬;判斷所述第一碼流分段組是能夠在終端中連續(xù)播放的碼流分段組包括:根據(jù)所述第一碼流分段組中所述第一碼流分段的分段時間長度和分段碼率以及所述可用網(wǎng)絡(luò)帶寬確定所述第一碼流分段下載完成的時間長度;根據(jù)所述第一碼流分段組中所述第二碼流分段的分段時間長度和分段碼率以及所述可用網(wǎng)絡(luò)帶寬確定所述第二碼流分段下載完成的時間長度;如果所述終端緩存中未播放的流媒體的時間長度和所述第一分段的分段時間長度之和不小于所述第一碼流分段下載完成的時間長度和所述預(yù)設(shè)的緩存閾值之和,且所述終端緩存中未播放的流媒體的時間長度、所述第一分段的分段時間長度、所述第二分段的分段時間長度之和不小于所述第一碼流分段下載完成的時間長度、所述第二碼流分段下載完成的時間長度、所述預(yù)設(shè)的緩存閾值之和;則所述第一碼率分段組是能夠在所述終端中連續(xù)播放的碼流分段組。
[0015]結(jié)合上述任意之一實(shí)施例的本發(fā)明第二方面實(shí)施例的第二種可能實(shí)現(xiàn)的方式中,在所述若所述更新后的所述第一碼流分段組是不能夠在所述終端中連續(xù)播放的碼流分段組之后,所述方法還包括:如果所述更新后的所述第一碼流分段組中所述不能連續(xù)播放時刻之前的分段或所述不能連續(xù)播放時刻的分段中分段質(zhì)量最大的碼流分段不是所述第三碼流分段,則,在對應(yīng)所述第二播放時刻的全部碼流分段中按照分段質(zhì)量從高到低的方式順序選擇分段質(zhì)量小于所述更新后的所述第一碼流分段組中對應(yīng)所述第二播放時刻碼流分段的第四碼流分段,使用所述第四碼流分段替換更新后的所述第一碼流分段組中對應(yīng)所述第二播放時刻碼流分段的方式更新所述更新后的所述第一碼流分段組,若所述更新后的所述第一碼流分段組是能夠在所述終端中連續(xù)播放的碼流分段組,則在更新后的所述第一碼流分段組中未選定碼流分段的分段中選擇分段質(zhì)量最小的碼流分段,在所述分段質(zhì)量最小的碼流分段對應(yīng)的所述第一播放時刻或第二播放時刻的全部碼流分段中按照分段質(zhì)量從高到低的順序選擇分段質(zhì)量大于所述分段質(zhì)量最小的碼流分段的作為更新后的第三碼流分段,根據(jù)所述更新后的第三碼流分段更新所述第一碼流分段組,則重復(fù)本步驟直至所述更新后的所述第一碼流分段組是不能夠在所述終端中連續(xù)播放的碼流分段組或所述更新后的第三碼流分段是其對應(yīng)的所述第一播放時刻或所述第二播放時刻的全部碼流分段中分段質(zhì)量最大的碼流分段,并重復(fù)上述步驟直至所述更新后的第三碼流分段是所述更新后的所述第一碼流分段組中分段質(zhì)量最大的碼流分段或所述第四碼流分段是其對應(yīng)的所述第一播放時刻或所述第二播放時刻的全部碼流分段中分段質(zhì)量最小的碼流分段。
[0016]結(jié)合上述任意之一實(shí)施例的本發(fā)明第二方面實(shí)施例的第三種可能實(shí)現(xiàn)的方式中,在所述根據(jù)對應(yīng)所述第一播放時刻的選定碼流分段和對應(yīng)所述第二播放時刻的選定碼流分段得到第二碼流分段組之后,所述方法還包括:根據(jù)所述第二碼流分段組得到所述第二碼流分段組中對應(yīng)所述第一播放時刻的碼流分段的分段質(zhì)量;若所述第二碼流分段組中對應(yīng)所述第一播放時刻的碼流分段的分段質(zhì)量大于預(yù)設(shè)的質(zhì)量閾值,則在對應(yīng)的所述第一播放時刻的全部碼流分段中順序選擇分段質(zhì)量小于對應(yīng)所述第一播放時刻的選定碼流分段的分段質(zhì)量的第五碼流分段,將所述第五碼流分段作為對應(yīng)所述第一播放時刻的碼流分段更新所述第二碼流分段組,重復(fù)本步驟直至所述第二碼流分段組中對應(yīng)所述第一播放時刻的碼流分段的分段質(zhì)量不大于預(yù)設(shè)的質(zhì)量閾值;輸出更新后的所述第二碼流分段組。
[0017]結(jié)合上述任意之一實(shí)施例的本發(fā)明第二方面實(shí)施例的第四種可能實(shí)現(xiàn)的方式中所述質(zhì)量閾值可以是預(yù)先設(shè)定的;或所述質(zhì)量閾值是根據(jù)所述終端已經(jīng)下載的分段質(zhì)量加權(quán)計(jì)算得到的;或所述質(zhì)量閾值是根據(jù)所述終端已經(jīng)下載的分段質(zhì)量和所述第一時刻分段的全部分段的分段質(zhì)量加權(quán)計(jì)算得到的。本發(fā)明第三方面實(shí)施例公開了一種基于流媒體選擇碼流分段的播放器,其特征在于,所述播放器包括:接收模塊,所述接收模塊用于獲得所述流媒體中對應(yīng)第一時刻的至少兩個分段的每一個分段的分段信息,其中,所述分段信息包括分段質(zhì)量;初始分段選擇模塊,用于根據(jù)所述接收模塊得到的每一個分段的所述分段質(zhì)量和預(yù)設(shè)質(zhì)量閾值在對應(yīng)所述第一時刻的至少兩個分段中選擇一個初始分段;分段選定模塊,如果判斷出下載所述初始分段不會導(dǎo)致終端播放異常,則所述分段選定模塊用于將所述初始分段選擇模塊得到的所述初始分段作為選定的碼流分段。
[0018]根據(jù)本發(fā)明第三方面實(shí)施例的基于流媒體選擇碼流分段的播放器,使得最終選擇的碼流分段在充分利用帶寬的同時,分段的質(zhì)量更加接近,視頻播放時視頻質(zhì)量更加平滑。
[0019]在本發(fā)明第三方面實(shí)施例的一種可能實(shí)現(xiàn)的方式中,所述接收模塊還用于獲得終端的緩存參數(shù)信息,所述緩存參數(shù)信息包括預(yù)設(shè)的緩存閾值;如果根據(jù)所述接收模塊接收的所述初始分段的分段信息和所述終端的緩存參數(shù)信息判斷出下載所述初始分段不會導(dǎo)致可用的所述終端的緩存小于所述預(yù)設(shè)的緩存閾值,則判斷出下載所述初始分段不會導(dǎo)致終端播放異常。
[0020]結(jié)合上述任意之一實(shí)施例的本發(fā)明第三方面實(shí)施例的第二種可能實(shí)現(xiàn)的方式中,所述初始分段選擇模塊具體用于:在對應(yīng)所述第一時刻的全部所述分段中選擇分段質(zhì)量與質(zhì)量閾值的差值的絕對值最小的所述分段作為初始分段。
[0021]結(jié)合上述任意之一實(shí)施例的本發(fā)明第三方面實(shí)施例的第三種可能實(shí)現(xiàn)的方式中,所述分段信息還包括分段時間長度、分段碼率;所述終端的緩存參數(shù)信息還包括緩存中未播放的流媒體的時間長度;所述接收模塊還用于獲得所述終端下載所述流媒體的可用網(wǎng)絡(luò)帶寬;所述碼流選定模塊具體用于根據(jù)所述初始分段的分段時間長度和分段碼率以及所述可用網(wǎng)絡(luò)帶寬確定完成所述初始分段下載的時間長度;并判斷所述終端緩存中未播放的流媒體的時間長度和所述初始分段的分段時間長度之和不小于所述初始分段下載完成的時間長度和所述預(yù)設(shè)的緩存閾值之和,則認(rèn)為下載所述初始分段不會導(dǎo)致所述可用的終端緩存小于預(yù)設(shè)的緩存閾值,將所述初始分段作為選定的碼流分段。
[0022]結(jié)合上述任意之一實(shí)施例的本發(fā)明第三方面實(shí)施例的第四種可能實(shí)現(xiàn)的方式中,如果根據(jù)所述初始分段的分段信息和所述終端的緩存參數(shù)信息判斷出下載所述初始分段會導(dǎo)致可用的所述終端的緩存小于預(yù)設(shè)的緩存閾值,則,所述碼流選定模塊還具體用于在對應(yīng)所述第一時刻的全部所述分段中按照分段質(zhì)量降序的方式選擇分段質(zhì)量比所述初始分段的分段質(zhì)量小的第二分段,將所述第二分段作為更新后的初始分段,重復(fù)上述步驟直至判斷出下載所述更新后的初始分段不會導(dǎo)致可用的所述終端的緩存小于預(yù)設(shè)的緩存閾值,將所述更新后的初始分段作為選定的碼流分段。
[0023]本發(fā)明第四方面的實(shí)施例公開了一種基于流媒體選擇碼流分段的終端,其特征在于,所述終端包括:接收器,處理器;所述接收器用于獲得所述流媒體中對應(yīng)第一時刻的至少兩個分段的每一個分段的分段信息,其中,所述分段信息包括分段質(zhì)量;所述處理器用于根據(jù)所述接收器得到的每一個分段的所述分段質(zhì)量和預(yù)設(shè)質(zhì)量閾值在對應(yīng)所述第一時刻的至少兩個分段中選擇一個初始分段;如果判斷出下載所述初始分段不會導(dǎo)致終端播放異常,則所述處理器還用于將所述初始分段選擇模塊得到的所述初始分段作為選定的碼流分段。
[0024]根據(jù)本發(fā)明第四方面實(shí)施例的基于流媒體選擇碼流分段的終端,使得最終選擇的碼流分段在充分利用帶寬的同時,分段的質(zhì)量更加接近,視頻播放時視頻質(zhì)量更加平滑。
[0025]在本發(fā)明第四方面實(shí)施例的一種可能實(shí)現(xiàn)的方式中,所述接收器還用于獲得終端的緩存參數(shù)信息,所述緩存參數(shù)信息包括預(yù)設(shè)的緩存閾值;所述處理器還用于如果根據(jù)所述接收器接收的所述初始分段的分段信息和所述終端的緩存參數(shù)信息判斷出下載所述初始分段不會導(dǎo)致可用的所述終端的緩存小于所述預(yù)設(shè)的緩存閾值,則判斷出下載所述初始分段不會導(dǎo)致終端播放異常。
[0026]結(jié)合上述任意之一實(shí)施例的本發(fā)明第四方面實(shí)施例的第二種可能實(shí)現(xiàn)的方式中,所述分段信息還包括分段時間長度、分段碼率;所述終端的緩存參數(shù)信息還包括緩存中未播放的流媒體的時間長度;所述接收器還用于獲得所述終端下載所述流媒體的可用網(wǎng)絡(luò)帶寬;所述處理器還具體用于在對應(yīng)所述第一時刻的全部所述分段中選擇分段質(zhì)量與質(zhì)量閾值的差值的絕對值最小的所述分段作為初始分段;根據(jù)所述初始分段的分段時間長度和分段碼率以及所述可用網(wǎng)絡(luò)帶寬確定完成所述初始分段下載的時間長度;并判斷所述終端緩存中未播放的流媒體的時間長度和所述初始分段的分段時間長度之和不小于所述初始分段下載完成的時間長度和所述預(yù)設(shè)的緩存閾值之和,則認(rèn)為下載所述初始分段不會導(dǎo)致所述可用的終端緩存小于預(yù)設(shè)的緩存閾值,將所述初始分段作為選定的碼流分段。
[0027]結(jié)合上述任意之一實(shí)施例的本發(fā)明第四方面實(shí)施例的第三種可能實(shí)現(xiàn)的方式中所述處理器還用于如果根據(jù)所述初始分段的分段信息和所述終端的緩存參數(shù)信息判斷出下載所述初始分段會導(dǎo)致可用的所述終端的緩存小于預(yù)設(shè)的緩存閾值,則,所述碼流選定模塊還具體用于在對應(yīng)所述第一時刻的全部所述分段中按照分段質(zhì)量降序的方式選擇分段質(zhì)量比所述初始分段的分段質(zhì)量小的第二分段,將所述第二分段作為更新后的初始分段,重復(fù)上述步驟直至判斷出下載所述更新后的初始分段不會導(dǎo)致可用的所述終端的緩存小于預(yù)設(shè)的緩存閾值,將所述更新后的初始分段作為選定的碼流分段。
【專利附圖】
【附圖說明】
[0028]為了更清楚地說明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實(shí)施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動性的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
[0029]圖1為本發(fā)明第一方面實(shí)施例的一種基于流媒體選擇碼流分段的方法的流程圖。
[0030]圖2為本發(fā)明第一方面實(shí)施例的一種基于流媒體選擇碼流分段的方法的另一種流程圖。
[0031]圖3為本發(fā)明第二方面實(shí)施例的一種基于流媒體選擇碼流分段的方法的流程圖。
[0032]圖4為本發(fā)明第三方面實(shí)施例的一種基于流媒體選擇碼流分段的播放器的結(jié)構(gòu)示意圖。
[0033]圖5為本發(fā)明第四方面實(shí)施例的一種基于流媒體選擇碼流分段的終端的結(jié)構(gòu)示意圖。
【具體實(shí)施方式】
[0034]下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有作出創(chuàng)造性勞動前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
[0035]下面結(jié)合圖1描述根據(jù)本發(fā)明實(shí)施例的一種基于流媒體選擇碼流分段的方法,如圖1所示,所述方法包括:
[0036]Sll:獲得所述流媒體中對應(yīng)第一時刻的至少兩個分段的每一個分段的分段信息,其中,所述分段信息包括分段質(zhì)量。
[0037]S12:根據(jù)每一個分段的所述分段質(zhì)量和預(yù)設(shè)質(zhì)量閾值在對應(yīng)所述第一時刻的至少兩個分段中選擇一個初始分段。
[0038]S13:如果判斷出下載所述初始分段不會導(dǎo)致終端播放異常,則將所述初始分段作為選定的碼流分段。
[0039]根據(jù)本發(fā)明實(shí)施例的基于流媒體選擇碼流分段的方法,使得最終選擇的碼流分段在充分利用帶寬的同時,分段的質(zhì)量更加接近,視頻播放時視頻質(zhì)量更加平滑。
[0040]下面結(jié)合圖2描述根據(jù)本發(fā)明實(shí)施例的一種基于流媒體選擇碼流分段的方法,如圖2所示,所述方法包括:
[0041]S21:獲取分段信息。
[0042]在本發(fā)明的一個實(shí)施例中,終端通過解析MPD (media presentationdescription,媒體描述文件)信息的方式,獲取節(jié)目的碼流的分段Fi j的信息,分段時長信息Dij,分段的碼率信息Ri j,以及分段的質(zhì)量信息Qij ;Fij表示碼流i的第j個分段,Dij表示分段Fij的播放的時間長度,Rij是分段的碼率信息,Qij是分段的質(zhì)量信息,該信息可以是分段的 PSNR (Peak Signal to Noise Ratio,峰值信噪比)值,SIMM (StructuralSIMilarity,結(jié)構(gòu)相似性),MOS (MeanOpinionScore,平均意見得分)或者其他的主客觀質(zhì)量數(shù)據(jù)或者質(zhì)量分級信息??梢岳斫獾氖?,下文所述的分段質(zhì)量的大小指的是這些質(zhì)量數(shù)據(jù)或質(zhì)量分級信息表示的分段質(zhì)量的結(jié)果,而不是具體指這些質(zhì)量數(shù)據(jù)或質(zhì)量分級信息的數(shù)值大??;i,j是大于O的整數(shù)。為了清楚的描述獲取到的分段信息,我們在這里給出一組數(shù)據(jù),具體如下表所示。表格中碼率的單位為(kbps),PSNR的單位為(db),分段時長的單位為(S),其中 i = 1,2,3, j = 1,2,30
[0043]
【權(quán)利要求】
1.一種基于流媒體選擇碼流分段的方法,其特征在于,所述方法包括: 獲得所述流媒體中對應(yīng)第一時刻的至少兩個分段的每一個分段的分段信息,其中,所述分段信息包括分段質(zhì)量; 根據(jù)每一個分段的所述分段質(zhì)量和預(yù)設(shè)質(zhì)量閾值在對應(yīng)所述第一時刻的至少兩個分段中選擇一個初始分段; 如果判斷出下載所述初始分段不會導(dǎo)致終端播放異常,則將所述初始分段作為選定的碼流分段。
2.如權(quán)利要求1所述的選擇碼流分段的方法,其特征在于,所述判斷出下載所述初始分段不會導(dǎo)致終端播放異常包括: 獲得終端的緩存參數(shù)信息,所述緩存參數(shù)信息包括預(yù)設(shè)的緩存閾值; 如果根據(jù)所述初始分段的分段信息和所述終端的緩存參數(shù)信息判斷出下載所述初始分段不會導(dǎo)致可用的所述終端的緩存小于所述預(yù)設(shè)的緩存閾值,則判斷出下載所述初始分段不會導(dǎo)致終端播放異常。
3.如權(quán)利要求1或2所述的選擇碼流分段的方法,其特征在于,所述根據(jù)每一個分段的所述分段質(zhì)量和質(zhì)量閾值在對應(yīng)所述第一時刻的至少兩個分段中選擇一個初始分段選擇初始分段包括: 在對應(yīng)所述第一時刻的全部所述分段中選擇分段質(zhì)量與質(zhì)量閾值的差值的絕對值最小的所述分段作為初始分 段。
4.如權(quán)利要求2或3所述的選擇碼流分段的方法,其特征在于,所述分段信息還包括分段時間長度、分段碼率;所述終端的緩存參數(shù)信息還包括緩存中未播放的流媒體的時間長度;在根據(jù)所述初始分段的分段信息和所述終端的緩存參數(shù)信息判斷出下載所述初始分段不會導(dǎo)致所述終端的緩存小于預(yù)設(shè)的緩存閾值之前,所述方法還包括: 獲得所述終端下載所述流媒體的可用網(wǎng)絡(luò)帶寬; 所述根據(jù)所述初始分段的分段信息和所述終端的緩存參數(shù)信息判斷出下載所述初始分段不會導(dǎo)致所述終端的緩存小于所述預(yù)設(shè)的緩存閾值包括: 根據(jù)所述初始分段的分段時間長度和分段碼率以及所述可用網(wǎng)絡(luò)帶寬確定完成所述初始分段下載的時間長度; 如果所述終端緩存中未播放的流媒體的時間長度和所述初始分段的分段時間長度之和不小于所述初始分段下載完成的時間長度和所述預(yù)設(shè)的緩存閾值之和,則下載所述初始分段不會導(dǎo)致所述可用的終端緩存小于預(yù)設(shè)的緩存閾值。
5.如權(quán)利要求2-4任意之一所述的選擇碼流分段的方法,其特征在于,在所述獲得終端的緩存參數(shù)信息之后,所述方法還包括: 如果根據(jù)所述初始分段的分段信息和所述終端的緩存參數(shù)信息判斷出下載所述初始分段會導(dǎo)致可用的所述終端的緩存小于預(yù)設(shè)的緩存閾值,則,在對應(yīng)所述第一時刻的全部所述分段中順序選擇分段質(zhì)量比所述初始分段的分段質(zhì)量小的第二分段,將所述第二分段作為更新后的初始分段,重復(fù)上述步驟直至判斷出下載所述更新后的初始分段不會導(dǎo)致可用的所述終端的緩存小于預(yù)設(shè)的緩存閾值,將所述更新后的初始分段作為選定的碼流分段。
6.如權(quán)利要求1-5任意之一所述的選擇碼流分段的方法,其特征在于:所述預(yù)設(shè)質(zhì)量閾值的值可以是預(yù)先設(shè)定的;或 所述預(yù)設(shè)質(zhì)量閾值的值是根據(jù)所述終端已經(jīng)下載的分段質(zhì)量加權(quán)計(jì)算得到的;或所述預(yù)設(shè)質(zhì)量閾值的值是根據(jù)所述終端已經(jīng)下載的分段質(zhì)量和所述第一時刻分段的全部分段的分段質(zhì)量加權(quán)計(jì)算得到的。
7.一種基于流媒體選擇碼流分段的方法,其特征在于,所述方法包括: 分別獲得對應(yīng)所述流媒體的第一播放時刻的至少兩個碼流分段的分段信息和對應(yīng)第二播放時刻的至少兩個碼流分段的分段信息,所述第一播放時刻的碼流分段的分段信息和第二播放時刻的碼流分段的分段信息包括分段質(zhì)量; 在所述對應(yīng)所述第一播放時刻的碼流分段中選擇第一碼流分段,在對應(yīng)所述第二播放時刻的碼流分段中選擇第二碼流分段,組成第一碼流分段組,其中,所述第一碼流分段組是能夠在終端中連續(xù)播放的碼流分段組; 在所述第一碼流分段組中未選定碼流分段的分段中選擇分段質(zhì)量最小的所述碼流分段,在所述分段質(zhì)量最小的碼流分段對應(yīng)的所述第一播放時刻的全部碼流分段中按照分段質(zhì)量從低到高的順序選擇分段質(zhì)量大于所述分段質(zhì)量最小的碼流分段的第三碼流分段,使用所述第三碼流分段替換所述分段質(zhì)量最小的碼流分段的方式更新所述第一碼流分段組,若所述更新后的所述第一碼流分段組是能夠在所述終端中連續(xù)播放的碼流分段組且所述第一播放時刻的全部碼流分段中分段質(zhì)量最大的碼流分段不是所述第三碼流分段,則重復(fù)本步驟直至所述更新后的所述第一碼流分段組是不能夠在所述終端中連續(xù)播放的碼流分段組或所述第三碼流分段是所述第一播放時刻的全部碼流分段中分段質(zhì)量最大的碼流分段; 若所述更新后的所述第一碼流分段組是不能夠在所述終端中連續(xù)播放的碼流分段組,貝U,在所述更新后的所述第一碼流分段組中選擇所述不能連續(xù)播放時刻之前的分段或所述不能連續(xù)播放時刻的分段中質(zhì)量最大的碼流分段,如果所述更新后的所述第一碼流分段組中分段質(zhì)量最大的碼流分段是所述第三碼流分段,則,在所述第三碼流分段對應(yīng)的所述第一播放時刻或所述第二播放時刻的全部碼流分段中按照分段質(zhì)量從高到低的順序選擇分段質(zhì)量小于所述第三碼流分段的碼流分段作為所述第一播放時刻或所述第二播放時刻的選定碼流分段;重復(fù)上述步驟直至找到所述第一播時刻和所述第二播放時刻對應(yīng)的選定碼流分段,根據(jù)對應(yīng)所述第一播放時刻的選定碼流分段和對應(yīng)所述第二播放時刻的選定碼流分段得到第二碼流分段組。
8.如權(quán)利要求7所述的選擇碼流分段的方法,其特征在于,所述分段信息包括分段時間長度、分段碼率;在所述分別獲得對應(yīng)所述流媒體的第一播放時刻的至少兩個碼流分段的分段信息和對應(yīng)第二播放時刻的至少兩個碼流分段的分段信息之后,所述方法還包括: 獲得終端的緩存參數(shù)信息,所述終端的緩存參數(shù)信息包括緩存中未播放的流媒體的時間長度; 獲得所述終端下載所述流媒體的可用網(wǎng)絡(luò)帶寬; 判斷所述第一碼流分段組是能夠在終端中連續(xù)播放的碼流分段組包括: 根據(jù)所述第一碼流分段組中所述第一碼流分段的分段時間長度和分段碼率以及所述可用網(wǎng)絡(luò)帶寬確定所述第一碼流分段下載完成的時間長度; 根據(jù)所述第一碼流分段組中所述第二碼流分段的分段時間長度和分段碼率以及所述可用網(wǎng)絡(luò)帶寬確定所述第二碼流分段下載完成的時間長度; 如果所述終端緩存中未播放的流媒體的時間長度和所述第一分段的分段時間長度之和不小于所述第一碼流分段下載完成的時間長度和所述預(yù)設(shè)的緩存閾值之和,且 所述終端緩存中未播放的流媒體的時間長度、所述第一分段的分段時間長度、所述第二分段的分段時間長度之和不小于所述第一碼流分段下載完成的時間長度、所述第二碼流分段下載完成的時間長度、所述預(yù)設(shè)的緩存閾值之和;則所述第一碼率分段組是能夠在所述終端中連續(xù)播放的碼流分段組。
9.如權(quán)利要求7或8所述的選擇碼流分段的方法,其特征在于,在所述若所述更新后的所述第一碼流分段組是不能夠在所述終端中連續(xù)播放的碼流分段組之后,所述方法還包括:如果所述更新后的所述第一碼流分段組中所述不能連續(xù)播放時刻之前的分段或所述不能連續(xù)播放時刻的分段的分段質(zhì)量最大的碼流分段不是所述第三碼流分段,則,在對應(yīng)所述第二播放時刻的全部碼流分段中按照分段質(zhì)量從高到低的方式順序選擇分段質(zhì)量小于所述更新后的所述第一碼流分段組中對應(yīng)所述第二播放時刻碼流分段的第四碼流分段,使用所述第四碼流分段替換更新后的所述第一碼流分段組中對應(yīng)所述第二播放時刻碼流分段的方式更新所述更新后的所述第一碼流分段組,若所述更新后的所述第一碼流分段組是能夠在所述終端中連續(xù)播放的碼流分段組,則在更新后的所述第一碼流分段組中未選定碼流分段的分段中選擇分段質(zhì)量最小的碼流分段,在所述分段質(zhì)量最小的碼流分段對應(yīng)的所述第一播放時刻或第二播放時刻的全部碼流分段中按照分段質(zhì)量從高到低的順序選擇分段質(zhì)量大于所述分段質(zhì)量最小的碼流分段的作為更新后的第三碼流分段,根據(jù)所述更新后的第三碼流分段更新所述第一碼流分段組,則重復(fù)本步驟直至所述更新后的所述第一碼流分段組是不能夠在所述終端中連續(xù)播放的碼流分段組或所述更新后的第三碼流分段是其對應(yīng)的所述第一播放時刻或 所述第二播放時刻的全部碼流分段中分段質(zhì)量最大的碼流分段,并 重復(fù)上述步驟直至所述更新后的第三碼流分段是所述更新后的所述第一碼流分段組中分段質(zhì)量最大的碼流分段或所述第四碼流分段是其對應(yīng)的所述第一播放時刻或所述第二播放時刻的全部碼流分段中分段質(zhì)量最小的碼流分段。
10.如權(quán)利要求7-9任意一項(xiàng)所述的選擇碼流分段的方法,其特征在于,在所述根據(jù)對應(yīng)所述第一播放時刻的選定碼流分段和對應(yīng)所述第二播放時刻的選定碼流分段得到第二碼流分段組之后,所述方法還包括: 根據(jù)所述第二碼流分段組得到所述第二碼流分段組中對應(yīng)所述第一播放時刻的碼流分段的分段質(zhì)量; 若所述第二碼流分段組中對應(yīng)所述第一播放時刻的碼流分段的分段質(zhì)量大于預(yù)設(shè)的質(zhì)量閾值,則在對應(yīng)的所述第一播放時刻的全部碼流分段中順序選擇分段質(zhì)量小于對應(yīng)所述第一播放時刻的選定碼流分段的分段質(zhì)量的第五碼流分段,將所述第五碼流分段作為對應(yīng)所述第一播放時刻的碼流分段更新所述第二碼流分段組,重復(fù)本步驟直至所述第二碼流分段組中對應(yīng)所述第一播放時刻的碼流分段的分段質(zhì)量不大于預(yù)設(shè)的質(zhì)量閾值; 輸出更新后的所述第二碼流分段組。
11.如權(quán)利要求10所述的選擇碼流分段的方法,其特征在于, 所述質(zhì)量閾值可以是預(yù)先設(shè)定的;或所述質(zhì)量閾值是根據(jù)所述終端已經(jīng)下載的分段質(zhì)量加權(quán)計(jì)算得到的;或 所述質(zhì)量閾值是根據(jù)所述終端已經(jīng)下載的分段質(zhì)量和所述第一時刻分段的全部分段的分段質(zhì)量加權(quán)計(jì)算得到的。
12.一種基于流媒體選擇碼流分段的播放器,其特征在于,所述播放器包括:接收模塊,所述接收模塊用于獲得所述流媒體中對應(yīng)第一時刻的至少兩個分段的每一個分段的分段信息,其中,所述分段信息包括分段質(zhì)量; 初始分段選擇模塊,用于根據(jù)所述接收模塊得到的每一個分段的所述分段質(zhì)量和預(yù)設(shè)質(zhì)量閾值在對應(yīng)所述第一時刻的至少兩個分段中選擇一個初始分段; 分段選定模塊,如果判斷出下載所述初始分段不會導(dǎo)致終端播放異常,則所述分段選定模塊用于將所述初始分段選擇模塊得到的所述初始分段作為選定的碼流分段。
13.如權(quán)利要求12所述的選擇碼流分段的播放器,其特征在于,所述接收模塊還用于獲得終端的緩存參數(shù)信息,所述緩存參數(shù)信息包括預(yù)設(shè)的緩存閾值;如果根據(jù)所述接收模塊接收的所述初始分段的分段信息和所述終端的緩存參數(shù)信息判斷出下載所述初始分段不會導(dǎo)致可用的所述終端的緩存小于所述預(yù)設(shè)的緩存閾值,則判斷出下載所述初始分段不會導(dǎo)致終端播放異常。
14.如權(quán)利要求12或13所述的選擇碼流分段的播放器,其特征在于,所述初始分段選擇模塊具體用于:在對應(yīng)所述第一時刻的全部所述分段中選擇分段質(zhì)量與質(zhì)量閾值的差值的絕對值最小的所述分段作為初始分段。
15.如權(quán)利要求13或14所述的選擇碼流分段的播放器,其特征在于,所述分段信息還包括分段時間長度、分段碼率;所述終端的緩存參數(shù)信息還包括緩存中未播放的流媒體的時間長度; 所述接收模塊還用于獲得所述終端下載所述流媒體的可用網(wǎng)絡(luò)帶寬; 所述碼流選定模塊具體用于根據(jù)所述初始分段的分段時間長度和分段碼率以及所述可用網(wǎng)絡(luò)帶寬確定完成所述初始分段下載的時間長度;并判斷所述終端緩存中未播放的流媒體的時間長度和所述初始分段的分段時間長度之和不小于所述初始分段下載完成的時間長度和所述預(yù)設(shè)的緩存閾值之和,則認(rèn)為下載所述初始分段不會導(dǎo)致所述可用的終端緩存小于預(yù)設(shè)的緩存閾值,將所述初始分段作為選定的碼流分段。
16.如權(quán)利要求13-15任意之一所述的選擇碼流分段的播放器,其特征在于,如果根據(jù)所述初始分段的分段信息和所述終端的緩存參數(shù)信息判斷出下載所述初始分段會導(dǎo)致可用的所述終端的緩存小于預(yù)設(shè)的緩存閾值,則,所述碼流選定模塊還具體用于在對應(yīng)所述第一時刻的全部所述分段中按照分段質(zhì)量降序的方式選擇分段質(zhì)量比所述初始分段的分段質(zhì)量小的第二分段,將所述第二分段作為更新后的初始分段,重復(fù)上述步驟直至判斷出下載所述更新后的初始分段不會導(dǎo)致可用的所述終端的緩存小于預(yù)設(shè)的緩存閾值,將所述更新后的初始分段作為選定的碼流分段。
17.一種基于流媒體選擇碼流分段的終端,其特征在于,所述終端包括: 接收器,處理器; 所述接收器用于獲得所述流媒體中對應(yīng)第一時刻的至少兩個分段的每一個分段的分段信息,其中,所述分段信息包括分段質(zhì)量; 所述處理器用于根據(jù)所述接收器得到的每一個分段的所述分段質(zhì)量和預(yù)設(shè)質(zhì)量閾值在對應(yīng)所述第一時刻的至少兩個分段中選擇一個初始分段;如果判斷出下載所述初始分段不會導(dǎo)致終端播放異常,則所述處理器還用于將所述初始分段選擇模塊得到的所述初始分段作為選定的碼流分段。
18.如權(quán)利要求17所述的選擇碼流分段的終端,其特征在于,所述接收器還用于獲得終端的緩存參數(shù)信息,所述緩存參數(shù)信息包括預(yù)設(shè)的緩存閾值;所述處理器還用于如果根據(jù)所述接收器接收的所述初始分段的分段信息和所述終端的緩存參數(shù)信息判斷出下載所述初始分段不會導(dǎo)致可用的所述終端的緩存小于所述預(yù)設(shè)的緩存閾值,則判斷出下載所述初始分段不會導(dǎo)致終端播放異常。
19.如權(quán)利要求18所述的選擇碼流分段的終端,其特征在于,所述分段信息還包括分段時間長度、分段碼率;所述終端的緩存參數(shù)信息還包括緩存中未播放的流媒體的時間長度; 所述接收器還用于獲得所述終端下載所述流媒體的可用網(wǎng)絡(luò)帶寬; 所述處理器還具體用于在對應(yīng)所述第一時刻的全部所述分段中選擇分段質(zhì)量與質(zhì)量閾值的差值的絕對值最小的所述分段作為初始分段;根據(jù)所述初始分段的分段時間長度和分段碼率以及所述可用網(wǎng)絡(luò)帶寬確定完成所述初始分段下載的時間長度;并判斷所述終端緩存中未播放的流媒體的時間長度和所述初始分段的分段時間長度之和不小于所述初始分段下載完成的時間長度和所述預(yù)設(shè)的緩存閾值之和,則認(rèn)為下載所述初始分段不會導(dǎo)致所述可用的終端緩存小于預(yù)設(shè)的緩存閾值,將所述初始分段作為選定的碼流分段。
20.如權(quán)利要求18或19所述的選擇碼流分段的終端,其特征在于,所述處理器還用于如果根據(jù)所述初始分 段的分段信息和所述終端的緩存參數(shù)信息判斷出下載所述初始分段會導(dǎo)致可用的所述終端的緩存小于預(yù)設(shè)的緩存閾值,則,所述碼流選定模塊還具體用于在對應(yīng)所述第一時刻的全部所述分段中按照分段質(zhì)量降序的方式選擇分段質(zhì)量比所述初始分段的分段質(zhì)量小的第二分段,將所述第二分段作為更新后的初始分段,重復(fù)上述步驟直至判斷出下載所述更新后的初始分段不會導(dǎo)致可用的所述終端的緩存小于預(yù)設(shè)的緩存閾值,將所述更新后的初始分段作為選定的碼流分段。
【文檔編號】H04N21/647GK103929684SQ201310012242
【公開日】2014年7月16日 申請日期:2013年1月14日 優(yōu)先權(quán)日:2013年1月14日
【發(fā)明者】邸佩云, 劉欣, 許陽坡 申請人:華為技術(shù)有限公司