播放視頻流媒體的方法和裝置制造方法
【專利摘要】本發(fā)明提供了一種播放視頻流媒體的方法,所述方法包括:獲取在第一控制周期內(nèi)下載的視頻幀數(shù)和已播放的視頻幀數(shù),以及在所述第一控制周期結(jié)束之后視頻幀緩沖區(qū)中緩沖的視頻幀數(shù);根據(jù)所述下載的視頻幀數(shù)和所述已播放的視頻幀數(shù)判斷網(wǎng)絡(luò)狀況,根據(jù)所述緩沖的視頻幀數(shù)和所述已播放的視頻幀數(shù)判斷所述緩沖的視頻幀是否充足,并根據(jù)所述網(wǎng)絡(luò)狀況和所述緩沖的視頻幀是否充足的判斷結(jié)果計(jì)算第二控制周期的待播放視頻幀數(shù);在所述第二控制周期按照所述待播放視頻幀數(shù)播放所述視頻流媒體。使用本發(fā)明提供的播放視頻流媒體的方法,可以達(dá)到平滑播放視頻流媒體的目的。本發(fā)明還提供了一種播放視頻流媒體的裝置。
【專利說明】播放視頻流媒體的方法和裝置
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及視頻播放領(lǐng)域,特別是涉及一種播放視頻流媒體的方法和裝置。
【背景技術(shù)】
[0002]流媒體是指在Internet或Intranet中使用流式傳輸技術(shù)的連續(xù)時(shí)基媒體,如音頻、視頻或多媒體文件。傳統(tǒng)的播放視頻流媒體的方法,網(wǎng)絡(luò)正常時(shí)可以流暢地播放流媒體;網(wǎng)絡(luò)狀況不佳時(shí),通常的處理方式是暫停播放,待終端獲取到播放數(shù)據(jù),或者緩沖區(qū)中積累了足夠多的播放數(shù)據(jù)后再繼續(xù)播放。因此當(dāng)網(wǎng)絡(luò)出現(xiàn)波動(dòng)時(shí),難以保證播放的流暢,導(dǎo)致播放中斷。
【發(fā)明內(nèi)容】
[0003]基于此,有必要針對(duì)上述當(dāng)網(wǎng)絡(luò)出現(xiàn)波動(dòng)時(shí),難以保證播放視頻的流暢,會(huì)導(dǎo)致播放中斷的技術(shù)問題,提供一種播放視頻流媒體的方法和裝置。
[0004]一種播放視頻流媒體的方法,所述方法包括:
[0005]獲取在第一控制周期內(nèi)下載的視頻幀數(shù)和已播放的視頻幀數(shù),以及在所述第一控制周期結(jié)束之后視頻幀緩沖區(qū)中緩沖的視頻幀數(shù);
[0006]根據(jù)所述下載的視頻幀數(shù)和所述已播放的視頻幀數(shù)判斷網(wǎng)絡(luò)狀況,根據(jù)所述緩沖的視頻幀數(shù)和所述已播放的視頻幀數(shù)判斷所述緩沖的視頻幀是否充足,并根據(jù)所述網(wǎng)絡(luò)狀況和所述緩沖的視頻幀是否充足的判斷結(jié)果計(jì)算第二控制周期的待播放視頻幀數(shù);
[0007]在所述第二控制周期按照所述待播放視頻幀數(shù)除以控制周期的幀率播放所述視頻流媒體。
[0008]一種播放視頻流媒體的裝置,所述裝置包括:
[0009]幀數(shù)獲取模塊,用于獲取在第一控制周期內(nèi)下載的視頻幀數(shù)和已播放的視頻幀數(shù),以及在所述第一控制周期結(jié)束之后視頻幀緩沖區(qū)中緩沖的視頻幀數(shù);
[0010]待播放視頻幀數(shù)計(jì)算模塊,用于根據(jù)所述下載的視頻幀數(shù)和所述已播放的視頻幀數(shù)判斷網(wǎng)絡(luò)狀況,根據(jù)所述緩沖的視頻幀數(shù)和所述已播放的視頻幀數(shù)判斷所述緩沖的視頻幀是否充足,并根據(jù)所述網(wǎng)絡(luò)狀況和所述緩沖的視頻幀是否充足的判斷結(jié)果計(jì)算第二控制周期的待播放視頻幀數(shù);
[0011]播放模塊,用于在所述第二控制周期按照所述待播放視頻幀數(shù)除以控制周期的幀率播放所述視頻流媒體。
[0012]上述播放視頻流媒體的方法和裝置,通過第一控制周期內(nèi)下載的視頻幀數(shù)和已播放的視頻幀數(shù)來精確衡量網(wǎng)絡(luò)狀況,可以準(zhǔn)確地反映第一控制周期內(nèi)網(wǎng)絡(luò)是否發(fā)生波動(dòng),從而可以根據(jù)網(wǎng)絡(luò)狀況和緩沖的視頻幀是否充足來調(diào)整第二控制周期要播放的待播放視頻幀數(shù),并在第二控制周期按照待播放視頻幀數(shù)除以控制周期的幀率播放視頻流媒體,可以達(dá)到平滑播放視頻流媒體的目的,避免由于出現(xiàn)網(wǎng)絡(luò)波動(dòng)導(dǎo)致過早地消耗完可播放的視頻幀后只能中斷播放的情況?!緦@綀D】
【附圖說明】
[0013]圖1為一個(gè)實(shí)施例中播放視頻流媒體的方法流程示意圖;
[0014]圖2為一個(gè)實(shí)施例中根據(jù)下載的視頻幀數(shù)和已播放的視頻幀數(shù)判斷網(wǎng)絡(luò)狀況,根據(jù)緩沖的視頻幀數(shù)和已播放的視頻幀數(shù)判斷緩沖的視頻幀是否充足,并根據(jù)網(wǎng)絡(luò)狀況和緩沖的視頻幀是否充足的判斷結(jié)果計(jì)算第二控制周期的待播放視頻幀數(shù)的步驟的流程示意圖;
[0015]圖3為另一個(gè)實(shí)施例中根據(jù)下載的視頻幀數(shù)和已播放的視頻幀數(shù)判斷網(wǎng)絡(luò)狀況,根據(jù)緩沖的視頻幀數(shù)和已播放的視頻幀數(shù)判斷緩沖的視頻幀是否充足,并根據(jù)網(wǎng)絡(luò)狀況和緩沖的視頻幀是否充足的判斷結(jié)果計(jì)算第二控制周期的待播放視頻幀數(shù)的步驟的流程示意圖;
[0016]圖4為一個(gè)實(shí)施例中播放視頻流媒體的裝置的結(jié)構(gòu)框圖;
[0017]圖5為一個(gè)實(shí)施例中待播放視頻幀數(shù)計(jì)算模塊的結(jié)構(gòu)框圖;
[0018]圖6為另一個(gè)實(shí)施例中待播放視頻幀數(shù)計(jì)算模塊的結(jié)構(gòu)框圖。
【具體實(shí)施方式】
[0019]為了使本發(fā)明的目的、技術(shù)方案及優(yōu)點(diǎn)更加清楚明白,以下結(jié)合附圖及實(shí)施例,對(duì)本發(fā)明進(jìn)行進(jìn)一步詳細(xì)說明。應(yīng)當(dāng)理解,此處描述的具體實(shí)施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。
[0020]如圖1所示,在一個(gè)實(shí)施例中提供了一種播放視頻流媒體的方法,本實(shí)施例主要以該方法應(yīng)用于可播放視頻流媒體的終端舉例說明。該終端包括但不限于智能手機(jī)、平板電腦、MP4 (Moving Picture Experts Group Audio Layer IV,動(dòng)態(tài)影像專家壓縮標(biāo)準(zhǔn)音頻層面3)播放器、膝上型便攜計(jì)算機(jī)和臺(tái)式計(jì)算機(jī)等等。該方法包括:
[0021]步驟102,獲取在第一控制周期內(nèi)下載的視頻幀數(shù)和已播放的視頻幀數(shù),以及在第一控制周期結(jié)束之后視頻幀緩沖區(qū)中緩沖的視頻幀數(shù)。
[0022]第一、第二控制周期是指相鄰的兩個(gè)控制周期,控制周期優(yōu)選為I秒。
[0023]在第一控制周期內(nèi),終端在接收到流媒體數(shù)據(jù)包后,根據(jù)流媒體數(shù)據(jù)包的文件頭信息確定流媒體數(shù)據(jù)包的封裝格式,從而按照相應(yīng)的封裝格式解析流媒體數(shù)據(jù)包獲得視頻幀,并存入視頻幀緩沖區(qū)中,解析獲得的視頻幀的數(shù)量即為下載的視頻幀數(shù)。
[0024]依次取出視頻幀緩沖區(qū)中的視頻幀,調(diào)用相應(yīng)的視頻解碼模塊進(jìn)行解碼獲得可直接播放的數(shù)據(jù)單元(比如YUV格式的視頻數(shù)據(jù)單元),存入解碼緩沖區(qū),播放時(shí)依次取出解碼緩沖區(qū)中的數(shù)據(jù)單元進(jìn)行播放。每一個(gè)視頻幀對(duì)應(yīng)一個(gè)數(shù)據(jù)單元,在第一控制周期內(nèi)播放的數(shù)據(jù)單元的數(shù)量即為在第一控制周期內(nèi)已播放的視頻幀數(shù)。
[0025]第一控制周期結(jié)束之后,可以通過檢測(cè)視頻幀緩沖區(qū)獲得緩沖的視頻幀數(shù)??梢詾橐曨l幀緩沖區(qū)建立索引,用以標(biāo)識(shí)視頻幀緩沖區(qū)中已緩沖的視頻幀,從而可以快速獲得視頻幀緩沖區(qū)中緩沖的視頻幀數(shù)。
[0026]為了便于說明,下述表述中除特別說明外,下載的視頻幀數(shù)指第一控制周期下載的視頻幀數(shù),已播放的視頻幀數(shù)指第一控制周期內(nèi)已播放的視頻幀數(shù),緩沖的視頻幀數(shù)指第一控制周期結(jié)束之后視頻幀緩沖區(qū)中緩沖的視頻幀數(shù)。[0027]步驟104,根據(jù)下載的視頻幀數(shù)和已播放的視頻幀數(shù)判斷網(wǎng)絡(luò)狀況,根據(jù)緩沖的視頻幀數(shù)和已播放的視頻幀數(shù)判斷緩沖的視頻幀是否充足,并根據(jù)網(wǎng)絡(luò)狀況和緩沖的視頻幀是否充足的判斷結(jié)果計(jì)算第二控制周期的待播放視頻幀數(shù)。
[0028]下載的視頻幀數(shù)可以精確地反映網(wǎng)絡(luò)狀況,下載的視頻幀數(shù)小于已播放的視頻幀數(shù),說明網(wǎng)絡(luò)狀況不佳,若繼續(xù)按照第一控制周期內(nèi)的已播放視頻幀數(shù)/控制周期的幀率播放,會(huì)導(dǎo)致視頻幀的過度消耗,可能導(dǎo)致后續(xù)播放中斷,因此需要調(diào)整第二控制周期的待播放視頻幀數(shù)。根據(jù)緩沖的視頻幀是否充足的判斷結(jié)果,可以具體確定待播放視頻幀數(shù)。具體地,若緩沖的視頻幀數(shù)大于已播放的視頻幀數(shù),說明視頻幀緩沖充足,可以較小的幅度減少已播放的視頻幀數(shù)的值作為第二控制周期的待播放視頻幀數(shù);相反,若緩沖的視頻幀數(shù)小于已播放的視頻幀數(shù),說明緩沖的視頻幀不足,可以較大的幅度減少已播放的視頻幀數(shù)的值作為第二控制周期的待播放視頻幀數(shù),從而可以達(dá)到平滑播放視頻流媒體的目的,
[0029]步驟106,在第二控制周期按照待播放視頻幀數(shù)除以控制周期的幀率播放視頻流媒體。
[0030]在第二控制周期,按照待播放視頻幀數(shù)除以控制周期的幀率依次從解碼緩沖區(qū)中取出數(shù)據(jù)單元均勻播放。
[0031]上述播放視頻流媒體的方法,第一控制周期、第二控制周期是相鄰的兩個(gè)控制周期,即在上一控制周期結(jié)束之后計(jì)算下一控制周期的待播放視頻幀數(shù),周而復(fù)始,對(duì)播放進(jìn)行周期性地控制。舉例說明,若控制周期為I秒,當(dāng)視頻流媒體播放完第50秒時(shí),計(jì)算第50秒內(nèi)下載的視頻幀數(shù)和已播放的視頻幀數(shù),從而計(jì)算第51秒的待播放視頻幀數(shù),從而在第51秒按照待播放視頻幀數(shù)/I的幀率播放視頻流媒體;播放完第51秒后,再計(jì)算52秒的待播放視頻幀數(shù),以此類推,周而復(fù)始,直至播放完該視頻流媒體。
[0032]根據(jù)第一控制周期內(nèi)下載的視頻幀數(shù)和已播放的視頻幀數(shù)來精確衡量網(wǎng)絡(luò)狀況,可以準(zhǔn)確地反映第一控制周期內(nèi)網(wǎng)絡(luò)是否發(fā)生波動(dòng),從而可以根據(jù)網(wǎng)絡(luò)狀況和緩沖的視頻幀是否充足來計(jì)算第二控制周期要播放的待播放視頻幀數(shù)。當(dāng)網(wǎng)絡(luò)出現(xiàn)波動(dòng)時(shí),結(jié)合緩沖的視頻幀是否充足的判斷結(jié)果來調(diào)整第二控制周期待播放視頻幀數(shù),從而可以達(dá)到平滑播放視頻流媒體的目的,避免由于出現(xiàn)網(wǎng)絡(luò)波動(dòng)導(dǎo)致過早地消耗完可播放的視頻幀后只能中斷播放的情況。
[0033]如圖2所示,在一個(gè)實(shí)施例中,步驟104包括:
[0034]步驟202,判斷下載的視頻幀數(shù)是否小于已播放的視頻幀數(shù)與預(yù)設(shè)的小于I的正系數(shù)的乘積,若是則執(zhí)行步驟204,若否則執(zhí)行步驟210。
[0035]下載的視頻幀數(shù)可以衡量第一控制周期內(nèi)的網(wǎng)絡(luò)狀況,從而為確定第二控制周期的待播放視頻幀數(shù)提供參考。該預(yù)設(shè)的小于I的正系數(shù)的值優(yōu)選為0.5。若下載的視頻幀數(shù)低于已播放的視頻幀數(shù)與該系數(shù)的乘積,說明網(wǎng)絡(luò)狀況非常差,應(yīng)設(shè)置第二控制周期的待播放視頻幀數(shù)為一較小的值。
[0036]步驟204,判斷緩沖的視頻幀數(shù)是否大于已播放的視頻幀數(shù),若是則執(zhí)行步驟206,若否則執(zhí)行步驟208。
[0037]通過判斷緩沖的視頻幀數(shù)是否大于已播放的視頻幀數(shù),可以判斷視頻幀緩沖區(qū)中緩沖的視頻幀是否充足,若緩沖的視頻幀數(shù)大于已播放的視頻幀數(shù),說明緩沖的視頻幀充足;若緩沖的視頻幀數(shù)小于已播放的視頻幀數(shù),說明緩沖的視頻幀不足。[0038]步驟206,根據(jù)下載的視頻幀數(shù)和已播放的視頻幀數(shù)計(jì)算待播放視頻幀數(shù)。
[0039]此時(shí),網(wǎng)絡(luò)狀況非常差,但緩沖的視頻幀充足,主要考慮下載的視頻幀數(shù)和已播放的視頻幀數(shù)的影響。具體的,待播放視頻幀數(shù)可以為下載的視頻幀數(shù)和已播放的視頻幀數(shù)的加權(quán)平均值,尤其是下載的視頻幀數(shù)和已播放的視頻幀數(shù)的平均值。取加權(quán)平均值既可以防止播放時(shí)對(duì)緩沖的視頻幀的過度消耗,又能盡量維持畫面的流暢。
[0040]步驟208,根據(jù)緩沖的視頻幀數(shù)和下載的視頻幀數(shù)計(jì)算待播放視頻幀數(shù)。
[0041]此時(shí),網(wǎng)絡(luò)狀況非常差,且緩沖的視頻幀也不足,應(yīng)盡可能的減少待播放視頻幀數(shù),可以根據(jù)緩沖的視頻幀數(shù)和下載的視頻幀數(shù)計(jì)算待播放視頻幀數(shù)。具體地,待播放視頻幀數(shù)為緩沖的視頻幀數(shù)和下載的視頻幀數(shù)中較小的值。
[0042]步驟210,判斷下載的視頻幀數(shù)是否小于已播放的視頻幀數(shù),若是則執(zhí)行步驟212,若否則執(zhí)行步驟218。
[0043]此時(shí),下載的視頻幀數(shù)不小于已播放的視頻幀數(shù)與預(yù)設(shè)的小于I的正系數(shù)的乘積,說明網(wǎng)絡(luò)不是非常差,可以進(jìn)一步判斷當(dāng)前網(wǎng)絡(luò)是比較差還是正常。若下載的視頻幀數(shù)小于已播放的視頻幀數(shù),說明網(wǎng)絡(luò)比較差;若下載的視頻幀數(shù)不小于已播放的視頻幀數(shù),說明網(wǎng)絡(luò)正常,滿足正常播放視頻流媒體的需求。
[0044]步驟212,判斷緩沖的視頻幀數(shù)是否大于已播放的視頻幀數(shù),若是則執(zhí)行步驟214,若否則執(zhí)行步驟216。
[0045]此時(shí),網(wǎng)絡(luò)比較差,可進(jìn)一步判斷緩沖的視頻幀是否充足。若緩沖的視頻幀數(shù)大于已播放的視頻幀數(shù),說明緩沖的視頻幀充足;若緩沖的視頻幀數(shù)不大于已播放的視頻幀數(shù),說明緩沖的視頻幀不足。
[0046]步驟214,根據(jù)下載的視頻幀數(shù)、緩沖的視頻幀數(shù)和已播放的視頻幀數(shù)計(jì)算待播放視頻幀數(shù)。
[0047]此時(shí),雖然網(wǎng)絡(luò)比較差,但視頻幀緩沖區(qū)中緩沖充足,可綜合考慮下載的視頻幀數(shù)、緩沖的視頻幀數(shù)和已播放的視頻幀數(shù)對(duì)流暢地播放視頻流媒體的影響。具體地,待播放視頻幀數(shù)為下載的視頻幀數(shù)、緩沖的視頻幀數(shù)和已播放的視頻幀數(shù)的加權(quán)平均值,尤其是下載的視頻幀數(shù)、緩沖的視頻幀數(shù)和已播放的視頻幀數(shù)的平均值。
[0048]步驟216,根據(jù)緩沖的視頻幀數(shù)和下載的視頻幀數(shù)計(jì)算待播放視頻幀數(shù)。
[0049]此時(shí),網(wǎng)絡(luò)比較差,且緩沖的視頻幀不足,應(yīng)盡可能的減少待播放視頻幀數(shù),可以根據(jù)緩沖的視頻幀數(shù)和下載的視頻幀數(shù)計(jì)算待播放視頻幀數(shù)。具體地,待播放視頻幀數(shù)為緩沖的視頻幀數(shù)和下載的視頻幀數(shù)中較小的值。
[0050]步驟218,判斷緩沖的視頻幀數(shù)是否大于已播放的視頻幀數(shù),若是則執(zhí)行步驟220,若否則執(zhí)行步驟222。
[0051]此時(shí),下載的視頻幀數(shù)不小于已播放的視頻幀數(shù),說明網(wǎng)絡(luò)正常,可進(jìn)一步根據(jù)視頻幀緩沖區(qū)是否充足來確定待播放視頻幀數(shù)。
[0052]步驟220,待播放視頻幀數(shù)為默認(rèn)視頻播放幀數(shù)。
[0053]此時(shí),網(wǎng)絡(luò)正常,且視頻幀緩沖區(qū)充足,待播放視頻幀數(shù)為默認(rèn)視頻播放幀數(shù)??梢酝ㄟ^讀取流媒體數(shù)據(jù)包的文件頭獲取視頻流媒體的默認(rèn)視頻播放幀數(shù)。一般情況下,視頻播放幀率為25幀/秒,因此默認(rèn)視頻播放幀數(shù)可以為25*控制周期。
[0054]步驟222,待播放視頻幀數(shù)為緩沖的視頻幀數(shù)。[0055]此時(shí),雖然網(wǎng)絡(luò)正常,但視頻幀緩沖不足,為了保證視頻播放的平滑,設(shè)置待播放視頻幀數(shù)為緩沖的視頻幀數(shù),再后續(xù)控制周期中,當(dāng)網(wǎng)絡(luò)狀況正常,且緩沖的視頻幀充足時(shí)再將待播放視頻幀數(shù)設(shè)置為默認(rèn)視頻播放幀數(shù)。
[0056]本實(shí)施例中,通過下載的視頻幀數(shù)和播放的視頻幀數(shù)的大小關(guān)系判斷網(wǎng)絡(luò)狀況,再結(jié)合視頻幀緩沖區(qū)是否充足來計(jì)算第二控制周期的待播放視頻幀數(shù),達(dá)到平滑地播放視頻流媒體的目的,使得終端在網(wǎng)絡(luò)出現(xiàn)波動(dòng)的情況下仍能平滑播放,兼容性強(qiáng)。
[0057]如圖3所示,在一個(gè)實(shí)施例中,步驟104具體包括:
[0058]步驟302,判斷緩沖的視頻幀數(shù)是否大于已播放的視頻幀數(shù),若否則執(zhí)行步驟304,若是則執(zhí)行步驟306。
[0059]通過判斷緩沖的視頻幀數(shù)是否大于已播放的視頻幀數(shù),可以判斷緩沖的視頻幀是否充足。若緩沖的視頻幀數(shù)大于已播放的視頻幀數(shù),說明緩沖的視頻幀不足,應(yīng)根據(jù)下載的視頻幀數(shù)和已播放的視頻幀數(shù)判斷網(wǎng)絡(luò)狀況,并根據(jù)網(wǎng)絡(luò)狀況計(jì)算待播放視頻幀數(shù),具體的,根據(jù)下載的視頻幀數(shù)和已播放的視頻幀數(shù)判斷網(wǎng)絡(luò)狀況,并根據(jù)網(wǎng)絡(luò)狀況計(jì)算待播放視頻幀數(shù)包括以下步驟306-314。相反,若緩沖的視頻幀數(shù)不大于已播放的視頻幀數(shù),說明緩沖的視頻幀充足,執(zhí)行步驟304。
[0060]步驟304,根據(jù)緩沖的視頻幀數(shù)和下載的視頻幀數(shù)計(jì)算待播放視頻幀數(shù)。
[0061]此時(shí),緩沖的視頻幀不足,應(yīng)盡可能的減少待播放視頻幀數(shù),可以根據(jù)緩沖的視頻幀數(shù)和下載的視頻幀數(shù)計(jì)算待播放視頻幀數(shù)。具體地,待播放視頻幀數(shù)為緩沖的視頻幀數(shù)和下載的視頻幀數(shù)中較小的值。
[0062]步驟306,判斷下載的視頻幀數(shù)是否小于已播放的視頻幀數(shù)與預(yù)設(shè)的小于I的正系數(shù)的乘積,若是則執(zhí)行步驟308,若否則執(zhí)行步驟310。
[0063]比較下載的視頻幀數(shù)和已播放的視頻幀數(shù)與預(yù)設(shè)的小于I的正系數(shù)的乘積的大小,可以判斷網(wǎng)絡(luò)是否非常差。該系數(shù)的值優(yōu)選為0.5。
[0064]步驟308,根據(jù)下載的視頻幀數(shù)和已播放的視頻幀數(shù)計(jì)算待播放視頻幀數(shù)。
[0065]此時(shí),網(wǎng)絡(luò)狀況非常差,但緩沖的視頻幀充足,主要考慮下載的視頻幀數(shù)和已播放的視頻幀數(shù)的影響。具體的,待播放視頻幀數(shù)可以為下載的視頻幀數(shù)和已播放的視頻幀數(shù)的加權(quán)平均值,尤其是下載的視頻幀數(shù)和已播放的視頻幀數(shù)的平均值。取加權(quán)平均值既可以防止播放時(shí)對(duì)緩沖的視頻幀的過度消耗,又能盡量維持畫面的流暢。
[0066]步驟310,判斷下載的視頻幀數(shù)是否小于已播放的視頻幀數(shù)。
[0067]通過比較下載的視頻幀數(shù)和已播放的視頻幀數(shù)的大小,可以判斷網(wǎng)絡(luò)狀況是否比較差。
[0068]步驟312,根據(jù)下載的視頻幀數(shù)、緩沖的視頻幀數(shù)和已播放的視頻幀數(shù)計(jì)算待播放視頻幀數(shù)。
[0069]此時(shí),雖然網(wǎng)絡(luò)比較差,但視頻幀緩沖區(qū)中緩沖充足,可綜合考慮下載的視頻幀數(shù)、緩沖的視頻幀數(shù)和已播放的視頻幀數(shù)對(duì)流暢地播放視頻流媒體的影響。具體地,待播放視頻幀數(shù)為下載的視頻幀數(shù)、緩沖的視頻幀數(shù)和已播放的視頻幀數(shù)的加權(quán)平均值,尤其是下載的視頻幀數(shù)、緩沖的視頻幀數(shù)和已播放的視頻幀數(shù)的平均值。
[0070]步驟314,待播放視頻幀數(shù)為默認(rèn)視頻播放幀數(shù)。
[0071]此時(shí),網(wǎng)絡(luò)正常,且視頻幀緩沖區(qū)充足,待播放視頻幀數(shù)為默認(rèn)視頻播放幀數(shù)。可以通過讀取流媒體數(shù)據(jù)包的文件頭獲取視頻流媒體的默認(rèn)視頻播放幀數(shù)。一般情況下,視頻播放幀率為25幀/秒,因此默認(rèn)視頻播放幀數(shù)可以為25*控制周期。
[0072]如圖4所示,在一個(gè)實(shí)施例中提供了一種播放視頻流媒體的裝置,包括:
[0073]幀數(shù)獲取模塊402,用于獲取在第一控制周期內(nèi)下載的視頻幀數(shù)和已播放的視頻幀數(shù),以及在第一控制周期結(jié)束之后視頻幀緩沖區(qū)中緩沖的視頻幀數(shù)。
[0074]待播放視頻幀數(shù)計(jì)算模塊404,用于根據(jù)下載的視頻幀數(shù)和已播放的視頻幀數(shù)判斷網(wǎng)絡(luò)狀況,根據(jù)緩沖的視頻幀數(shù)和已播放的視頻幀數(shù)判斷緩沖的視頻幀是否充足,并根據(jù)網(wǎng)絡(luò)狀況和緩沖的視頻幀是否充足的判斷結(jié)果計(jì)算第二控制周期的待播放視頻幀數(shù)。
[0075]播放模塊406,用于在第二控制周期按照待播放視頻幀數(shù)除以控制周期的幀率播放視頻流媒體。
[0076]如圖5所示,在一個(gè)實(shí)施例中,待播放視頻幀數(shù)計(jì)算模塊404包括:
[0077]第一判斷模塊404a,用于判斷下載的視頻幀數(shù)是否小于已播放的視頻幀數(shù)與預(yù)設(shè)的小于I的正系數(shù)的乘積,若是則判斷緩沖的視頻幀數(shù)是否大于已播放的視頻幀數(shù)。
[0078]第一計(jì)算模塊404b,用于若緩沖的視頻幀數(shù)大于已播放的視頻幀數(shù),則根據(jù)下載的視頻幀數(shù)和已播放的視頻幀數(shù)計(jì)算待播放視頻幀數(shù);若緩沖的視頻幀數(shù)不大于已播放的視頻幀數(shù),則根據(jù)緩沖的視頻幀數(shù)和下載的視頻幀數(shù)計(jì)算待播放視頻幀數(shù)。
[0079]在一個(gè)實(shí)施例中,第一判斷模塊404a還用于若下載的視頻幀數(shù)不小于已播放的視頻幀數(shù)與系數(shù)的乘積,則判斷下載的視頻幀數(shù)是否小于已播放的視頻幀數(shù),若下載的視頻幀數(shù)小于已播放的視頻幀數(shù),則判斷緩沖的視頻幀數(shù)是否大于已播放的視頻幀數(shù)。
[0080]第一計(jì)算模塊404b還用于若緩沖的視頻幀數(shù)大于已播放的視頻幀數(shù),則根據(jù)下載的視頻幀數(shù)、緩沖的視頻幀數(shù)和已播放的視頻幀數(shù)計(jì)算待播放視頻幀數(shù);若緩沖的視頻幀數(shù)不大于已播放的視頻幀數(shù),則根據(jù)緩沖的視頻幀數(shù)和下載的視頻幀數(shù)計(jì)算待播放視頻幀數(shù)。
[0081]在一個(gè)實(shí)施例中,第一判斷模塊404a還用于若下載的視頻幀數(shù)不小于已播放的視頻幀數(shù),則判斷緩沖的視頻幀數(shù)是否大于已播放的視頻幀數(shù)。
[0082]第一計(jì)算模塊404b還用于若緩沖的視頻幀數(shù)大于已播放的視頻幀數(shù),則待播放視頻幀數(shù)為默認(rèn)視頻播放幀數(shù);若緩沖的視頻幀數(shù)不大于已播放的視頻幀數(shù),則待播放視頻幀數(shù)為緩沖的視頻幀數(shù)。
[0083]如圖6所示,在一個(gè)實(shí)施例中,待播放視頻幀數(shù)計(jì)算模塊404包括:
[0084]第二判斷模塊404c,用于判斷緩沖的視頻幀數(shù)是否大于已播放的視頻幀數(shù),若是則根據(jù)下載的視頻幀數(shù)和已播放的視頻幀數(shù)判斷網(wǎng)絡(luò)狀況。
[0085]第二計(jì)算模塊404d,用于若緩沖的視頻幀數(shù)不大于已播放的視頻幀數(shù),則根據(jù)緩沖的視頻幀數(shù)和下載的視頻幀數(shù)計(jì)算待播放視頻幀數(shù);若緩沖的視頻幀數(shù)大于已播放的視頻幀數(shù),則根據(jù)網(wǎng)絡(luò)狀況計(jì)算待播放視頻幀數(shù)。
[0086]以上所述實(shí)施例僅表達(dá)了本發(fā)明的幾種實(shí)施方式,其描述較為具體和詳細(xì),但并不能因此而理解為對(duì)本發(fā)明專利范圍的限制。應(yīng)當(dāng)指出的是,對(duì)于本領(lǐng)域的普通技術(shù)人員來說,在不脫離本發(fā)明構(gòu)思的前提下,還可以做出若干變形和改進(jìn),這些都屬于本發(fā)明的保護(hù)范圍。因此,本發(fā)明專利的保護(hù)范圍應(yīng)以所附權(quán)利要求為準(zhǔn)。
【權(quán)利要求】
1.一種播放視頻流媒體的方法,所述方法包括:獲取在第一控制周期內(nèi)下載的視頻幀數(shù)和已播放的視頻幀數(shù),以及在所述第一控制周期結(jié)束之后視頻幀緩沖區(qū)中緩沖的視頻幀數(shù);根據(jù)所述下載的視頻幀數(shù)和所述已播放的視頻幀數(shù)判斷網(wǎng)絡(luò)狀況,根據(jù)所述緩沖的視頻幀數(shù)和所述已播放的視頻幀數(shù)判斷所述緩沖的視頻幀是否充足,并根據(jù)所述網(wǎng)絡(luò)狀況和所述緩沖的視頻幀是否充足的判斷結(jié)果計(jì)算第二控制周期的待播放視頻幀數(shù);在所述第二控制周期按照所述待播放視頻幀數(shù)除以控制周期的幀率播放所述視頻流媒體。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述根據(jù)所述下載的視頻幀數(shù)和所述已播放的視頻幀數(shù)判斷網(wǎng)絡(luò)狀況,根據(jù)所述緩沖的視頻幀數(shù)和所述已播放的視頻幀數(shù)判斷所述緩沖的視頻幀是否充足,并根據(jù)所述網(wǎng)絡(luò)狀況和所述緩沖的視頻幀是否充足的判斷結(jié)果計(jì)算第二控制周期的待播放視頻幀數(shù),包括:判斷所述下載的視頻幀數(shù)是否小于所述已播放的視頻幀數(shù)與預(yù)設(shè)的小于I的正系數(shù)的乘積,若是則判斷所述緩沖的視頻幀數(shù)是否大于所述已播放的視頻幀數(shù);若所述緩沖的視頻幀數(shù)大于所述已播放的視頻幀數(shù),則根據(jù)所述下載的視頻幀數(shù)和所述已播放的視頻幀數(shù)計(jì)算所述待播放視頻幀數(shù);若所述緩沖的視頻幀數(shù)不大于所述已播放的視頻幀數(shù),則根據(jù)所述緩沖的視頻幀數(shù)和所述下載的視頻幀數(shù)計(jì)算所述待播放視頻幀數(shù)。
3.根據(jù)權(quán)利要求2所述的方法,其特征在于,所述根據(jù)所述下載的視頻幀數(shù)和所述已播放的視頻幀數(shù)判斷網(wǎng)絡(luò)狀況,根據(jù)所述緩沖的視頻幀數(shù)和所述已播放的視頻幀數(shù)判斷所述緩沖的視頻幀是否充足,并根據(jù)所述網(wǎng)絡(luò)狀況和所述緩沖的視頻幀是否充足的判斷結(jié)果計(jì)算第二控制周期的待 播放視頻幀數(shù),還包括:若所述下載的視頻幀數(shù)不小于所述已播放的視頻幀數(shù)與所述系數(shù)的乘積,則判斷所述下載的視頻幀數(shù)是否小于所述已播放的視頻幀數(shù),若所述下載的視頻幀數(shù)小于所述已播放的視頻幀數(shù),則判斷所述緩沖的視頻幀數(shù)是否大于所述已播放的視頻幀數(shù);若所述緩沖的視頻幀數(shù)大于所述已播放的視頻幀數(shù),則根據(jù)所述下載的視頻幀數(shù)、所述緩沖的視頻幀數(shù)和所述已播放的視頻幀數(shù)計(jì)算所述待播放視頻幀數(shù);若所述緩沖的視頻幀數(shù)不大于所述已播放的視頻幀數(shù),則根據(jù)所述緩沖的視頻幀數(shù)和所述下載的視頻幀數(shù)計(jì)算所述待播放視頻幀數(shù)。
4.根據(jù)權(quán)利要求3所述的方法,其特征在于,所述根據(jù)所述下載的視頻幀數(shù)和所述已播放的視頻幀數(shù)判斷網(wǎng)絡(luò)狀況,根據(jù)所述緩沖的視頻幀數(shù)和所述已播放的視頻幀數(shù)判斷所述緩沖的視頻幀是否充足,并根據(jù)所述網(wǎng)絡(luò)狀況和所述緩沖的視頻幀是否充足的判斷結(jié)果計(jì)算第二控制周期的待播放視頻幀數(shù),還包括:若所述下載的視頻幀數(shù)不小于所述已播放的視頻幀數(shù),則判斷所述緩沖的視頻幀數(shù)是否大于所述已播放的視頻幀數(shù);若所述緩沖的視頻幀數(shù)大于所述已播放的視頻幀數(shù),則所述待播放視頻幀數(shù)為默認(rèn)視頻播放幀數(shù);若所述緩沖的視頻幀數(shù)不大于所述已播放的視頻幀數(shù),則所述待播放視頻幀數(shù)為所述緩沖的視頻幀數(shù)。
5.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述根據(jù)所述下載的視頻幀數(shù)和所述已播放的視頻幀數(shù)判斷網(wǎng)絡(luò)狀況,根據(jù)所述緩沖的視頻幀數(shù)和所述已播放的視頻幀數(shù)判斷所述緩沖的視頻幀是否充足,并根據(jù)所述網(wǎng)絡(luò)狀況和所述緩沖的視頻幀是否充足的判斷結(jié)果計(jì)算第二控制周期的待播放視頻幀數(shù),包括:判斷所述緩沖的視頻幀數(shù)是否大于所述已播放的視頻幀數(shù),若否則根據(jù)所述緩沖的視頻幀數(shù)和所述下載的視頻幀數(shù)計(jì)算所述待播放視頻幀數(shù);若是則根據(jù)所述下載的視頻幀數(shù)和所述已播放的視頻幀數(shù)判斷網(wǎng)絡(luò)狀況;根據(jù)所述網(wǎng)絡(luò)狀況計(jì)算所述待播放視頻幀數(shù)。
6.一種播放視頻流媒體的裝置,其特征在于,所述裝置包括:幀數(shù)獲取模塊,用于獲取在第一控制周期內(nèi)下載的視頻幀數(shù)和已播放的視頻幀數(shù),以及在所述第一控制周期結(jié)束之后視頻幀緩沖區(qū)中緩沖的視頻幀數(shù);待播放視頻幀數(shù)計(jì)算模塊,用于根據(jù)所述下載的視頻幀數(shù)和所述已播放的視頻幀數(shù)判斷網(wǎng)絡(luò)狀況,根據(jù)所述緩沖的視頻幀數(shù)和所述已播放的視頻幀數(shù)判斷所述緩沖的視頻幀是否充足,并根據(jù)所述網(wǎng)絡(luò)狀況和所述緩沖的視頻幀是否充足的判斷結(jié)果計(jì)算第二控制周期的待播放視頻幀數(shù);播放模塊,用于在所述第二控制周期按照所述待播放視頻幀數(shù)除以控制周期的幀率播放所述視頻流媒體。
7.根據(jù)權(quán)利要求6所述的裝置,其特征在于,所述待播放視頻幀數(shù)計(jì)算模塊包括:第一判斷模塊,用于判斷所述下載的視頻幀數(shù)是否小于所述已播放的視頻幀數(shù)與預(yù)設(shè)的小于I的正系數(shù)的乘積,若是 則判斷所述緩沖的視頻幀數(shù)是否大于所述已播放的視頻幀數(shù);第一計(jì)算模塊,用于若所述緩沖的視頻幀數(shù)大于所述已播放的視頻幀數(shù),則根據(jù)所述下載的視頻幀數(shù)和所述已播放的視頻幀數(shù)計(jì)算所述待播放視頻幀數(shù);若所述緩沖的視頻幀數(shù)不大于所述已播放的視頻幀數(shù),則根據(jù)所述緩沖的視頻幀數(shù)和所述下載的視頻幀數(shù)計(jì)算所述待播放視頻幀數(shù)。
8.根據(jù)權(quán)利要求7所述的裝置,其特征在于,所述第一判斷模塊還用于若所述下載的視頻幀數(shù)不小于所述已播放的視頻幀數(shù)與所述系數(shù)的乘積,則判斷所述下載的視頻幀數(shù)是否小于所述已播放的視頻幀數(shù),若所述下載的視頻幀數(shù)小于所述已播放的視頻幀數(shù),則判斷所述緩沖的視頻幀數(shù)是否大于所述已播放的視頻幀數(shù);所述第一計(jì)算模塊還用于若所述緩沖的視頻幀數(shù)大于所述已播放的視頻幀數(shù),則根據(jù)所述下載的視頻幀數(shù)、所述緩沖的視頻幀數(shù)和所述已播放的視頻幀數(shù)計(jì)算所述待播放視頻幀數(shù);若所述緩沖的視頻幀數(shù)不大于所述已播放的視頻幀數(shù),則根據(jù)所述緩沖的視頻幀數(shù)和所述下載的視頻幀數(shù)計(jì)算所述待播放視頻幀數(shù)。
9.根據(jù)權(quán)利要求8所述的裝置,其特征在于,所述第一判斷模塊還用于若所述下載的視頻幀數(shù)不小于所述已播放的視頻幀數(shù),則判斷所述緩沖的視頻幀數(shù)是否大于所述已播放的視頻幀數(shù);所述第一計(jì)算模塊還用于若所述緩沖的視頻幀數(shù)大于所述已播放的視頻幀數(shù),則所述待播放視頻幀數(shù)為默認(rèn)視頻播放幀數(shù);若所述緩沖的視頻幀數(shù)不大于所述已播放的視頻幀數(shù),則所述待播放視頻幀數(shù)為所述緩沖的視頻幀數(shù)。
10.根據(jù)權(quán)利要求6所述的裝置,其特征在于,所述待播放視頻幀數(shù)計(jì)算模塊包括:第二判斷模塊,用于判斷所述緩沖的視頻幀數(shù)是否大于所述已播放的視頻幀數(shù),若是則根據(jù)所述下載的視頻幀數(shù)和所述已播放的視頻幀數(shù)判斷網(wǎng)絡(luò)狀況;第二計(jì)算模塊,用于若所述緩沖的視頻幀數(shù)不大于所述已播放的視頻幀數(shù),則根據(jù)所述緩沖的視頻幀數(shù)和所述下載的視頻幀數(shù)計(jì)算所述待播放視頻幀數(shù);若所述緩沖的視頻幀數(shù)大于所述已播放的視頻幀數(shù),則`根據(jù)所述網(wǎng)絡(luò)狀況計(jì)算所述待播放視頻幀數(shù)。
【文檔編號(hào)】H04N21/658GK103442307SQ201310364903
【公開日】2013年12月11日 申請(qǐng)日期:2013年8月20日 優(yōu)先權(quán)日:2013年8月20日
【發(fā)明者】李俊峰 申請(qǐng)人:深圳市融創(chuàng)天下科技股份有限公司