視頻播放流暢度的檢測方法和裝置制造方法
【專利摘要】本發(fā)明公開了一種視頻播放流暢度的檢測方法和裝置。該視頻播放流暢度的檢測方法包括:客戶端檢測本地視頻處于播放狀態(tài)的總時長;客戶端檢測視頻處于緩沖狀態(tài)的總時長;以及客戶端根據(jù)視頻處于播放狀態(tài)的總時長和緩沖狀態(tài)的總時長計算視頻播放流暢度。通過本發(fā)明,能夠準(zhǔn)確檢測客戶端視頻播放流暢度。
【專利說明】視頻播放流暢度的檢測方法和裝置
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及多媒體領(lǐng)域,具體而言,涉及一種視頻播放流暢度的檢測方法和裝置。【背景技術(shù)】
[0002]無論是視頻網(wǎng)站,還是網(wǎng)絡(luò)電視臺,只要通過網(wǎng)絡(luò)來提供視頻播放服務(wù),他們都會關(guān)心自己的視頻播放是否流暢。視頻播放時的網(wǎng)絡(luò)狀況、家庭路由緩存和程序的碼率自適應(yīng)切換等因素,都會影響用戶端實際視頻播放的流暢度。
[0003]現(xiàn)有技術(shù)中,通常利用模擬播放或者利用服務(wù)器網(wǎng)絡(luò)監(jiān)測用戶的數(shù)據(jù)包獲取視頻碼率來衡量流暢度。模擬播放是虛擬的視頻播放方法,在模擬過程中存在一定的誤差,測試得到的流暢度并不準(zhǔn)確;而利用服務(wù)器網(wǎng)絡(luò)衡量流暢度的方法,由于受到網(wǎng)絡(luò)、路由器及播放軟件的加速功能等因素的影響,使得測得的流暢度也無法準(zhǔn)確反映用戶真實體驗到的視頻播放流暢度。
[0004]針對現(xiàn)有技術(shù)中對客戶端視頻播放流暢度的檢測不準(zhǔn)確的問題,目前尚未提出有效的解決方案。
【發(fā)明內(nèi)容】
[0005]本發(fā)明的主要目的在于提供一種視頻播放流暢度的檢測方法和裝置,以解決現(xiàn)有技術(shù)中對客戶端視頻播放流暢度的檢測不準(zhǔn)確的問題。
[0006]為了實現(xiàn)上述目的,根據(jù)本發(fā)明的一個方面,提供了一種視頻播放流暢度的檢測方法。根據(jù)本發(fā)明的視頻播放流暢度的檢測方法包括:客戶端檢測本地視頻處于播放狀態(tài)的總時長;客戶端檢測視頻處于緩沖狀態(tài)的總時長;以及客戶端根據(jù)視頻處于播放狀態(tài)的總時長和緩沖狀態(tài)的總時長計算視頻播放流暢度。
[0007]進一步地,在客戶端檢測本地視頻處于播放狀態(tài)的總時長和客戶端檢測視頻處于緩沖狀態(tài)的總時長之前,視頻播放流暢度的檢測方法包括:客戶端獲取視頻的播放信息;客戶端根據(jù)播放信息判斷視頻是否已經(jīng)開始播放;客戶端根據(jù)播放信息判斷視頻是否已經(jīng)結(jié)束播放;客戶端根據(jù)播放信息判斷視頻是否處于暫停狀態(tài);客戶端判斷本地視頻緩沖區(qū)的數(shù)據(jù)是否耗盡;客戶端判斷本地視頻緩沖區(qū)的數(shù)據(jù)是否出錯;客戶端如果判斷出視頻已經(jīng)開始播放,視頻沒有結(jié)束播放,視頻沒有處于暫停狀態(tài),本地視頻緩沖區(qū)的數(shù)據(jù)沒有耗盡且沒有出錯,則視頻狀態(tài)為播放狀態(tài);以及客戶端如果判斷出視頻已經(jīng)開始播放,并且沒有結(jié)束播放,視頻沒有處于暫停狀態(tài),本地視頻緩沖區(qū)的數(shù)據(jù)已經(jīng)耗盡且沒有出錯,則視頻狀態(tài)為緩沖狀態(tài)。
[0008]進一步地,客戶端檢測本地視頻處于播放狀態(tài)的總時長包括:獲取視頻處于播放狀態(tài)的累加播放時長;獲取視頻處于播放狀態(tài)的當(dāng)前播放時長;以及將累加播放時長和當(dāng)前播放時長的和作為視頻處于播放狀態(tài)的總時長。
[0009]進一步地,獲取視頻處于播放狀態(tài)的累加播放時長包括:記錄視頻進入播放狀態(tài)的時刻;記錄視頻離開播放狀態(tài)的時刻;計算視頻進入播放狀態(tài)的時刻和視頻離開播放狀態(tài)的時刻的差值,得到歷史播放時長;獲取視頻播放過程中的多個歷史播放時長;以及將多個歷史播放時長的和作為累加播放時長。
[0010]進一步地,客戶端檢測視頻處于緩沖狀態(tài)的總時長包括:獲取視頻處于緩沖狀態(tài)的累加緩沖時長;獲取視頻處于緩沖狀態(tài)的當(dāng)前緩沖時長;以及將累加緩沖時長和當(dāng)前緩沖時長的和作為視頻處于緩沖狀態(tài)的總時長。
[0011]進一步地,獲取視頻處于緩沖狀態(tài)的累加緩沖時長包括:記錄視頻進入緩沖狀態(tài)的時刻;記錄視頻離開緩沖狀態(tài)的時刻;計算視頻進入緩沖狀態(tài)的時刻和視頻離開緩沖狀態(tài)的時刻的差值,得到歷史緩沖時長;獲取視頻播放過程中的多個歷史緩沖時長;以及將多個歷緩沖時長進行的和作為累加緩沖時長。
[0012]進一步地,客戶端檢測本地視頻處于播放狀態(tài)的總時長包括:獲取客戶端系統(tǒng)時間單元計算的視頻處于播放狀態(tài)的第一時長信息;獲取客戶端計時器計算的視頻處于播放狀態(tài)的第二時長信息;計算第二時長信息和第一時長信息的差值,并將差值除以第一時長信息的值作為計算結(jié)果;比較計算結(jié)果與預(yù)定值的大?。蝗绻嬎憬Y(jié)果大于預(yù)定值或者小于預(yù)定值的負(fù)數(shù),則將第二時長信息作為視頻處于播放狀態(tài)的時長;以及如果計算結(jié)果大于等于預(yù)定值的負(fù)數(shù),且小于等于預(yù)定值,則將第一時長信息作為視頻處于播放狀態(tài)的時長。
[0013]進一步地,客戶端檢測本地視頻處于緩沖狀態(tài)的總時長包括:獲取客戶端系統(tǒng)時間單元計算的視頻處于緩沖狀態(tài)的第三時長信息;獲取客戶端計時器計算的視頻處于緩沖狀態(tài)的第四時長信息;計算第四時長信息和第三時長信息的差值,并將差值除以第三時長信息的值作為計算結(jié)果;比較計算結(jié)果與預(yù)定值的大??;如果計算結(jié)果大于預(yù)定值或者小于預(yù)定值的負(fù)數(shù),則將第四時長信息作為視頻處于緩沖狀態(tài)的時長;以及如果計算結(jié)果大于等于預(yù)定值的負(fù)數(shù),且小于等于預(yù)定值,則將第三時長信息作為視頻處于緩沖狀態(tài)的時長。
[0014]為了實現(xiàn)上述目的,根據(jù)本發(fā)明的另一方面,提供了一種視頻播放流暢度的檢測裝置。根據(jù)本發(fā)明的視頻播放流暢度的檢測裝置包括:第一檢測單元,用于檢測客戶端本地視頻處于播放狀態(tài)的總時長;第二檢測單元,用于檢測客戶端的視頻處于緩沖狀態(tài)的總時長;以及計算單元,用于根據(jù)視頻處于播放狀態(tài)的總時長和緩沖狀態(tài)的總時長計算視頻播放流暢度。
[0015]進一步地,視頻播放流暢度的檢測裝置還包括:獲取單元,用于在檢測客戶端本地視頻處于播放狀態(tài)的總時長和檢測客戶端的視頻處于緩沖狀態(tài)的總時長之前,獲取客戶端的視頻的播放信息;第一判斷單元,用于根據(jù)播放信息判斷視頻是否已經(jīng)開始播放;第二判斷單元,用于根據(jù)播放信息判斷視頻是否已經(jīng)結(jié)束播放;第三判斷單元,用于根據(jù)播放信息判斷視頻是否處于暫停狀態(tài);第四判斷單元,用于判斷本地視頻緩沖區(qū)的數(shù)據(jù)是否耗盡;第五判斷單元,用于判斷本地視頻緩沖區(qū)的數(shù)據(jù)是否出錯;第一確定單元,用于在判斷出視頻已經(jīng)開始播放,視頻沒有結(jié)束播放,視頻沒有處于暫停狀態(tài),本地視頻緩沖區(qū)的數(shù)據(jù)沒有耗盡且沒有出錯時,確定視頻狀態(tài)為播放狀態(tài);以及第二確定單元,用于在判斷出視頻已經(jīng)開始播放,并且沒有結(jié)束播放,視頻沒有處于暫停狀態(tài),本地視頻緩沖區(qū)的數(shù)據(jù)已經(jīng)耗盡且沒有出錯時,確定視頻狀態(tài)為緩沖狀態(tài)。
[0016]進一步地,第一檢測單元包括:第一獲取模塊,用于獲取視頻處于播放狀態(tài)的累加播放時長;第二獲取模塊,用于獲取視頻處于播放狀態(tài)的當(dāng)前播放時長;以及第一加和模塊,用于將累加播放時長和當(dāng)前播放時長的和作為視頻處于播放狀態(tài)的總時長。
[0017]進一步地,第一獲取模塊包括:第一記錄子模塊,用于記錄視頻進入播放狀態(tài)的時刻;第二記錄子模塊,用于記錄視頻離開播放狀態(tài)的時刻;第一計算子模塊,用于計算視頻進入播放狀態(tài)的時刻和視頻離開播放狀態(tài)的時刻的差值,得到歷史播放時長;第一獲取子模塊,用于獲取視頻播放過程中的多個歷史播放時長;以及第一累加子模塊,用于將多個歷史播放時長的和作為累加播放時長。
[0018]進一步地,第一檢測單元包括:第三獲取模塊,用于獲取視頻處于緩沖狀態(tài)的累加緩沖時長;第四獲取模塊,用于獲取視頻處于緩沖狀態(tài)的當(dāng)前緩沖時長;以及第二加和模塊,用于將累加緩沖時長和當(dāng)前緩沖時長的和作為視頻處于緩沖狀態(tài)的總時長。
[0019]進一步地,第三獲取模塊包括:第三記錄子模塊,用于記錄視頻進入緩沖狀態(tài)的時刻;第四記錄子模塊,用于記錄視頻離開緩沖狀態(tài)的時刻;第二計算子模塊,用于計算視頻進入緩沖狀態(tài)的時刻和視頻離開緩沖狀態(tài)的時刻的差值,得到歷史緩沖時長;第二獲取子模塊,用于獲取視頻播放過程中的多個歷史緩沖時長;以及第二累加子模塊,用于將多個歷緩沖時長進行的和作為累加緩沖時長。
[0020]進一步地,第一檢測單元包括:第一狀態(tài)獲取模塊,用于獲取客戶端系統(tǒng)時間單元計算的視頻處于播放狀態(tài)的第一時長信息;播放時長獲取模塊,用于獲取客戶端計時器計算的視頻處于播放狀態(tài)的第二時長信息;第一計算模塊,用于計算第二時長信息和第一時長信息的差值,并將差值除以第一時長信息的值作為計算結(jié)果;第一比較模塊,用于比較計算結(jié)果與預(yù)定值的大小;第一確定模塊,在計算結(jié)果大于預(yù)定值或者小于預(yù)定值的負(fù)數(shù)時,將第二時長信息作為視頻處于播放狀態(tài)的時長;以及第二確定模塊,在計算結(jié)果大于等于預(yù)定值的負(fù)數(shù),且小于等于預(yù)定值時,將第一時長信息作為視頻處于播放狀態(tài)的時長。
[0021]進一步地,第二檢測單元包括:第二狀態(tài)獲取模塊,用于獲取客戶端系統(tǒng)時間單元計算的視頻處于緩沖狀態(tài)的第三時長信息;緩沖時長獲取模塊,用于獲取客戶端計時器計算的視頻處于緩沖狀態(tài)的第四時長信息;第二計算模塊,用于計算第四時長信息和第三時長信息的差值,并將差值除以第三時長信息的值作為計算結(jié)果;第二比較模塊,用于比較計算結(jié)果與預(yù)定值的大??;第三確定模塊,用于在計算結(jié)果大于預(yù)定值或者小于預(yù)定值的負(fù)數(shù)時,將第四時長信息作為視頻處于緩沖狀態(tài)的時長;以及第四確定模塊,用于在計算結(jié)果大于等于預(yù)定值的負(fù)數(shù),且小于等于預(yù)定值時,將第三時長信息作為視頻處于緩沖狀態(tài)的時長。
[0022]通過本發(fā)明,采用客戶端檢測本地視頻處于播放狀態(tài)的總時長;客戶端檢測視頻處于緩沖狀態(tài)的總時長;以及客戶端根據(jù)視頻處于播放狀態(tài)的總時長和緩沖狀態(tài)的總時長計算視頻播放流暢度,解決了現(xiàn)有技術(shù)總對客戶端視頻播放流暢度的檢測不準(zhǔn)確的問題,進而達到了準(zhǔn)確檢測客戶端視頻播放流暢度的效果。
【專利附圖】
【附圖說明】
[0023]構(gòu)成本申請的一部分的附圖用來提供對本發(fā)明的進一步理解,本發(fā)明的示意性實施例及其說明用于解釋本發(fā)明,并不構(gòu)成對本發(fā)明的不當(dāng)限定。在附圖中:
[0024]圖1是根據(jù)本發(fā)明第一實施例的視頻播放流暢度的檢測方法的流程圖;[0025]圖2是根據(jù)本發(fā)明第二實施例的視頻播放流暢度的檢測方法的流程圖;
[0026]圖3是根據(jù)本發(fā)明第三實施例的視頻播放流暢度的檢測方法的流程圖;
[0027]圖4是根據(jù)本發(fā)明第四實施例的視頻播放流暢度的檢測方法的流程圖;
[0028]圖5是根據(jù)本發(fā)明第五實施例的視頻播放流暢度的檢測方法的流程圖;
[0029]圖6是根據(jù)本發(fā)明第六實施例的視頻播放流暢度的檢測方法的流程圖;
[0030]圖7是根據(jù)本發(fā)明第一實施例的視頻播放流暢度的檢測裝置的示意圖;
[0031]圖8是根據(jù)本發(fā)明第二實施例的視頻播放流暢度的檢測裝置的示意圖;
[0032]圖9是根據(jù)本發(fā)明第三實施例的視頻播放流暢度的檢測裝置的示意圖;
[0033]圖10是根據(jù)本發(fā)明第四實施例的視頻播放流暢度的檢測裝置的示意圖;
[0034]圖11是根據(jù)本發(fā)明第五實施例的視頻播放流暢度的檢測裝置的示意圖;以及
[0035]圖12是根據(jù)本發(fā)明第六實施例的視頻播放流暢度的檢測裝置的示意圖。
【具體實施方式】
[0036]需要說明的是,在不沖突的情況下,本申請中的實施例及實施例中的特征可以相互組合。下面將參考附圖并結(jié)合實施例來詳細(xì)說明本發(fā)明。
[0037]為了使本【技術(shù)領(lǐng)域】的人員更好地理解本發(fā)明方案,下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發(fā)明一部分的實施例,而不是全部的實施例?;诒景l(fā)明中的實施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都應(yīng)當(dāng)屬于本發(fā)明保護的范圍。
[0038]需要說明的是,本發(fā)明的說明書和權(quán)利要求書及上述附圖中的術(shù)語“第一”、“第二”等是用于區(qū)別類似的對象,而不必用于描述特定的順序或先后次序。應(yīng)該理解這樣使用的數(shù)據(jù)在適當(dāng)情況下可以互換,以便這里描述的本發(fā)明的實施例能夠以除了在這里圖示或描述的那些以外的順序?qū)嵤?。此外,術(shù)語“包括”和“具有”以及他們的任何變形,意圖在于覆蓋不排他的包含,例如,包含了一系列步驟或單元的過程、方法、系統(tǒng)、產(chǎn)品或設(shè)備不必限于清楚地列出的那些步驟或單元,而是可包括沒有清楚地列出的或?qū)τ谶@些過程、方法、產(chǎn)品或設(shè)備固有的其它步驟或單元。
[0039]本發(fā)明提供了一種視頻播放流暢度的檢測方法。該方法可以運行在計算機處理裝置上,以下結(jié)合附圖對該視頻播放流暢度的檢測方法進行說明。
[0040]圖1是根據(jù)本發(fā)明第一實施例的視頻播放流暢度的檢測方法的流程圖。如圖所示,該視頻播放流暢度的檢測方法包括以下步驟:
[0041]步驟S101,客戶端檢測本地視頻處于播放狀態(tài)的總時長。
[0042]步驟S102,客戶端檢測視頻處于緩沖狀態(tài)的總時長。
[0043]步驟S103,客戶端根據(jù)視頻處于播放狀態(tài)的總時長和緩沖狀態(tài)的總時長計算視頻
播放流暢度。
[0044]—般地,視頻在播放中會有播放狀態(tài)、緩沖狀態(tài)和暫停狀態(tài)。與視頻播放流暢度相關(guān)的視頻狀態(tài)有播放狀態(tài)和緩沖狀態(tài),由于暫停狀態(tài)不屬于視頻本身的播放問題,因此在檢測視頻播放流暢度時不關(guān)心視頻處于暫停狀態(tài)的時長和次數(shù)。
[0045]在視頻播放過程中,可能交替出現(xiàn)視頻處于播放狀態(tài)和緩沖狀態(tài)的情況,視頻在整個播放過程中,由處于播放狀態(tài)和緩沖狀態(tài)的多個時間段組成。因此,在計算視頻播放流暢度的時候,需要計算本地視頻處于播放狀態(tài)的總時長和處于緩沖狀態(tài)的總時長。容易理解的是,視頻在播放過程中處于緩沖狀態(tài)的總時長越長,視頻播放流暢度越低,視頻處于緩沖狀態(tài)的次數(shù)越多,視頻播放流暢度越低。
[0046]綜上所述,通過檢測視頻處于播放狀態(tài)的總時長和處于緩沖狀態(tài)的總時長,能夠計算得到視頻播放流暢度。而計算視頻播放流暢度的方法可以通過視頻處于播放狀態(tài)的總時長和處于緩沖狀態(tài)的總時長得到,在下面的實施例中會詳細(xì)說明,在此不做贅述。
[0047]由于在客戶端檢測本地視頻的播放狀態(tài)或者緩沖狀態(tài)不會受限于網(wǎng)絡(luò)狀態(tài)或者用戶所使用的播放器,因此直接檢測客戶端的視頻播放狀態(tài)能夠使得檢測得到的視頻播放流暢度更加準(zhǔn)確。
[0048]圖2是根據(jù)本發(fā)明第二實施例的視頻播放流暢度的檢測方法的流程圖。該視頻播放流暢度的檢測方法可以作為圖1所示實施例的【具體實施方式】,如圖所示,在客戶端檢測本地視頻處于播放狀態(tài)的總時長和客戶端檢測視頻處于緩沖狀態(tài)的總時長之前,該視頻播放流暢度的檢測方法包括以下步驟:
[0049]步驟S201,客戶端獲取視頻的播放信息。視頻狀態(tài)可以是視頻播放狀態(tài),也可以是視頻緩沖狀態(tài),為了檢測視頻處于播放狀態(tài)的總時長和視頻處于緩沖狀態(tài)的總時長,首先要判斷視頻處于播放狀態(tài)或者緩沖狀態(tài)。
[0050]視頻的播放信息可以用來表征當(dāng)前視頻觸發(fā)了視頻播放、視頻暫?;蛘咭曨l繼續(xù)的視頻狀態(tài)。通過獲取視頻的播放信息判斷視頻當(dāng)前處于播放狀態(tài)或者緩沖狀態(tài)。
[0051]步驟S202,客戶端根據(jù)播放信息判斷視頻是否已經(jīng)開始播放。視頻緩沖狀態(tài)和視頻播放狀態(tài)都是在視頻播放過程中才會出現(xiàn)的狀態(tài),要判斷視頻處于視頻播放狀態(tài)或者視頻緩沖狀態(tài)首先要判斷視頻是否已經(jīng)開始播放。
[0052]步驟S203,客戶端根據(jù)播放信息判斷視頻是否已經(jīng)結(jié)束播放。視頻緩沖狀態(tài)和視頻播放狀態(tài)都是在視頻播放過程中才會出現(xiàn)的狀態(tài),要判斷視頻處于視頻播放狀態(tài)或者視頻緩沖狀態(tài)首先要判斷視頻是否已經(jīng)開始播放,并且視頻沒有結(jié)束播放。
[0053]下面以一種常見播放器說明如何判斷是否已經(jīng)開始播放以及判斷是否已經(jīng)結(jié)束播放。
[0054]對于Flash ActionScript 3的NetStream(—種視頻播放組件),客戶端可以監(jiān)聽該視頻播放組件的NetStatusEvent.NET_STATUS事件。
[0055]判斷當(dāng)前播放是否已經(jīng)觸發(fā)evt.1nfo, code== " NetStream.Play.Start",如果已經(jīng)觸發(fā)evt.1nfo, code== " NetStream.Play.Start",則確定視頻已經(jīng)開始播放。
[0056]在確定當(dāng)前視頻已經(jīng)觸發(fā)evt.1nfo, code==" NetStream.Play.Start "之后,判斷當(dāng)前視頻是否觸發(fā)evt.1nfo, code==" NetStream.Play.Stop",如果沒有觸發(fā)evt.1nfo, code==" NetStream.Play.Stop",確定視頻沒有結(jié)束播放,否則視頻已經(jīng)結(jié)束播放。
[0057]步驟S204,客戶端根據(jù)播放信息判斷視頻是否處于暫停狀態(tài)。在視頻播放過程中,通常會產(chǎn)生三種狀態(tài),分別為播放、繼續(xù)和暫停,因此,在播放信息中會存儲著三種狀態(tài),根據(jù)播放信息能夠判斷視頻是否處于暫停狀態(tài)。
[0058]對于Flash ActionScript 3的NetStream (—種視頻播放組件),客戶端監(jiān)聽該視頻播放組件的NetStatusEvent.NET_STATUS事件,判斷最近一次調(diào)用的命令是播放、繼續(xù)還是暫停,如果最近一次調(diào)用的命令是暫停,則確定視頻當(dāng)前處于暫停狀態(tài)。
[0059]步驟S205,客戶端判斷本地視頻緩沖區(qū)的數(shù)據(jù)是否耗盡。如果本地視頻緩沖區(qū)的數(shù)據(jù)已經(jīng)耗盡,意味著視頻播放所需要的數(shù)據(jù)還沒有下載完成,視頻播放需要等待數(shù)據(jù),即視頻處于緩沖狀態(tài)。
[0060]對于上述例子中監(jiān)聽播放組件的NetStatusEvent.NET_STATUS事件,如果evt.1nfo, code== " NetStream.Buffer.Empty",則確定本地視頻緩沖區(qū)的數(shù)據(jù)已經(jīng)耗盡。
[0061]步驟S206,客戶端判斷本地視頻緩沖區(qū)的數(shù)據(jù)是否出錯。視頻播放過程中如果出錯,那么視頻既不會處于緩沖狀態(tài),也不會處于播放狀態(tài)。
[0062]對于監(jiān)聽播放組件的NetStatusEvent.NET_STATUS 事件,如果 evt.1nfo, code 等于一個表示播放出錯值,則確定視頻播放出錯。
[0063]步驟S207,客戶端如果判斷出視頻已經(jīng)開始播放,視頻沒有結(jié)束播放,視頻沒有處于暫停狀態(tài),本地視頻緩沖區(qū)的數(shù)據(jù)沒有耗盡且沒有出錯,則視頻狀態(tài)為播放狀態(tài)。
[0064]對于Flash ActionScript 3的NetStream(—種視頻播放組件),客戶端可以監(jiān)聽該視頻播放組件的NetStatusEvent.NET_STATUS事件。
[0065]觸發(fā)evt.1nfo, code== " NetStream.Play.Start "之后,但未觸發(fā) evt.1nfo,code==" NetStream.Play.Stop ",判斷出最近一次調(diào)用的命令是繼續(xù)或者播放,evt.1nfo, code不是"NetStream.Buffer.Empty ",也不是表示播放出錯的值,確定視頻處于播放狀態(tài)。
[0066]步驟S208,客戶端如果判斷出視頻已經(jīng)開始播放,并且沒有結(jié)束播放,視頻沒有處于暫停狀態(tài),本地視頻緩沖區(qū)的數(shù)據(jù)已經(jīng)耗盡且沒有出錯,則視頻狀態(tài)為緩沖狀態(tài)。
[0067]對于Flash ActionScript 3的NetStream(—種視頻播放組件),客戶端可以監(jiān)聽該視頻播放組件的NetStatusEvent.NET_STATUS事件。
[0068]觸發(fā)evt.1nfo, code== " NetStream.Play.Start "之后,但未觸發(fā) evt.1nfo,code==" NetStream.Play.Stop ",判斷出最近一次調(diào)用的命令是繼續(xù)或者播放,evt.1nfo, code 是"NetStream.Buffer.Empty",確定視頻處于緩沖狀態(tài)。
[0069]對于Silverlight的MediaElement (—種視頻播放組件),客戶端可以監(jiān)聽該播放組件中的CurrentStateChanged事件來判斷視頻處于播放狀態(tài)或者緩沖狀態(tài)。
[0070]當(dāng)CurrentStateChanged事件被觸發(fā)時,如果事件當(dāng)前值是Playing則視頻處于播放狀態(tài),如果事件當(dāng)前值是Buffering,則視頻處于緩沖狀態(tài)。
[0071]由于播放器的類型有很多種,上述兩種常用播放器的判斷方法只是用于舉例說明本發(fā)明視頻播放流暢度的檢測方法,并不用于限定本發(fā)明。應(yīng)當(dāng)理解的是,在具體用用的時候,可以根據(jù)播放器的類型確定被觸發(fā)的對象,從而確定視頻處于播放狀態(tài)或者緩沖狀態(tài)。
[0072]圖3是根據(jù)本發(fā)明第三實施例的視頻播放流暢度的檢測方法的流程圖。該視頻播放流暢度的檢測方法可以作為圖1所示實施例的【具體實施方式】,如圖所示,該視頻播放流暢度的檢測方法中客戶端檢測本地視頻處于播放狀態(tài)的總時長包括如下步驟:
[0073]步驟S301,獲取視頻處于播放狀態(tài)的累加播放時長。由于視頻在播放過程中會出現(xiàn)播放狀態(tài)和緩沖狀態(tài)交替出現(xiàn)的情況,因此,視頻處于播放狀態(tài)是時長是很多不連續(xù)的時間段組成的,視頻處于播放狀態(tài)的累加播放時長就是這些不連續(xù)的時間段的總和。
[0074]步驟S302,獲取視頻處于播放狀態(tài)的當(dāng)前播放時長。判斷出當(dāng)前視頻處于播放狀態(tài)之后,獲取視頻處于當(dāng)前播放狀態(tài)的時長。如果視頻當(dāng)前處于緩沖狀態(tài),則當(dāng)前播放時長為O。
[0075]步驟S303,將累加播放時長和當(dāng)前播放時長的和作為視頻處于播放狀態(tài)的總時長。此時得到的視頻處于播放狀態(tài)的總時長,即從視頻開始播放算起,到當(dāng)前時刻止,視頻處于播放狀態(tài)的總時長。
[0076]優(yōu)選地,獲取視頻處于播放狀態(tài)的累加播放時長包括以下步驟:
[0077]步驟S3011,記錄視頻進入播放狀態(tài)的時刻。視頻進入播放狀態(tài)的時刻可以為從未播放狀態(tài)進入播放狀態(tài),或者從暫停狀態(tài)進入播放狀態(tài),還可以從緩沖狀態(tài)進入播放狀態(tài),無論哪種進入播放狀態(tài),記錄下進入播放狀態(tài)的時刻。
[0078]步驟S3012,記錄視頻離開播放狀態(tài)的時刻。視頻離開播放狀態(tài)可以是從播放狀態(tài)變?yōu)闀和顟B(tài),或者從播放狀態(tài)變?yōu)椴シ沤Y(jié)束,或者從播放狀態(tài)變?yōu)榫彌_狀態(tài)。記錄視頻從播放狀態(tài)變?yōu)樯鲜鰻顟B(tài)的時刻。
[0079]步驟S3013,計算視頻進入播放狀態(tài)的時刻和視頻離開播放狀態(tài)的時刻的差值,得到歷史播放時長。視頻進入播放狀態(tài)的時刻和視頻離開播放狀態(tài)的時刻的差值為視頻處于播放狀態(tài)的一個時間段,即歷史播放時長。
[0080]步驟S3014,獲取視頻播放過程中的多個歷史播放時長。在整個視頻播放過程中,視頻可能會多次進入視頻播放狀態(tài)、緩沖狀態(tài)或者暫停狀態(tài)。獲取視頻播放過程中當(dāng)前時刻之前的多個歷史播放時長。
[0081]步驟S3015,將多個歷史播放時長的和作為累加播放時長。
[0082]通過步驟S3011至步驟S3015,可以獲取播放過程中的每個處于播放狀態(tài)的歷史播放時長,多個歷史播放時長的總和作為累加播放時長可以獲知當(dāng)前時刻之前視頻處于播放狀態(tài)的時長。
[0083]圖4是根據(jù)本發(fā)明第四實施例的視頻播放流暢度的檢測方法的流程圖。如圖所示,該視頻播放流暢度的檢測方法中客戶端檢測本地視頻處于緩沖狀態(tài)的總時長包括如下步驟:
[0084]步驟S401,獲取視頻處于緩沖狀態(tài)的累加緩沖時長。由于視頻在播放過程中會出現(xiàn)播放狀態(tài)和緩沖狀態(tài)交替出現(xiàn)的情況,因此,視頻處于緩沖狀態(tài)是時長是很多不連續(xù)的時間段組成的,視頻處于緩沖狀態(tài)的累加緩沖時長就是這些不連續(xù)的時間段的總和。
[0085]步驟S402,獲取視頻處于緩沖狀態(tài)的當(dāng)前緩沖時長。判斷出當(dāng)前視頻處于緩沖狀態(tài)之后,獲取視頻處于當(dāng)前緩沖狀態(tài)的時長。如果視頻當(dāng)前處于播放狀態(tài),則當(dāng)前緩沖時長為O。
[0086]步驟S403,將累加緩沖時長和當(dāng)前緩沖時長的和作為視頻處于緩沖狀態(tài)的總時長。此時得到的視頻處于緩沖狀態(tài)的總時長,即從視頻開始緩沖算起,到當(dāng)前時刻止,視頻處于緩沖狀態(tài)的總時長。
[0087]優(yōu)選地,獲取視頻處于緩沖狀態(tài)的累加緩沖時長包括以下步驟:
[0088]步驟S4011,記錄視頻進入緩沖狀態(tài)的時刻。視頻進入緩沖狀態(tài)的時刻可以為從未緩沖狀態(tài)進入緩沖狀態(tài),或者從暫停狀態(tài)進入緩沖狀態(tài),還可以從播放狀態(tài)進入緩沖狀態(tài),無論哪種進入緩沖狀態(tài),記錄下進入緩沖狀態(tài)的時刻。
[0089]步驟S4012,記錄視頻離開緩沖狀態(tài)的時刻。視頻離開緩沖狀態(tài)可以是從緩沖狀態(tài)變?yōu)闀和顟B(tài),或者從緩沖狀態(tài)變?yōu)椴シ沤Y(jié)束,或者從緩沖狀態(tài)變?yōu)椴シ艩顟B(tài)。記錄視頻從緩沖狀態(tài)變?yōu)樯鲜鰻顟B(tài)的時刻。
[0090]步驟S4013,計算視頻進入緩沖狀態(tài)的時刻和視頻離開緩沖狀態(tài)的時刻的差值,得到歷史緩沖時長。視頻進入緩沖狀態(tài)的時刻和視頻離開緩沖狀態(tài)的時刻的差值為視頻處于緩沖狀態(tài)的一個時間段,即歷史緩沖時長。
[0091]步驟S4014,獲取視頻播放過程中的多個歷史緩沖時長。在整個視頻播放過程中,視頻可能會多次進入視頻緩沖狀態(tài)、緩沖狀態(tài)或者暫停狀態(tài)。獲取視頻播放過程中當(dāng)前時刻之前的多個歷史緩沖時長。
[0092]步驟S4015,將多個歷緩沖時長進行的和作為累加緩沖時長。
[0093]通過步驟S4011至步驟S4015,可以獲取播放過程中的每個處于緩沖狀態(tài)的歷史緩沖時長,多個歷史緩沖時長的總和作為累加緩沖時長可以獲知當(dāng)前時刻之前視頻處于緩沖狀態(tài)的時長。
[0094]圖5是根據(jù)本發(fā)明第五實施例的視頻播放流暢度的檢測方法的流程圖。該圖所示的視頻播放流暢度的檢測方法可以作為圖1所示實施例的優(yōu)選實施方式,如圖所述,該視頻播放流暢度的檢測方法中客戶端檢測本地視頻處于播放狀態(tài)的總時長包括以下步驟:
[0095]步驟S501,獲取客戶端系統(tǒng)時間單元計算的視頻處于播放狀態(tài)的第一時長信息??蛻舳讼到y(tǒng)時間單元計算的第一時長信息為視頻進入播放狀態(tài)之后,離開播放狀態(tài)之前的時長,例如進入播放狀態(tài)的時間為18:00,離開播放狀態(tài)的時間為18:05,則第一時長信息為5分鐘。但是,如果在視頻播放I分鐘后人為調(diào)節(jié)客戶端系統(tǒng)時間,將系統(tǒng)向后調(diào)了一個小時變?yōu)?9:01,則第一時長信息為I小時5分鐘。
[0096]步驟S502,獲取客戶端計時器計算的視頻處于播放狀態(tài)的第二時長信息。計時器可以周期性的更新流逝時間的值得到第二時長信息,例如設(shè)定計時器的周期為0.1秒觸發(fā)一次,每次觸發(fā)時將持續(xù)的秒數(shù)加0.1秒,那么5.2秒期間將觸發(fā)52次,最終得到的持續(xù)時間就是5.2秒。但是,如果播放器的精度不高時,播放器中設(shè)定的周期為0.1秒時,實際觸發(fā)間隔可能是0.113秒,或者0.092秒。
[0097]步驟S503,計算第二時長信息和第一時長信息的差值,并將差值除以第一時長信息的值作為計算結(jié)果。為了使得計算的時長更加準(zhǔn)確,通過計算第二時長信息和第一時長信息的差值,將差值除以第一時長信息的值作為計算結(jié)果來確定準(zhǔn)確的時長信息。
[0098]步驟S504,比較計算結(jié)果與預(yù)定值的大小。預(yù)定值可以是一個比例閾值。
[0099]步驟S505,如果計算結(jié)果大于預(yù)定值或者小于預(yù)定值的負(fù)數(shù),則將第二時長信息作為視頻處于播放狀態(tài)的時長。如果計算結(jié)果大于預(yù)定值或者小于預(yù)定值的負(fù)數(shù),則認(rèn)為系統(tǒng)時間被更改,計數(shù)器計算的第二時長信息更準(zhǔn)確,將第二時長信息作為視頻處于播放狀態(tài)的時長。
[0100]步驟S506,如果計算結(jié)果大于等于預(yù)定值的負(fù)數(shù),且小于等于預(yù)定值,則將第一時長信息作為視頻處于播放狀態(tài)的時長。
[0101]因為計算結(jié)果大于預(yù)定值或者小于預(yù)定值的負(fù)數(shù),所以確定認(rèn)為系統(tǒng)時間沒有被更改,將第一時長信息作為視頻處于播放狀態(tài)的時長。
[0102]通過比較系統(tǒng)計算時間和計時器計算時間的差值確定視頻處于播放狀態(tài)的總時長,能夠提高計算視頻處于播放狀態(tài)的時長的準(zhǔn)確性。[0103]圖6是根據(jù)本發(fā)明第六實施例的視頻播放流暢度的檢測方法的流程圖。該圖所示的視頻播放流暢度的檢測方法可以作為圖1所示實施例的優(yōu)選實施方式,如圖所述,該視頻播放流暢度的檢測方法中客戶端檢測本地視頻處于緩沖狀態(tài)的總時長包括以下步驟:
[0104]步驟S601,獲取客戶端系統(tǒng)時間單元計算的視頻處于緩沖狀態(tài)的第三時長信息??蛻舳讼到y(tǒng)時間單元計算的第三時長信息為視頻進入緩沖狀態(tài)之后,離開緩沖狀態(tài)之前的時長,例如進入緩沖狀態(tài)的時間為18:00,離開緩沖狀態(tài)的時間為18:05,則第三時長信息為5分鐘。但是,如果在視頻緩沖I分鐘后人為調(diào)節(jié)客戶端系統(tǒng)時間,將系統(tǒng)向后調(diào)了一個小時變?yōu)?9:01,則第一時長信息為I小時5分鐘。
[0105]步驟S602,獲取客戶端計時器計算的視頻處于緩沖狀態(tài)的第四時長信息。計時器可以周期性的更新流逝時間的值得到第四時長信息,例如設(shè)定計時器的周期為0.1秒觸發(fā)一次,每次觸發(fā)時將持續(xù)的秒數(shù)加0.1秒,那么5.2秒期間將觸發(fā)52次,最終得到的持續(xù)時間就是5.2秒。但是,如果播放器的精度不高時,播放器中設(shè)定的周期為0.1秒時,實際觸發(fā)間隔可能是0.113秒,或者0.092秒。
[0106]步驟S603,計算第四時長信息和第三時長信息的差值,并將差值除以第三時長信息的值作為計算結(jié)果。為了使得計算的時長更加準(zhǔn)確,通過計算第四時長信息和第三時長信息的差值,將差值除以第三時長信息的值作為計算結(jié)果來確定準(zhǔn)確的時長信息。
[0107]步驟S604,比較計算結(jié)果與預(yù)定值的大小。預(yù)定值可以是一個比例閾值。
[0108]步驟S605,如果計算結(jié)果大于預(yù)定值或者小于預(yù)定值的負(fù)數(shù),則將第四時長信息作為視頻處于緩沖狀態(tài)的時長。如果計算結(jié)果大于預(yù)定值或者小于預(yù)定值的負(fù)數(shù),則認(rèn)為系統(tǒng)時間被更改,計數(shù)器計算的第四時長信息更準(zhǔn)確,將第四時長信息作為視頻處于播放狀態(tài)的時長。
[0109]步驟S606,如果計算結(jié)果大于等于預(yù)定值的負(fù)數(shù),且小于等于預(yù)定值,則將第三時長信息作為視頻處于緩沖狀態(tài)的時長。
[0110]因為計算結(jié)果大于等于預(yù)定值的負(fù)數(shù),且小于等于預(yù)定值,所以確定認(rèn)為系統(tǒng)時間沒有被更改,將第三時長信息作為視頻處于播放狀態(tài)的時長。
[0111]通過比較系統(tǒng)計算時間和計時器計算時間的差值確定視頻處于緩沖狀態(tài)的總時長,能夠提高計算視頻處于緩沖狀態(tài)的時長的準(zhǔn)確性。
[0112]優(yōu)選地,根據(jù)視頻處于播放狀態(tài)的總時長和緩沖狀態(tài)的總時長計算視頻播放流暢度包括:用常數(shù)a乘以視頻處于緩沖狀態(tài)的總時長,用常數(shù)b乘以視頻處于緩沖狀態(tài)的次數(shù),將上述兩個乘積與視頻處于播放狀態(tài)的總時長求和,得到加和C,再用視頻處于播放狀態(tài)的總時長除以該加和C,得到的商可以作為視頻播放流暢度。用上述方法計算得到的視頻播放流暢度處于0至I之間,數(shù)值越大,流暢度越高,數(shù)值越小,流暢度越低。用公式表示如下:
[0113]
_視頻處于播放狀態(tài)的總時長_
t/x視頻處亍緩沖狀態(tài)的總時長+bx視頻緩沖次數(shù)+視頻處亍播放狀態(tài)的總時長
[0114]本發(fā)明實施例還提供了 一種視頻播放流暢度的檢測裝置。
[0115]本發(fā)明實施例的視頻播放流暢度的檢測方法可以通過本發(fā)明實施例所提供的視頻播放流暢度的檢測裝置來執(zhí)行,本發(fā)明實施例的視頻播放流暢度的檢測裝置也可以用于執(zhí)行本發(fā)明實施例所提供的視頻播放流暢度的檢測方法。
[0116]圖7是根據(jù)本發(fā)明第一實施例的視頻播放流暢度的檢測裝置的示意圖。如圖所示,該視頻播放流暢度的檢測裝置包括第一檢測單元10、第二檢測單元20和計算單元30。
[0117]第一檢測單元10用于檢測客戶端本地視頻處于播放狀態(tài)的總時長。
[0118]第二檢測單元20用于檢測客戶端的視頻處于緩沖狀態(tài)的總時長。
[0119]計算單元30用于根據(jù)視頻處于播放狀態(tài)的總時長和緩沖狀態(tài)的總時長計算視頻播放流暢度。
[0120]一般地,視頻在播放中會有播放狀態(tài)、緩沖狀態(tài)和暫停狀態(tài)。與視頻播放流暢度相關(guān)的視頻狀態(tài)有播放狀態(tài)和緩沖狀態(tài),由于暫停狀態(tài)不屬于視頻本身的播放問題,因此在檢測視頻播放流暢度時不關(guān)心視頻處于暫停狀態(tài)的時長和次數(shù)。
[0121]在視頻播放過程中,可能交替出現(xiàn)視頻處于播放狀態(tài)和緩沖狀態(tài)的情況,視頻在整個播放過程中,由處于播放狀態(tài)和緩沖狀態(tài)的多個時間段組成。因此,在計算視頻播放流暢度的時候,需要計算本地視頻處于播放狀態(tài)的總時長和處于緩沖狀態(tài)的總時長。容易理解的是,視頻在播放過程中處于緩沖狀態(tài)的總時長越長,視頻播放流暢度越低,視頻處于緩沖狀態(tài)的次數(shù)越多,視頻播放流暢度越低。
[0122]綜上所述,通過檢測視頻處于播放狀態(tài)的總時長和處于緩沖狀態(tài)的總時長,能夠計算得到視頻播放流暢度。而計算視頻播放流暢度的方法可以通過視頻處于播放狀態(tài)的總時長和處于緩沖狀態(tài)的總時長得到,在下面的實施例中會詳細(xì)說明,在此不做贅述。
[0123]由于在客戶端檢測本地視頻的播放狀態(tài)或者緩沖狀態(tài)不會受限于網(wǎng)絡(luò)狀態(tài)或者用戶所使用的播放器,因此直接檢測客戶端的視頻播放狀態(tài)能夠使得檢測得到的視頻播放流暢度更加準(zhǔn)確。
[0124]圖8是根據(jù)本發(fā)明第二實施例的視頻播放流暢度的檢測裝置的示意圖。如圖所述,該視頻播放流暢度的檢測裝置包括第一檢測單元10、第二檢測單元20和計算單元30,以及獲取單元11、第一判斷單元22、第二判斷單元33、第三判斷單元44、第四判斷單元55、第一確定單元66和第二確定單元77。
[0125]獲取單元11用于在檢測客戶端本地視頻處于播放狀態(tài)的總時長和檢測客戶端的視頻處于緩沖狀態(tài)的總時長之前,獲取客戶端的視頻信息。視頻狀態(tài)可以是視頻播放狀態(tài),也可以是視頻緩沖狀態(tài),為了檢測視頻處于播放狀態(tài)的總時長和視頻處于緩沖狀態(tài)的總時長,首先要判斷視頻處于播放狀態(tài)或者緩沖狀態(tài)。
[0126]視頻的播放信息可以用來表征當(dāng)前視頻觸發(fā)了視頻播放、視頻暫?;蛘咭曨l繼續(xù)的視頻狀態(tài)。通過獲取視頻的播放信息判斷視頻當(dāng)前處于播放狀態(tài)或者緩沖狀態(tài)。
[0127]第一判斷單元22用于根據(jù)視頻信息判斷視頻是否已經(jīng)開始播放。視頻緩沖狀態(tài)和視頻播放狀態(tài)都是在視頻播放過程中才會出現(xiàn)的狀態(tài),要判斷視頻處于視頻播放狀態(tài)或者視頻緩沖狀態(tài)首先要判斷視頻是否已經(jīng)開始播放。
[0128]第二判斷單元33用于根據(jù)視頻信息判斷視頻是否已經(jīng)結(jié)束播放。視頻緩沖狀態(tài)和視頻播放狀態(tài)都是在視頻播放過程中才會出現(xiàn)的狀態(tài),要判斷視頻處于視頻播放狀態(tài)或者視頻緩沖狀態(tài)首先要判斷視頻是否已經(jīng)開始播放,并且視頻沒有結(jié)束播放。
[0129]下面以一種常見播放器說明如何判斷是否已經(jīng)開始播放以及判斷是否已經(jīng)結(jié)束播放。[0130]對于Flash ActionScript 3的NetStream(—種視頻播放組件),客戶端可以監(jiān)聽該視頻播放組件的NetStatusEvent.NET_STATUS事件。
[0131]判斷當(dāng)前播放是否已經(jīng)觸發(fā)evt.1nfo, code== " NetStream.Play.Start",如果已經(jīng)觸發(fā)evt.1nfo, code== " NetStream.Play.Start",則確定視頻已經(jīng)開始播放。
[0132]在確定當(dāng)前視頻已經(jīng)觸發(fā)evt.1nfo, code==" NetStream.Play.Start "之后,判斷當(dāng)前視頻是否觸發(fā)evt.1nfo, code==" NetStream.Play.Stop",如果沒有觸發(fā)evt.1nfo, code==" NetStream.Play.Stop",確定視頻沒有結(jié)束播放,否則視頻已經(jīng)結(jié)束播放。
[0133]第三判斷單元44用于根據(jù)視頻信息判斷視頻是否處于暫停狀態(tài)。在視頻播放過程中,通常會產(chǎn)生三種狀態(tài),分別為播放、繼續(xù)和暫停,因此,在播放信息中會存儲著三種狀態(tài),根據(jù)播放信息能夠判斷視頻是否處于暫停狀態(tài)。
[0134]對于Flash ActionScript 3的NetStream(—種視頻播放組件),客戶端監(jiān)聽該視頻播放組件的NetStatusEvent.NET_STATUS事件,判斷最近一次調(diào)用的命令是播放、繼續(xù)還是暫停,如果最近一次調(diào)用的命令是暫停,則確定視頻當(dāng)前處于暫停狀態(tài)。
[0135]第四判斷單元55用于判斷本地視頻緩沖區(qū)的數(shù)據(jù)是否耗盡。如果本地視頻緩沖區(qū)的數(shù)據(jù)已經(jīng)耗盡,意味著視頻播放所需要的數(shù)據(jù)還沒有下載完成,視頻播放需要等待數(shù)據(jù),即視頻處于緩沖狀態(tài)。
[0136]對于上述例子中監(jiān)聽播放組件的NetStatusEvent.NET_STATUS事件,如果evt.1nfo, code== " NetStream.Buffer.Empty",則確定本地視頻緩沖區(qū)的數(shù)據(jù)已經(jīng)耗盡。
[0137]第五判斷單元66用于判斷本地視頻緩沖區(qū)的數(shù)據(jù)是否出錯。視頻播放過程中如果出錯,那么視頻既不會處于緩沖狀態(tài),也不會處于播放狀態(tài)。
[0138]對于監(jiān)聽播放組件的NetStatusEvent.NET_STATUS 事件,如果 evt.1nfo, code 等于一個表示播放出錯值,則確定視頻播放出錯。
[0139]第一確定單元77用于在判斷出視頻已經(jīng)開始播放,視頻沒有結(jié)束播放,視頻沒有處于暫停狀態(tài),本地視頻緩沖區(qū)的數(shù)據(jù)沒有耗盡且沒有出錯時,確定視頻狀態(tài)為播放狀態(tài)。對于Flash ActionScript 3的NetStream (—種視頻播放組件),客戶端可以監(jiān)聽該視頻播放組件的 NetStatusEvent.NET_STATUS 事件。
[0140]觸發(fā)evt.1nfo, code== " NetStream.Play.Start "之后,但未觸發(fā) evt.1nf0.code==" NetStream.Play.Stop ",判斷出最近一次調(diào)用的命令是繼續(xù)或者播放,evt.1nfo, code不是"NetStream.Buffer.Empty ",也不是表示播放出錯的值,確定視頻處于播放狀態(tài)。
[0141]第二確定單元88用于在判斷出視頻已經(jīng)開始播放,并且沒有結(jié)束播放,視頻沒有處于暫停狀態(tài),本地視頻緩沖區(qū)的數(shù)據(jù)已經(jīng)耗盡且沒有出錯時,確定視頻狀態(tài)為緩沖狀態(tài)。
[0142]對于Flash ActionScript 3的NetStream(—種視頻播放組件),客戶端可以監(jiān)聽該視頻播放組件的NetStatusEvent.NET_STATUS事件。
[0143]觸發(fā)evt.1nfo, code== " NetStream.Play.Start "之后,但未觸發(fā) evt.1nf0.code==" NetStream.Play.Stop ",判斷出最近一次調(diào)用的命令是繼續(xù)或者播放,evt.1nfo, code 是"NetStream.Buffer.Empty",確定視頻處于緩沖狀態(tài)。
[0144]對于Silverlight的MediaElement (—種視頻播放組件),客戶端可以監(jiān)聽該播放組件中的CurrentStateChanged事件來判斷視頻處于播放狀態(tài)或者緩沖狀態(tài)。[0145]當(dāng)CurrentStateChanged事件被觸發(fā)時,如果事件當(dāng)前值是Playing則視頻處于播放狀態(tài),如果事件當(dāng)前值是Buffering,則視頻處于緩沖狀態(tài)。
[0146]由于播放器的類型有很多種,上述兩種常用播放器的判斷方法只是用于舉例說明本發(fā)明視頻播放流暢度的檢測方法,并不用于限定本發(fā)明。應(yīng)當(dāng)理解的是,在具體用用的時候,可以根據(jù)播放器的類型確定被觸發(fā)的對象,從而確定視頻處于播放狀態(tài)或者緩沖狀態(tài)。
[0147]圖9是根據(jù)本發(fā)明第三實施例的視頻播放流暢度的檢測裝置的示意圖。如圖所示,該視頻播放流暢度的檢測裝置包括:第一檢測單元10、第二檢測單元20和計算單元30,其中,第一檢測單元10包括第一獲取模塊101、第二獲取模塊102和第一加和模塊103。
[0148]該圖所示實施例中的第二檢測單元20和計算單元30與圖7所示實施例中的第二檢測單元20和計算單元30的功能相同,在此不做贅述。
[0149]第一獲取模塊101用于獲取視頻處于播放狀態(tài)的累加播放時長。由于視頻在播放過程中會出現(xiàn)播放狀態(tài)和緩沖狀態(tài)交替出現(xiàn)的情況,因此,視頻處于播放狀態(tài)是時長是很多不連續(xù)的時間段組成的,視頻處于播放狀態(tài)的累加播放時長就是這些不連續(xù)的時間段的總和。
[0150]第二獲取模塊102用于獲取視頻處于播放狀態(tài)的當(dāng)前播放時長。判斷出當(dāng)前視頻處于播放狀態(tài)之后,獲取視頻處于當(dāng)前播放狀態(tài)的時長。如果視頻當(dāng)前處于緩沖狀態(tài),則當(dāng)前播放時長為O。
[0151]第一加和模塊103用于將累加播放時長和當(dāng)前播放時長的和作為視頻處于播放狀態(tài)的總時長。此時得到的視頻處于播放狀態(tài)的總時長,即從視頻開始播放算起,到當(dāng)前時刻止,視頻處于播放狀態(tài)的總時長。
[0152]優(yōu)選地,第一獲取模塊101包括以下子模塊:
[0153]第一記錄子模塊1011用于記錄視頻進入播放狀態(tài)的時刻。視頻進入播放狀態(tài)的時刻可以為從未播放狀態(tài)進入播放狀態(tài),或者從暫停狀態(tài)進入播放狀態(tài),還可以從緩沖狀態(tài)進入播放狀態(tài),無論哪種進入播放狀態(tài),記錄下進入播放狀態(tài)的時刻。
[0154]第二記錄子模塊1012用于記錄視頻離開播放狀態(tài)的時刻。視頻離開播放狀態(tài)可以是從播放狀態(tài)變?yōu)闀和顟B(tài),或者從播放狀態(tài)變?yōu)椴シ沤Y(jié)束,或者從播放狀態(tài)變?yōu)榫彌_狀態(tài)。記錄視頻從播放狀態(tài)變?yōu)樯鲜鰻顟B(tài)的時刻。
[0155]第一計算子模塊1013用于計算視頻進入播放狀態(tài)的時刻和視頻離開播放狀態(tài)的時刻的差值,得到歷史播放時長。視頻進入播放狀態(tài)的時刻和視頻離開播放狀態(tài)的時刻的差值為視頻處于播放狀態(tài)的一個時間段,即歷史播放時長。
[0156]第一獲取子模塊1014用于獲取視頻播放過程中的多個歷史播放時長。在整個視頻播放過程中,視頻可能會多次進入視頻播放狀態(tài)、緩沖狀態(tài)或者暫停狀態(tài)。獲取視頻播放過程中當(dāng)前時刻之前的多個歷史播放時長。
[0157]第一累加子模塊1015用于將多個歷史播放時長的和作為累加播放時長。
[0158]通過第一記錄子模塊1011、第二記錄子模塊1012、第一計算子模塊1013、第一獲取子模塊1014和第一累加子模塊1015,可以獲取播放過程中的每個處于播放狀態(tài)的歷史播放時長,多個歷史播放時長的總和作為累加播放時長可以獲知當(dāng)前時刻之前視頻處于播放狀態(tài)的時長。
[0159]圖10是根據(jù)本發(fā)明第四實施例的視頻播放流暢度的檢測裝置的示意圖。如圖所示,該視頻播放流暢度的檢測裝置包括第一檢測單元10、第二檢測單元20和計算單元30,其中,第一檢測單元10包括第一檢測單元10包括第三獲取模塊104、第四獲取模塊105和第二加和模塊106。
[0160]該圖所示實施例中的第二檢測單元20和計算單元30與圖7所示實施例中的第二檢測單元20和計算單元30的功能相同,在此不做贅述。
[0161]第三獲取模塊104用于獲取視頻處于緩沖狀態(tài)的累加緩沖時長。由于視頻在播放過程中會出現(xiàn)播放狀態(tài)和緩沖狀態(tài)交替出現(xiàn)的情況,因此,視頻處于緩沖狀態(tài)是時長是很多不連續(xù)的時間段組成的,視頻處于緩沖狀態(tài)的累加緩沖時長就是這些不連續(xù)的時間段的總和。
[0162]第四獲取模塊105用于獲取視頻處于緩沖狀態(tài)的當(dāng)前緩沖時長。判斷出當(dāng)前視頻處于緩沖狀態(tài)之后,獲取視頻處于當(dāng)前緩沖狀態(tài)的時長。如果視頻當(dāng)前處于播放狀態(tài),則當(dāng)前緩沖時長為O。
[0163]第二加和模塊106用于將累加緩沖時長和當(dāng)前緩沖時長的和作為視頻處于緩沖狀態(tài)的總時長。此時得到的視頻處于緩沖狀態(tài)的總時長,即從視頻開始緩沖算起,到當(dāng)前時刻止,視頻處于緩沖狀態(tài)的總時長。
[0164]優(yōu)選地,第三獲取模塊104通過以下子模塊獲取視頻處于緩沖狀態(tài)的累加緩沖時長:
[0165]第三記錄子模塊1041用于記錄視頻進入緩沖狀態(tài)的時刻。視頻進入緩沖狀態(tài)的時刻可以為從未緩沖狀態(tài)進入緩沖狀態(tài),或者從暫停狀態(tài)進入緩沖狀態(tài),還可以從播放狀態(tài)進入緩沖狀態(tài),無論哪種進入緩沖狀態(tài),記錄下進入緩沖狀態(tài)的時刻。
[0166]第四記錄子模塊1042用于記錄視頻離開緩沖狀態(tài)的時刻。視頻離開緩沖狀態(tài)可以是從緩沖狀態(tài)變?yōu)闀和顟B(tài),或者從緩沖狀態(tài)變?yōu)椴シ沤Y(jié)束,或者從緩沖狀態(tài)變?yōu)椴シ艩顟B(tài)。記錄視頻從緩沖狀態(tài)變?yōu)樯鲜鰻顟B(tài)的時刻。
[0167]第二計算子模塊1043用于計算視頻進入緩沖狀態(tài)的時刻和視頻離開緩沖狀態(tài)的時刻的差值,得到歷史緩沖時長。視頻進入緩沖狀態(tài)的時刻和視頻離開緩沖狀態(tài)的時刻的差值為視頻處于緩沖狀態(tài)的一個時間段,即歷史緩沖時長。
[0168]第二獲取子模塊1044用于獲取視頻播放過程中的多個歷史緩沖時長。在整個視頻播放過程中,視頻可能會多次進入視頻緩沖狀態(tài)、緩沖狀態(tài)或者暫停狀態(tài)。獲取視頻播放過程中當(dāng)前時刻之前的多個歷史緩沖時長。
[0169]第二累加子模塊1045用于將多個歷緩沖時長進行的和作為累加緩沖時長。
[0170]通過上述子模塊,可以獲取播放過程中的每個處于緩沖狀態(tài)的歷史緩沖時長,多個歷史緩沖時長的總和作為累加緩沖時長可以獲知當(dāng)前時刻之前視頻處于緩沖狀態(tài)的時長。
[0171]圖11是根據(jù)本發(fā)明第五實施例的視頻播放流暢度的檢測裝置的示意圖。如圖所示,該視頻播放流暢度的檢測裝置包括:第一檢測單元10、第二檢測單元20和計算單元30,其中,第一檢測單元10包括第一狀態(tài)獲取模塊107、播放時長獲取模塊108、第一計算模塊109、第一比較模塊110、第一確定模塊111和第二確定模塊112。
[0172]該圖所示實施例中的第二檢測單元20和計算單元30與圖7所示實施例中的第二檢測單元20和計算單元30的功能相同,在此不做贅述。[0173]第一狀態(tài)獲取模塊107用于獲取客戶端系統(tǒng)時間單元計算的視頻處于播放狀態(tài)的第一時長信息。客戶端系統(tǒng)時間單元計算的第一時長信息為視頻進入播放狀態(tài)之后,離開播放狀態(tài)之前的時長,例如進入播放狀態(tài)的時間為18:00,離開播放狀態(tài)的時間為18:05,則第一時長信息為5分鐘。但是,如果在視頻播放I分鐘后人為調(diào)節(jié)客戶端系統(tǒng)時間,將系統(tǒng)向后調(diào)了一個小時變?yōu)?9:01,則第一時長信息為I小時5分鐘。
[0174]播放時長獲取模塊108用于獲取客戶端計時器計算的視頻處于播放狀態(tài)的第二時長信息。計時器可以周期性的更新流逝時間的值得到第二時長信息,例如設(shè)定計時器的周期為0.1秒觸發(fā)一次,每次觸發(fā)時將持續(xù)的秒數(shù)加0.1秒,那么5.2秒期間將觸發(fā)52次,最終得到的持續(xù)時間就是5.2秒。但是,如果播放器的精度不高時,播放器中設(shè)定的周期為
0.1秒時,實際觸發(fā)間隔可能是0.113秒,或者0.092秒。
[0175]第一計算模塊109用于計算第二時長信息和第一時長信息的差值,并將差值除以第一時長信息的值作為計算結(jié)果。為了使得計算的時長更加準(zhǔn)確,通過計算第二時長信息和第一時長信息的差值,將差值除以第一時長信息的值作為計算結(jié)果來確定準(zhǔn)確的時長信肩、O
[0176]第一比較模塊110用于比較計算結(jié)果與預(yù)定值的大小。
[0177]第一確定模塊111在計算結(jié)果大于預(yù)定值或者小于預(yù)定值的負(fù)數(shù)時,將第二時長信息作為視頻處于播放狀態(tài)的時長。如果計算結(jié)果大于預(yù)定值或者小于預(yù)定值的負(fù)數(shù),則認(rèn)為系統(tǒng)時間被更改,計數(shù)器計算的第二時長信息更準(zhǔn)確,將第二時長信息作為視頻處于播放狀態(tài)的時長。
[0178]第二確定模塊112在計算結(jié)果大于等于預(yù)定值的負(fù)數(shù),且小于等于預(yù)定值時,將第一時長信息作為視頻處于播放狀態(tài)的時長。如果計算結(jié)果大于預(yù)定值或者小于預(yù)定值的負(fù)數(shù),則認(rèn)為系統(tǒng)時間沒有被更改,可以將第一時長信息作為視頻處于播放狀態(tài)的時長。
[0179]通過比較系統(tǒng)計算時間和計時器計算時間的差值確定視頻處于播放狀態(tài)的總時長,能夠提高計算視頻處于播放狀態(tài)的時長的準(zhǔn)確性。
[0180]圖12是根據(jù)本發(fā)明第六實施例的視頻播放流暢度的檢測裝置的示意圖。如圖所示,該視頻播放流暢度的檢測裝置包括:第一檢測單元10、第二檢測單元20和計算單元30,其中,第二檢測單元20包括第二狀態(tài)獲取模塊201、緩沖時長獲取模塊202、第二計算模塊203、第二比較模塊204、第三確定模塊205和第四確定模塊206。
[0181]該圖所示實施例中的第一檢測單元10和計算單元30與圖7所示實施例中的第一檢測單元10和計算單元30的功能相同,在此不做贅述。
[0182]第二狀態(tài)獲取模塊201用于獲取客戶端系統(tǒng)時間單元計算的視頻處于緩沖狀態(tài)的第三時長信息??蛻舳讼到y(tǒng)時間單元計算的第三時長信息為視頻進入緩沖狀態(tài)之后,離開緩沖狀態(tài)之前的時長,例如進入緩沖狀態(tài)的時間為18:00,離開緩沖狀態(tài)的時間為18:05,則第三時長信息為5分鐘。但是,如果在視頻緩沖I分鐘后人為調(diào)節(jié)客戶端系統(tǒng)時間,將系統(tǒng)向后調(diào)了一個小時變?yōu)?9:01,則第一時長信息為I小時5分鐘。
[0183]緩沖時長獲取模塊202用于獲取客戶端計時器計算的視頻處于緩沖狀態(tài)的第四時長信息。計時器可以周期性的更新流逝時間的值得到第四時長信息,例如設(shè)定計時器的周期為0.1秒觸發(fā)一次,每次觸發(fā)時將持續(xù)的秒數(shù)加0.1秒,那么5.2秒期間將觸發(fā)52次,最終得到的持續(xù)時間就是5.2秒。但是,如果播放器的精度不高時,播放器中設(shè)定的周期為0.1秒時,實際觸發(fā)間隔可能是0.113秒,或者0.092秒。
[0184]第二計算模塊203用于計算第四時長信息和第三時長信息的差值,并將差值除以第三時長信息的值作為計算結(jié)果。為了使得計算的時長更加準(zhǔn)確,通過計算第四時長信息和第三時長信息的差值,將差值除以第三時長信息的值作為計算結(jié)果來確定準(zhǔn)確的時長信肩、O
[0185]第二比較模塊204用于比較計算結(jié)果與預(yù)定值的大小。預(yù)定值可以是一個比例閾值。
[0186]第三確定模塊205用于在計算結(jié)果大于預(yù)定值或者小于預(yù)定值的負(fù)數(shù)時,將第四時長信息作為視頻處于緩沖狀態(tài)的時長。如果計算結(jié)果大于預(yù)定值或者小于預(yù)定值的負(fù)數(shù),則認(rèn)為系統(tǒng)時間被更改,計數(shù)器計算的第四時長信息更準(zhǔn)確,將第四時長信息作為視頻處于播放狀態(tài)的時長。
[0187]第四確定模塊206用于在計算結(jié)果大于等于預(yù)定值的負(fù)數(shù),且小于等于預(yù)定值時,將第三時長信息作為視頻處于緩沖狀態(tài)的時長。如果計算結(jié)果大于等于預(yù)定值的負(fù)數(shù),且小于等于預(yù)定值,則認(rèn)為系統(tǒng)時間沒有被更改,將第三時長信息作為視頻處于播放狀態(tài)的時長。
[0188]通過比較系統(tǒng)計算時間和計時器計算時間的差值確定視頻處于緩沖狀態(tài)的總時長,能夠提高計算視頻處于緩沖狀態(tài)的時長的準(zhǔn)確性。
[0189]本發(fā)明實施例還提供了一種計算機存儲介質(zhì)。該計算機存儲介質(zhì)可存儲有程序,該程序用于執(zhí)行上述的視頻播放流暢度的檢測方法中的部分或全部步驟。
[0190]需要說明的是,對于前述的各方法實施例,為了簡單描述,故將其都表述為一系列的動作組合,但是本領(lǐng)域技術(shù)人員應(yīng)該知悉,本發(fā)明并不受所描述的動作順序的限制,因為依據(jù)本發(fā)明,某些步驟可以采用其他順序或者同時進行。其次,本領(lǐng)域技術(shù)人員也應(yīng)該知悉,說明書中所描述的實施例均屬于優(yōu)選實施例,所涉及的動作和模塊并不一定是本發(fā)明所必須的。
[0191]在上述實施例中,對各個實施例的描述都各有側(cè)重,某個實施例中沒有詳述的部分,可以參見其他實施例的相關(guān)描述。
[0192]在本申請所提供的幾個實施例中,應(yīng)該理解到,所揭露的裝置,可通過其它的方式實現(xiàn)。例如,以上所描述的裝置實施例僅僅是示意性的,例如所述單元的劃分,僅僅為一種邏輯功能劃分,實際實現(xiàn)時可以有另外的劃分方式,例如多個單元或組件可以結(jié)合或者可以集成到另一個系統(tǒng),或一些特征可以忽略,或不執(zhí)行。另一點,所顯示或討論的相互之間的耦合或直接耦合或通信連接可以是通過一些接口,裝置或單元的間接耦合或通信連接,可以是電性或其它的形式。
[0193]所述作為分離部件說明的單元可以是或者也可以不是物理上分開的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位于一個地方,或者也可以分布到多個網(wǎng)絡(luò)單元上。可以根據(jù)實際的需要選擇其中的部分或者全部單元來實現(xiàn)本實施例方案的目的。
[0194]另外,在本發(fā)明各個實施例中的各功能單元可以集成在一個處理單元中,也可以是各個單元單獨物理存在,也可以兩個或兩個以上單元集成在一個單元中。上述集成的單元既可以采用硬件的形式實現(xiàn),也可以采用軟件功能單元的形式實現(xiàn)。[0195]所述集成的單元如果以軟件功能單元的形式實現(xiàn)并作為獨立的產(chǎn)品銷售或使用時,可以存儲在一個計算機可讀取存儲介質(zhì)中?;谶@樣的理解,本發(fā)明的技術(shù)方案本質(zhì)上或者說對現(xiàn)有技術(shù)做出貢獻的部分或者該技術(shù)方案的全部或部分可以以軟件產(chǎn)品的形式體現(xiàn)出來,該計算機軟件產(chǎn)品存儲在一個存儲介質(zhì)中,包括若干指令用以使得一臺計算機設(shè)備(可為個人計算機、服務(wù)器或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行本發(fā)明各個實施例所述方法的全部或部分步驟。而前述的存儲介質(zhì)包括:U盤、只讀存儲器(ROM,Read-Only Memory)、隨機存取存儲器(RAM, Random Access Memory)、移動硬盤、磁碟或者光盤等各種可以存儲程序代碼的介質(zhì)。
[0196]以上所述僅為本發(fā)明的優(yōu)選實施例而已,并不用于限制本發(fā)明,對于本領(lǐng)域的技術(shù)人員來說,本發(fā)明可以有各種更改和變化。凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進等,均應(yīng)包含在本發(fā)明的保護范圍之內(nèi)。
【權(quán)利要求】
1.一種視頻播放流暢度的檢測方法,其特征在于,包括: 客戶端檢測本地視頻處于播放狀態(tài)的總時長; 所述客戶端檢測所述視頻處于緩沖狀態(tài)的總時長;以及 所述客戶端根據(jù)所述視頻處于所述播放狀態(tài)的總時長和所述緩沖狀態(tài)的總時長計算所述視頻播放流暢度。
2.根據(jù)權(quán)利要求1所述的視頻播放流暢度的檢測方法,其特征在于,在客戶端檢測本地視頻處于播放狀態(tài)的總時長和所述客戶端檢測所述視頻處于緩沖狀態(tài)的總時長之前,所述視頻播放流暢度的檢測方法包括: 所述客戶端獲取所述視頻的播放信息; 所述客戶端根據(jù)所述播放信息判斷所述視頻是否已經(jīng)開始播放; 所述客戶端根據(jù)所述播放信息判斷所述視頻是否已經(jīng)結(jié)束播放; 所述客戶端根據(jù)所述播放信息判斷所述視頻是否處于暫停狀態(tài); 所述客戶端判斷本地視頻緩沖區(qū)的數(shù)據(jù)是否耗盡; 所述客戶端判斷本地視頻緩沖區(qū)的數(shù)據(jù)是否出錯; 所述客戶端如果判斷出所述視頻已經(jīng)開始播放,所述視頻沒有結(jié)束播放,所述視頻沒有處于暫停狀態(tài),所述本地視頻緩沖區(qū)的數(shù)據(jù)沒有耗盡且沒有出錯,則所述視頻狀態(tài)為播放狀態(tài);以及 所述客戶端如果判斷出所述視頻已經(jīng)開始播放,并且沒有結(jié)束播放,所述視頻沒有處于暫停狀態(tài),所述本地視頻緩沖區(qū)的數(shù)據(jù)已經(jīng)耗盡且沒有出錯,則所述視頻狀態(tài)為緩沖狀態(tài)。
3.根據(jù)權(quán)利要求1所述的視頻播放流暢度的檢測方法,其特征在于,客戶端檢測本地視頻處于播放狀態(tài)的總時長包括: 獲取所述視頻處于所述播放狀態(tài)的累加播放時長; 獲取所述視頻處于所述播放狀態(tài)的當(dāng)前播放時長;以及 將所述累加播放時長和所述當(dāng)前播放時長的和作為所述視頻處于所述播放狀態(tài)的總時長。
4.根據(jù)權(quán)利要求3所述的視頻播放流暢度的檢測方法,其特征在于,獲取所述視頻處于所述播放狀態(tài)的累加播放時長包括: 記錄所述視頻進入所述播放狀態(tài)的時刻; 記錄所述視頻離開所述播放狀態(tài)的時刻; 計算所述視頻進入所述播放狀態(tài)的時刻和所述視頻離開所述播放狀態(tài)的時刻的差值,得到歷史播放時長; 獲取所述視頻播放過程中的多個所述歷史播放時長;以及 將所述多個所述歷史播放時長的和作為累加播放時長。
5.根據(jù)權(quán)利要求1所述的視頻播放流暢度的檢測方法,其特征在于,所述客戶端檢測所述視頻處于緩沖狀態(tài)的總時長包括: 獲取所述視頻處于所述緩沖狀態(tài)的累加緩沖時長; 獲取所述視頻處于所述緩沖狀態(tài)的當(dāng)前緩沖時長;以及 將所述累加緩沖時長和所述當(dāng)前緩沖時長的和作為所述視頻處于所述緩沖狀態(tài)的總時長。
6.根據(jù)權(quán)利要求5所述的視頻播放流暢度的檢測方法,其特征在于,獲取所述視頻處于所述緩沖狀態(tài)的累加緩沖時長包括: 記錄所述視頻進入所述緩沖狀態(tài)的時刻; 記錄所述視頻離開所述緩沖狀態(tài)的時刻; 計算所述視頻進入所述緩沖狀態(tài)的時刻和所述視頻離開所述緩沖狀態(tài)的時刻的差值,得到歷史緩沖時長; 獲取所述視頻播放過程中的多個所述歷史緩沖時長;以及 將所述多個所述歷緩沖時長進行的和作為累加緩沖時長。
7.根據(jù)權(quán)利要求1所述的視頻播放流暢度的檢測方法,其特征在于,客戶端檢測本地視頻處于播放狀態(tài)的總時長包括: 獲取所述客戶端系統(tǒng)時間單元計算的所述視頻處于所述播放狀態(tài)的第一時長信息; 獲取所述客戶端計時器計算的所述視頻處于所述播放狀態(tài)的第二時長信息; 計算所述第二時長信息和所述第一時長信息的差值,并將所述差值除以第一時長信息的值作為計算結(jié)果; 比較所述計算結(jié)果與預(yù)定值的大??; 如果所述計算結(jié)果大于所述預(yù)定值或者小于所述預(yù)定值的負(fù)數(shù),則將所述第二時長信息作為所述視頻處于所述播放狀態(tài)的時長;以及 如果所述計算結(jié)果大于等·于所述預(yù)定值的負(fù)數(shù),且小于等于所述預(yù)定值,則將所述第一時長信息作為所述視頻處于所述播放狀態(tài)的時長。
8.根據(jù)權(quán)利要求1所述的視頻播放流暢度的檢測方法,其特征在于,客戶端檢測本地視頻處于緩沖狀態(tài)的總時長包括: 獲取所述客戶端系統(tǒng)時間單元計算的所述視頻處于所述緩沖狀態(tài)的第三時長信息; 獲取所述客戶端計時器計算的所述視頻處于所述緩沖狀態(tài)的第四時長信息; 計算所述第四時長信息和所述第三時長信息的差值,并將所述差值除以第三時長信息的值作為計算結(jié)果; 比較所述計算結(jié)果與預(yù)定值的大?。? 如果所述計算結(jié)果大于所述預(yù)定值或者小于所述預(yù)定值的負(fù)數(shù),則將所述第四時長信息作為所述視頻處于所述緩沖狀態(tài)的時長;以及 如果所述計算結(jié)果大于等于所述預(yù)定值的負(fù)數(shù),且小于等于所述預(yù)定值,則將所述第三時長信息作為所述視頻處于所述緩沖狀態(tài)的時長。
9.一種視頻播放流暢度的檢測裝置,其特征在于,包括: 第一檢測單元,用于檢測客戶端本地視頻處于播放狀態(tài)的總時長; 第二檢測單元,用于檢測所述客戶端的所述視頻處于緩沖狀態(tài)的總時長;以及計算單元,用于根據(jù)所述視頻處于所述播放狀態(tài)的總時長和所述緩沖狀態(tài)的總時長計算所述視頻播放流暢度。
10.根據(jù)權(quán)利要求9所述的視頻播放流暢度的檢測裝置,其特征在于,所述視頻播放流暢度的檢測裝置還包括: 獲取單元,用于在檢測客戶端本地視頻處于播放狀態(tài)的總時長和檢測所述客戶端的所述視頻處于緩沖狀態(tài)的總時長之前,獲取所述客戶端的所述視頻的播放信息; 第一判斷單元,用于根據(jù)所述播放信息判斷所述視頻是否已經(jīng)開始播放; 第二判斷單元,用于根據(jù)所述播放信息判斷所述視頻是否已經(jīng)結(jié)束播放; 第三判斷單元,用于根據(jù)所述播放信息判斷所述視頻是否處于暫停狀態(tài); 第四判斷單元,用于判斷本地視頻緩沖區(qū)的數(shù)據(jù)是否耗盡; 第五判斷單元,用于判斷本地視頻緩沖區(qū)的數(shù)據(jù)是否出錯; 第一確定單元,用于在判斷出所述視頻已經(jīng)開始播放,所述視頻沒有結(jié)束播放,所述視頻沒有處于暫停狀態(tài),所述本地視頻緩沖區(qū)的數(shù)據(jù)沒有耗盡且沒有出錯時,確定所述視頻狀態(tài)為播放狀態(tài);以及 第二確定單元,用于在判斷出所述視頻已經(jīng)開始播放,并且沒有結(jié)束播放,所述視頻沒有處于暫停狀態(tài),所述本地視頻緩沖區(qū)的數(shù)據(jù)已經(jīng)耗盡且沒有出錯時,確定所述視頻狀態(tài)為緩沖狀態(tài)?!?br>
【文檔編號】H04N21/647GK103533454SQ201310523052
【公開日】2014年1月22日 申請日期:2013年10月29日 優(yōu)先權(quán)日:2013年10月29日
【發(fā)明者】林斐, 黃勇堅 申請人:北京國雙科技有限公司