播放視頻的方法、虛擬播放器和視頻播放器的制造方法
【專利摘要】本申請公開了一種播放視頻的方法、虛擬播放器和視頻播放器,屬于網(wǎng)絡(luò)通信【技術(shù)領(lǐng)域】。所述方法包括:所述虛擬播放器從所述視頻服務(wù)器獲取待播放視頻數(shù)據(jù);所述虛擬播放器解析所述緩沖區(qū)內(nèi)的待播放視頻數(shù)據(jù),得到所述待播放視頻數(shù)據(jù)的時間戳,將所述待播放視頻數(shù)據(jù)的時間戳標(biāo)示的時間點,與所述虛擬播放器記錄的所述視頻播放器播放的視頻的播放時間點進行對比,得到對比結(jié)果,根據(jù)所述對比結(jié)果,確定是否將所述待播放視頻數(shù)據(jù)發(fā)送給所述視頻播放器進行播放。所述裝置包括:接收模塊、獲取模塊、解析模塊、對比模塊和確定模塊。可以有效防止視頻播放器本地數(shù)據(jù)的堆積,避免占用視頻播放器的存儲空間。
【專利說明】播放視頻的方法、虛擬播放器和視頻播放器
【技術(shù)領(lǐng)域】
[0001] 本申請涉及網(wǎng)絡(luò)通信【技術(shù)領(lǐng)域】,具體涉及一種播放視頻的方法、虛擬播放器和視 頻播放器。
【背景技術(shù)】
[0002] 隨著網(wǎng)絡(luò)通信技術(shù)的發(fā)展,不但可以通過視頻播放器播放已下載在本地的視頻, 而且還可以通過視頻播放器與提供視頻的視頻服務(wù)器連接,一邊下載一邊播放,實現(xiàn)在線 實時播放視頻。
[0003] 現(xiàn)有的通過在線的方式播放視頻的方法如下:視頻播放器向視頻服務(wù)器請求視頻 數(shù)據(jù),將視頻數(shù)據(jù)存儲在自身的緩沖區(qū),并從自身的緩沖區(qū)中提取視頻數(shù)據(jù)進行播放(即 一邊從視頻服務(wù)器獲取視頻數(shù)據(jù)填充緩沖區(qū),一邊從緩沖區(qū)提取視頻數(shù)據(jù)進行播放),視頻 播放器不斷地向視頻服務(wù)器請求視頻數(shù)據(jù),直至填滿自身緩沖區(qū)。
[0004] 現(xiàn)有播放視頻的方法,無論視頻播放器的播放進度如何,視頻播放器都會不斷請 求視頻數(shù)據(jù)、接受視頻數(shù)據(jù),直至視頻播放器的緩沖區(qū)填滿,這樣就會造成數(shù)據(jù)堆積,占用 視頻播放器的存儲空間。
【發(fā)明內(nèi)容】
[0005] 本申請所要解決的技術(shù)問題在于提供一種播放視頻的方法、虛擬播放器和視頻播 放器,通過在視頻播放器和視頻服務(wù)器之間設(shè)置虛擬播放器,可以將更多的待播放視頻數(shù) 據(jù)緩存到虛擬播放器的緩沖區(qū)內(nèi),可以有效地防止視頻播放器本地數(shù)據(jù)的堆積,避免占用 視頻播放器的存儲空間。
[0006] 為了解決上述問題,本申請揭示了一種播放視頻的方法,在視頻播放器和視頻服 務(wù)器之間設(shè)置虛擬播放器,所述方法包括:
[0007] 所述虛擬播放器從所述視頻服務(wù)器獲取待播放視頻數(shù)據(jù),并將獲取的所述待播放 視頻數(shù)據(jù)存儲在所述虛擬播放器的緩沖區(qū)內(nèi);
[0008] 所述虛擬播放器解析所述緩沖區(qū)內(nèi)的待播放視頻數(shù)據(jù),得到所述待播放視頻數(shù)據(jù) 的時間戳;
[0009] 所述虛擬播放器將所述待播放視頻數(shù)據(jù)的時間戳標(biāo)示的時間點,與所述虛擬播放 器記錄的所述視頻播放器播放的視頻的播放時間點進行對比,得到對比結(jié)果;
[0010] 所述虛擬播放器根據(jù)所述對比結(jié)果,確定是否將所述待播放視頻數(shù)據(jù)發(fā)送給所述 視頻播放器進行播放。
[0011] 優(yōu)選地,在本申請的一實施例中,所述虛擬播放器獲取所述視頻服務(wù)器發(fā)送的待 播放視頻數(shù)據(jù),并將獲取的所述待播放視頻數(shù)據(jù)存儲在所述虛擬播放器的緩沖區(qū)內(nèi)之前, 還包括:
[0012] 所述虛擬播放器接收所述視頻播放器發(fā)送的視頻播放指令;
[0013] 所述視頻播放指令中攜帶有IP地址,所述虛擬播放器根據(jù)所述IP地址,查找到所 述視頻服務(wù)器;
[0014] 所述視頻播放指令中攜帶有視頻ID號,所述虛擬播放器與查找到的所述視頻服 務(wù)器建立連接,并將所述視頻ID號上傳到所述視頻服務(wù)器中。
[0015] 優(yōu)選地,在本申請的一實施例中,所述虛擬播放器解析所述視頻播放指令,從解析 得到的所述視頻服務(wù)器獲取待播放視頻數(shù)據(jù)之后,還包括:
[0016] 所述虛擬播放器解析所述待播放視頻數(shù)據(jù),得到所述待播放視頻數(shù)據(jù)的幀信息;
[0017] 當(dāng)根據(jù)所述幀信息得知所述待播放視頻數(shù)據(jù)為起始幀數(shù)據(jù)時,所述虛擬播放器建 立虛擬時間軸;
[0018] 所述虛擬播放器定時讀取所述視頻播放器播放所述視頻的時間,將讀取到的所述 視頻播放器播放所述視頻的時間,記錄在所述虛擬時間軸上。
[0019] 優(yōu)選地,在本申請的一實施例中,所述虛擬播放器根據(jù)對比結(jié)果,確定是否將所述 待播放視頻數(shù)據(jù)發(fā)送給所述視頻播放器進行播放,包括:
[0020] 如果對比結(jié)果是所述待播放視頻數(shù)據(jù)的時間戳標(biāo)示的時間點與所述虛擬播放器 記錄的所述視頻播放器播放的所述視頻的播放時間點之差位于預(yù)設(shè)時間范圍內(nèi)時,則所述 虛擬播放器確定將所述待播放視頻數(shù)據(jù)發(fā)送給所述視頻播放器進行播放;
[0021] 如果對比結(jié)果是所述待播放視頻數(shù)據(jù)的時間戳標(biāo)示的時間點與所述虛擬播放器 記錄的所述視頻播放器播放的所述視頻的播放時間點之差沒有位于預(yù)設(shè)時間范圍內(nèi)時,則 所述虛擬播放器確定不將所述待播放視頻數(shù)據(jù)發(fā)送給所述視頻播放器進行播放。
[0022] 優(yōu)選地,在本申請的一實施例中,所述虛擬播放器確定將所述待播放視頻數(shù)據(jù)發(fā) 送給所述視頻播放器進行播放,包括:
[0023] 所述虛擬播放器判斷所述待播放視頻數(shù)據(jù)是否是所述視頻的起始段;
[0024] 如果是所述視頻的起始段,則所述虛擬播放器延遲預(yù)設(shè)的時長后,將所述待播放 視頻數(shù)據(jù)發(fā)送給所述視頻播放器進行播放;
[0025] 如果不是視頻的起始段,則所述虛擬播放器直接將所述待播放視頻數(shù)據(jù)發(fā)送給所 述視頻播放器進行播放;或,
[0026] 所述虛擬播放器確定將所述待播放視頻數(shù)據(jù)發(fā)送給所述視頻播放器進行播放之 后,還包括:
[0027] 所述視頻播放器判斷接收到的所述待播放視頻數(shù)據(jù)是否是視頻的起始段;
[0028] 如果是視頻的起始段,則所述視頻播放器延遲預(yù)設(shè)的時長后,啟動播放所述待播 放視頻數(shù)據(jù);
[0029] 如果不是視頻的起始段,則所述視頻播放器直接播放所述待播放視頻數(shù)據(jù)。
[0030] 為了解決上述問題,本申請揭示了一種虛擬播放器,所述虛擬播放器設(shè)置在視頻 播放器和視頻服務(wù)器之間,所述虛擬播放器包括:
[0031] 獲取模塊、緩存模塊、解析模塊、對比模塊和確定模塊;
[0032] 所述獲取模塊,用于獲取所述視頻服務(wù)器發(fā)送的待播放視頻數(shù)據(jù),并將獲取的所 述待播放視頻數(shù)據(jù)存儲在緩存模塊內(nèi);
[0033] 所述緩存模塊,用于存儲所述待播放視頻數(shù)據(jù);
[0034] 所述解析模塊,用于解析所述緩存模塊內(nèi)的待播放視頻數(shù)據(jù),得到所述待播放視 頻數(shù)據(jù)的時間戳;
[0035] 所述對比模塊,用于將所述待播放視頻數(shù)據(jù)的時間戳標(biāo)示的時間點,與所述虛擬 播放器記錄的所述視頻播放器播放的所述視頻的播放時間點進行對比,得到對比結(jié)果;
[0036] 所述確定模塊,用于根據(jù)所述對比結(jié)果,確定是否將所述待播放視頻數(shù)據(jù)發(fā)送給 所述視頻播放器進行播放。
[0037] 優(yōu)選地,在本申請的一實施例中,虛擬播放器還包括:
[0038] 接收模塊,用于接收所述視頻播放器發(fā)送的視頻播放指令;
[0039] 查找模塊,用于根據(jù)所述視頻播放指令中攜帶的IP地址,查找到所述視頻服務(wù) 器;
[0040] 連接模塊,用于與查找到的所述視頻服務(wù)器建立連接,并將所述視頻播放指令中 攜帶的視頻ID號上傳到從所述視頻服務(wù)器中。
[0041] 優(yōu)選地,在本申請的一實施例中,所述獲取模塊包括:
[0042] 解析單元,用于解析所述待播放視頻數(shù)據(jù),得到所述待播放視頻數(shù)據(jù)的幀信息;
[0043] 建立單元,用于當(dāng)根據(jù)所述幀信息得知所述待播放視頻數(shù)據(jù)為起始幀數(shù)據(jù)時,建 立虛擬時間軸;
[0044] 記錄單元,用于定時讀取所述視頻播放器播放所述視頻的時間,將讀取到的所述 視頻播放器播放所述視頻的時間,記錄在所述虛擬時間軸上。
[0045] 優(yōu)選地,在本申請的一實施例中,所述確定模塊包括:
[0046] 第一確定單元,用于如果所述對比模塊的對比結(jié)果是:所述待播放視頻數(shù)據(jù)的時 間戳標(biāo)示的時間點與所述虛擬播放器記錄的所述視頻播放器播放的所述視頻的播放時間 點之差位于預(yù)設(shè)的時間范圍內(nèi)時,則確定將所述待播放視頻數(shù)據(jù)發(fā)送給所述視頻播放器進 行播放;
[0047] 第二確定單元,用于如果所述對比模塊的對比結(jié)果是:所述待播放視頻數(shù)據(jù)的時 間戳標(biāo)示的時間點與所述虛擬播放器記錄的所述視頻播放器播放的所述視頻的播放時間 點之差沒有位于預(yù)設(shè)的時間范圍內(nèi)時,則確定不將所述待播放視頻數(shù)據(jù)發(fā)送給所述視頻播 放器進行播放。
[0048] 優(yōu)選地,在本申請的一實施例中,所述第一確定單元包括:
[0049] 判斷子單元,用于判斷所述待播放視頻數(shù)據(jù)是否是視頻的起始段;
[0050] 第一發(fā)送子單元,用于如果所述判斷子單元的判斷結(jié)果是:所述待播放視頻數(shù)據(jù) 是視頻的起始段,則延遲預(yù)設(shè)的時長后,將所述待播放視頻數(shù)據(jù)發(fā)送給所述視頻播放器進 行播放;
[0051] 第二發(fā)送子單元,用于如果所述判斷子單元的判斷結(jié)果是:所述待播放視頻數(shù)據(jù) 不是視頻的起始段,則直接將所述待播放視頻數(shù)據(jù)發(fā)送給所述視頻播放器進行播放。
[0052] 為了解決上述問題,本申請揭示了一種視頻播放器,所述視頻播放器包括:
[0053] 判斷模塊,用于判斷接收到的所述待播放視頻數(shù)據(jù)是否是視頻的起始段;
[0054] 第一播放模塊,用于如果所述判斷模塊的判斷結(jié)果是所述待播放視頻數(shù)據(jù)是視頻 的起始段,則延遲預(yù)設(shè)的時長后,啟動播放所述待播放視頻數(shù)據(jù);
[0055] 第二播放模塊,用于如果所述判斷模塊的判斷結(jié)果是所述待播放視頻數(shù)據(jù)不是視 頻的起始段,則直接播放所述待播放視頻數(shù)據(jù)。
[0056] 與現(xiàn)有技術(shù)相比,本申請可以獲得包括以下技術(shù)效果:
[0057] 1)通過在視頻播放器和視頻服務(wù)器之間設(shè)置虛擬播放器,可以將更多的待播放視 頻數(shù)據(jù)緩存到虛擬播放器的緩沖區(qū)內(nèi),可以有效地防止視頻播放器本地數(shù)據(jù)的堆積,避免 占用視頻播放器的存儲空間。并且通過虛擬播放器,可以非常精確有效地控制視頻播放器 的流速,保證視頻播放器穩(wěn)定播放。
[0058] 2)虛擬播放器可以將存儲在虛擬播放器的緩沖區(qū)內(nèi)的待播放視頻數(shù)據(jù),分享給其 他終端,實現(xiàn)P2P分享。緩沖區(qū)的數(shù)據(jù)越多,可供分享的數(shù)據(jù)也越多,對提升全網(wǎng)的分享率 有很大的幫助,可以極大的減少視頻服務(wù)器的帶寬消耗,降低成本。
[0059] 3)如果待播放視頻數(shù)據(jù)是視頻的起始段,則虛擬播放器延遲預(yù)設(shè)的時長后將待 播放視頻數(shù)據(jù)發(fā)送給視頻播放器進行播放,或視頻播放器接收到待播放視頻數(shù)據(jù)后延遲預(yù) 設(shè)的時長后啟動播放待播放視頻數(shù)據(jù),即間隔預(yù)設(shè)的時長后,視頻播放器才開始播放視頻, 使得視頻播放器播放視頻的時間,與虛擬播放器產(chǎn)生時移,保證虛擬播放器有充足的時間 從視頻服務(wù)器獲取視頻數(shù)據(jù),在網(wǎng)絡(luò)抖動的時候,視頻播放器也不會產(chǎn)生跳幀,可以順暢播 放,可以有效地減少網(wǎng)絡(luò)抖動帶來的播放不流暢的問題。
【專利附圖】
【附圖說明】
[0060] 此處所說明的附圖用來提供對本申請的進一步理解,構(gòu)成本申請的一部分,本申 請的示意性實施例及其說明用于解釋本申請,并不構(gòu)成對本申請的不當(dāng)限定。在附圖中:
[0061] 圖1為本申請實施例一提供的一種播放視頻的方法流程圖;
[0062] 圖2為本申請實施例二提供的一種播放視頻的方法流程圖;
[0063] 圖3為本申請實施例三提供的一種播放視頻的方法流程圖;
[0064] 圖4為本申請實施例四提供的一種播放視頻的方法流程圖;
[0065] 圖5為本申請實施例五提供的一種虛擬播放器的結(jié)構(gòu)框圖;
[0066] 圖6為本申請實施例六提供的一種虛擬播放器的結(jié)構(gòu)框圖;
[0067] 圖7為本申請實施例七提供的一種虛擬播放器的結(jié)構(gòu)框圖;
[0068] 圖8為本申請實施例八提供的一種虛擬播放器的結(jié)構(gòu)框圖;
[0069] 圖9為本申請實施例十提供的一種視頻播放器的結(jié)構(gòu)框圖。
【具體實施方式】
[0070] 以下將配合附圖及實施例來詳細說明本申請的實施方式,藉此對本申請如何應(yīng)用 技術(shù)手段來解決技術(shù)問題并達成技術(shù)功效的實現(xiàn)過程能充分理解并據(jù)以實施。
[0071] 如在說明書及權(quán)利要求當(dāng)中使用了某些詞匯來指稱特定組件。本領(lǐng)域技術(shù)人員 應(yīng)可理解,硬件制造商可能會用不同名詞來稱呼同一個組件。本說明書及權(quán)利要求并不以 名稱的差異來作為區(qū)分組件的方式,而是以組件在功能上的差異來作為區(qū)分的準(zhǔn)則。如在 通篇說明書及權(quán)利要求當(dāng)中所提及的"包含"為一開放式用語,故應(yīng)解釋成"包含但不限定 于"。"大致"是指在可接收的誤差范圍內(nèi),本領(lǐng)域技術(shù)人員能夠在一定誤差范圍內(nèi)解決所 述技術(shù)問題,基本達到所述技術(shù)效果。此外,"耦接"一詞在此包含任何直接及間接的電性 耦接手段。因此,若文中描述一第一裝置耦接于一第二裝置,則代表所述第一裝置可直接電 性耦接于所述第二裝置,或通過其他裝置或耦接手段間接地電性耦接至所述第二裝置。說 明書后續(xù)描述為實施本申請的較佳實施方式,然所述描述乃以說明本申請的一般原則為目 的,并非用以限定本申請的范圍。本申請的保護范圍當(dāng)視所附權(quán)利要求所界定者為準(zhǔn)。
[0072] 還需要說明的是,術(shù)語"包括"、"包含"或者其任何其他變體意在涵蓋非排他性的 包含,從而使得包括一系列要素的商品或者系統(tǒng)不僅包括那些要素,而且還包括沒有明確 列出的其他要素,或者是還包括為這種商品或者系統(tǒng)所固有的要素。在沒有更多限制的情 況下,由語句"包括一個……"限定的要素,并不排除在包括所述要素的商品或者系統(tǒng)中還 存在另外的相同要素。
[0073] 實施例一
[0074] 圖1為本申請實施例一播放視頻的方法,在視頻播放器和視頻服務(wù)器之間設(shè)置虛 擬播放器,如圖1所示,其可以具體包括:
[0075] S101 :虛擬播放器從視頻服務(wù)器獲取待播放視頻數(shù)據(jù),并將獲取的待播放視頻數(shù) 據(jù)存儲在虛擬播放器的緩沖區(qū)內(nèi)。
[0076] 其中,虛擬播放器從視頻服務(wù)器獲取待播放視頻數(shù)據(jù),可以是:虛擬播放器接收 視頻播放器發(fā)送的視頻播放指令,根據(jù)視頻播放指令中攜帶的IP(Internet Protocol Address,互聯(lián)網(wǎng)協(xié)議地址)地址和視頻ID (Identity,標(biāo)識)號等,從視頻服務(wù)器獲取待播 放視頻數(shù)據(jù);還可以是:視頻播放器向視頻服務(wù)器發(fā)送視頻播放指令,視頻服務(wù)器將待播 放視頻數(shù)據(jù)發(fā)送至虛擬播放器。
[0077] 本實施例中,虛擬播放器從視頻服務(wù)器獲取待播放視頻數(shù)據(jù),并將獲取的待播放 視頻數(shù)據(jù)存儲在虛擬播放器的緩沖區(qū)內(nèi)之前,還可以包括:
[0078] 虛擬播放器接收視頻播放器發(fā)送的視頻播放指令;
[0079] 視頻播放指令中攜帶有IP地址,虛擬播放器根據(jù)IP地址,查找到視頻服務(wù)器;
[0080] 視頻播放指令中攜帶有視頻ID號,虛擬播放器與查找到的視頻服務(wù)器建立連接, 并將視頻ID號上傳到視頻服務(wù)器中。
[0081] 其中,緩沖區(qū)類似一個先進先出的數(shù)據(jù)隊列,一方面從緩沖區(qū)提取視頻數(shù)據(jù)給視 頻播放器播放,一方面從視頻服務(wù)器獲取視頻數(shù)據(jù)填充緩沖區(qū)。
[0082] 并且,虛擬播放器可以將存儲在虛擬播放器的緩沖區(qū)內(nèi)的待播放視頻數(shù)據(jù),分享 給其他終端,實現(xiàn)P2P(peer-to_pee)分享。緩沖區(qū)的數(shù)據(jù)越多,可供分享的數(shù)據(jù)也越多,對 提升全網(wǎng)的分享率有很大的幫助,可以極大的減少視頻服務(wù)器的帶寬消耗,降低成本。
[0083] 其中,虛擬播放器獲取視頻服務(wù)器發(fā)送的待播放視頻數(shù)據(jù)之后,還可以包括:
[0084] 虛擬播放器解析待播放視頻數(shù)據(jù),得到待播放視頻數(shù)據(jù)的幀信息;
[0085] 當(dāng)根據(jù)幀信息得知待播放視頻數(shù)據(jù)為起始幀數(shù)據(jù)時,虛擬播放器建立虛擬時間 軸;
[0086] 虛擬播放器定時讀取視頻播放器播放視頻的時間,將讀取到的視頻播放器播放視 頻的時間,記錄在虛擬時間軸上。
[0087] 其中,虛擬播放器建立虛擬時間軸可以通過建立一個定時器變量或者創(chuàng)建一個定 時器對象來實現(xiàn)。建立虛擬時間軸之后,虛擬播放器定時讀取視頻播放器播放視頻的時間。 例如,在建立虛擬時間軸后,虛擬播放器啟動定時器,通過定時器計時;或者定時讀取視頻 播放器或所在的終端的時間信息并存儲在定時器變量中,用于計時。虛擬時間軸還用于記 錄虛擬播放器發(fā)送給視頻播放器的視頻數(shù)據(jù)的攜帶的時間信息,如:虛擬播放器發(fā)送給視 頻播放器的最后一幀視頻數(shù)據(jù)的時間戳,便于對比當(dāng)前已經(jīng)播放的視頻數(shù)據(jù)量、虛擬播放 器發(fā)送給視頻播放器的視頻數(shù)據(jù)量和虛擬播放器緩存的視頻數(shù)據(jù)量之間的關(guān)系,確定是否 要發(fā)送視頻數(shù)據(jù)給視頻播放器。
[0088] S102 :虛擬播放器解析緩沖區(qū)內(nèi)的待播放視頻數(shù)據(jù),得到待播放視頻數(shù)據(jù)的時間 戳。
[0089] S103 :虛擬播放器將待播放視頻數(shù)據(jù)的時間戳標(biāo)示的時間點,與虛擬播放器記錄 的視頻播放器播放的視頻的時間點進行對比,得到對比結(jié)果。
[0090] 其中,虛擬播放器記錄的視頻播放器播放的視頻的時間點是通過虛擬時間軸記錄 的。
[0091] S104:虛擬播放器根據(jù)對比結(jié)果,確定是否將待播放視頻數(shù)據(jù)發(fā)送給視頻播放器 進行播放。
[0092] 其中,對比結(jié)果包括:待播放視頻數(shù)據(jù)的時間戳標(biāo)示的時間點與虛擬播放器記錄 的視頻播放器播放的視頻的播放時間點之差位于預(yù)設(shè)時間范圍內(nèi);待播放視頻數(shù)據(jù)的時間 戳標(biāo)示的時間點與虛擬播放器記錄的視頻播放器播放的視頻的播放時間點之差沒有位于 預(yù)設(shè)時間范圍內(nèi)。
[0093] 具體地,如果待播放視頻數(shù)據(jù)的時間戳標(biāo)示的時間點與虛擬播放器記錄的視頻播 放器播放的視頻的播放時間點之差為〇,則證明視頻播放器正要播放的是當(dāng)前的待播放視 頻數(shù)據(jù);如果待播放視頻數(shù)據(jù)的時間戳標(biāo)示的時間點與虛擬播放器記錄的視頻播放器播放 的視頻的播放時間點之差為5秒,則證明視頻播放器正要播放的是當(dāng)前的待播放視頻數(shù)據(jù) 之前的5秒的待播放視頻數(shù)據(jù)。根據(jù)上述待播放視頻數(shù)據(jù)的時間戳標(biāo)示的時間點與虛擬播 放器記錄的視頻播放器播放的視頻的播放時間點之差的含義,為了不占用視頻播放器太大 的內(nèi)存,又可以減緩播放卡頓,可以將預(yù)設(shè)時間范圍設(shè)置的很小,如可以設(shè)置為0-2秒、0-1 秒等。
[0094] 具體地,虛擬播放器可以是運行在視頻服務(wù)器的UTP(Universal tranmission platform,通用傳輸平臺)和視頻播放器之間的一個邏輯較為獨立的模塊,它有一個輸入 接口和一個輸出接口,UTP將需要播放的待播放視頻數(shù)據(jù)(具體可以是流式媒體數(shù)據(jù))通 過輸入接口不間斷的提交給虛擬播放器,虛擬播放器對待播放視頻數(shù)據(jù)進行解析,分析時 間戳后,依據(jù)待播放視頻數(shù)據(jù)內(nèi)部的虛擬時間軸進行排序和控制,并通過輸出接口,根據(jù)虛 擬時間軸的進度,定時定量的將待播放視頻數(shù)據(jù)輸出給視頻播放器。
[0095] 另一方面,視頻播放器也可以通過輸入接口向虛擬播放器請求待播放視頻數(shù)據(jù), 虛擬播放器進行解析后,將請求命令發(fā)送給相應(yīng)的視頻服務(wù)器。
[0096] 具體地,通過在視頻播放器和視頻服務(wù)器之間設(shè)置虛擬播放器,可以將更多的待 播放視頻數(shù)據(jù)緩存到虛擬播放器的緩沖區(qū)內(nèi),可以有效地防止視頻播放器本地數(shù)據(jù)的堆 積,避免占用視頻播放器的存儲空間。并且通過虛擬播放器,可以非常精確有效地控制視頻 播放器的流速,保證視頻播放器穩(wěn)定播放。
[0097] 實施例二
[0098] 圖2為本申請實施例二播放視頻的方法,在實施例一的播放方法的基礎(chǔ)上,虛擬 播放器從視頻數(shù)據(jù)存儲區(qū)中獲取視頻數(shù)據(jù),并將獲取的視頻數(shù)據(jù)存儲在虛擬播放器的緩沖 區(qū)內(nèi)之后,如圖2所示,還可以包括:
[0099] S201 :虛擬播放器判斷緩沖區(qū)是否已被填滿,如果沒有被填滿,則接著執(zhí)行S101 ; 如果被填滿,則接著執(zhí)行S201。
[0100] 具體地,由于一方面從緩沖區(qū)提取視頻數(shù)據(jù)給視頻播放器播放,一方面從視頻服 務(wù)器獲取視頻數(shù)據(jù)填充緩沖區(qū),所以在執(zhí)行S201的同時,也會執(zhí)行S101。并且,由于不時地 從緩沖區(qū)提取視頻數(shù)據(jù)給視頻播放器播放,所以當(dāng)緩沖區(qū)被填滿后,隨時都有可能因被提 取視頻數(shù)據(jù)給視頻播放器播放,而變的不滿,所以需要不斷判斷緩沖區(qū)是否已被填滿。
[0101] 實施例三
[0102] 圖3為本申請實施例三播放視頻的方法,基于實施例一或?qū)嵤├牟シ欧椒ǎ?如圖3所示,虛擬播放器根據(jù)對比結(jié)果,確定是否將待播放視頻數(shù)據(jù)發(fā)送給視頻播放器進 行播放,可以包括:
[0103] S301 :虛擬播放器判斷對比結(jié)果,如果對比結(jié)果是:待播放視頻數(shù)據(jù)的時間戳標(biāo) 示的時間點與虛擬播放器記錄的視頻播放器播放的視頻的播放時間點之差位于預(yù)設(shè)時間 范圍內(nèi),則執(zhí)行S302 ;如果對比結(jié)果是:待播放視頻數(shù)據(jù)的時間戳標(biāo)示的時間點與虛擬播 放器記錄的視頻播放器播放的視頻的播放時間點之差沒有位于預(yù)設(shè)時間范圍內(nèi),則執(zhí)行 S303。
[0104] 具體地,例如:如果預(yù)設(shè)時間范圍為0-1秒,則待播放視頻數(shù)據(jù)的時間戳標(biāo)示的時 間點為13 :10,虛擬播放器記錄的視頻播放器播放的視頻的播放時間點為13 :05,待播放視 頻數(shù)據(jù)的時間戳標(biāo)示的時間點與虛擬播放器記錄的視頻播放器播放的視頻的播放時間點 之差為5秒,待播放視頻數(shù)據(jù)的時間戳標(biāo)示的時間點與虛擬播放器記錄的視頻播放器播放 的視頻的播放時間點之差,沒有位于預(yù)設(shè)時間范圍內(nèi),則不將待播放的視頻數(shù)據(jù)發(fā)送給視 頻播放器。待播放視頻數(shù)據(jù)的時間戳標(biāo)示的時間點為13 :10,虛擬播放器記錄的視頻播放 器播放的視頻的播放時間點為13 :09,待播放視頻數(shù)據(jù)的時間戳標(biāo)示的時間點與虛擬播放 器記錄的視頻播放器播放的視頻的播放時間點之差為1秒,待播放視頻數(shù)據(jù)的時間戳標(biāo)示 的時間點與虛擬播放器記錄的視頻播放器播放的視頻的播放時間點之差,位于預(yù)設(shè)時間范 圍內(nèi),則需要將待播放的視頻數(shù)據(jù)發(fā)送給視頻播放器。
[0105] S302 :確定將待播放視頻數(shù)據(jù)發(fā)送給視頻播放器進行播放,然后結(jié)束。
[0106] 其中,虛擬播放器確定將待播放視頻數(shù)據(jù)發(fā)送給視頻播放器進行播放,包括:
[0107] 虛擬播放器判斷待播放視頻數(shù)據(jù)是否是視頻的起始段;
[0108] 如果是視頻的起始段,則虛擬播放器延遲預(yù)設(shè)的時長后,將待播放視頻數(shù)據(jù)發(fā)送 給視頻播放器進行播放;
[0109] 如果不是視頻的起始段,則虛擬播放器直接將待播放視頻數(shù)據(jù)發(fā)送給視頻播放器 進行播放。
[0110] 具體地,如果待播放視頻數(shù)據(jù)是視頻的起始段,則虛擬播放器延遲預(yù)設(shè)的時長后 將待播放視頻數(shù)據(jù)發(fā)送給視頻播放器進行播放,即間隔預(yù)設(shè)的時長后,視頻播放器才開始 播放視頻,使得視頻播放器播放視頻的時間,與虛擬播放器產(chǎn)生時移,保證虛擬播放器有充 足的時間從視頻服務(wù)器獲取視頻數(shù)據(jù),在網(wǎng)絡(luò)抖動的時候,視頻播放器也不會產(chǎn)生跳幀,可 以順暢播放,可以有效地減少網(wǎng)絡(luò)抖動帶來的播放不流暢的問題。
[0111] S303 :確定不將待播放視頻數(shù)據(jù)發(fā)送給視頻播放器進行播放,然后結(jié)束。
[0112] 實施例四
[0113] 圖4為本申請實施例四播放視頻的方法,如圖4所示,基于實施例一或?qū)嵤├?實施例三的播放方法,S302確定將待播放視頻數(shù)據(jù)發(fā)送給視頻播放器之后,還可以包括:
[0114] S304:視頻播放器判斷收到的待播放視頻數(shù)據(jù)是否是視頻的起始段,如果是,則執(zhí) 行S305 ;如果不是,則執(zhí)行S306。
[0115] S305:視頻播放器延遲預(yù)設(shè)的時長后,播放待播放視頻數(shù)據(jù),然后結(jié)束。
[0116] 具體地,如果收到的是視頻的起始段,則延遲預(yù)設(shè)的時長后,播放該待播放視頻數(shù) 據(jù),即間隔預(yù)設(shè)的時長后,視頻播放器才開始播放視頻,使得視頻播放器播放視頻的時間, 與虛擬播放器產(chǎn)生時移,保證虛擬播放器有充足的時間從視頻服務(wù)器獲取視頻數(shù)據(jù),在網(wǎng) 絡(luò)抖動的時候,視頻播放器也不會產(chǎn)生跳幀,可以順暢播放,可以有效地減少網(wǎng)絡(luò)抖動帶來 的播放不流暢的問題。
[0117] 其中,預(yù)設(shè)的時長可以根據(jù)實際應(yīng)用狀況進行設(shè)置,如可以設(shè)置為10秒、20秒等。
[0118] S306 :視頻播放器直接播放待播放視頻數(shù)據(jù),然后結(jié)束。
[0119] 實施例五
[0120] 圖5為本申請實施例五虛擬播放器,該虛擬播放器設(shè)置在視頻播放器和視頻服務(wù) 器之間,如圖5所示,該虛擬播放器可以包括:
[0121] 獲取模塊401、緩存模塊402、解析模塊403、對比模塊404和確定模塊405 ;
[0122] 獲取模塊401,用于獲取視頻服務(wù)器發(fā)送的待播放視頻數(shù)據(jù),并將獲取的待播放視 頻數(shù)據(jù)存儲在緩存模塊402內(nèi);
[0123] 緩存模塊402,用于存儲待播放視頻數(shù)據(jù);
[0124] 解析模塊403,用于解析緩存模塊402內(nèi)的待播放視頻數(shù)據(jù),得到待播放視頻數(shù)據(jù) 的時間戳;
[0125] 對比模塊404,用于將待播放視頻數(shù)據(jù)的時間戳標(biāo)示的時間點,與虛擬播放器記錄 的視頻播放器播放的視頻的播放時間點進行對比,得到對比結(jié)果;
[0126] 確定模塊405,用于根據(jù)對比結(jié)果,確定是否將待播放視頻數(shù)據(jù)發(fā)送給視頻播放器 進行播放。
[0127] 實施例六
[0128] 圖6為本申請實施例六虛擬播放器,如圖6所示,虛擬播放器還可以包括:
[0129] 接收模塊406,用于接收視頻播放器發(fā)送的視頻播放指令;
[0130] 查找模塊407,用于根據(jù)視頻播放指令中攜帶的IP地址,查找到視頻服務(wù)器;
[0131] 連接模塊408,用于與查找到的視頻服務(wù)器建立連接,并將視頻ID號上傳到視頻 服務(wù)器中。
[0132] 實施例七
[0133] 圖7為本申請實施例七虛擬播放器,基于實施例五和實施例六,如圖7所示,獲取 模塊401可以包括:
[0134] 解析單元401a,用于解析待播放視頻數(shù)據(jù),得到待播放視頻數(shù)據(jù)的幀信息;
[0135] 建立單元401b,用于當(dāng)根據(jù)幀信息得知待播放視頻數(shù)據(jù)為起始幀數(shù)據(jù)時,建立虛 擬時間軸;
[0136] 記錄單元401c,用于定時讀取視頻播放器播放視頻的時間,將讀取到的視頻播放 器播放視頻的時間,記錄在虛擬時間軸上。
[0137] 實施例八
[0138] 圖8為本申請實施例八虛擬播放器,基于實施例五和實施例六、實施例七,如圖8 所示,確定模塊405可以包括:
[0139] 第一確定單元405a,用于如果對比模塊404的對比結(jié)果是:待播放視頻數(shù)據(jù)的時 間戳標(biāo)示的時間點與虛擬播放器記錄的視頻播放器播放的視頻的播放時間點之差位于預(yù) 設(shè)時間范圍內(nèi)時,則確定將待播放視頻數(shù)據(jù)發(fā)送給視頻播放器進行播放;
[0140] 第二確定單元405b,用于如果對比模塊404的對比結(jié)果是:待播放視頻數(shù)據(jù)的時 間戳標(biāo)示的時間點與虛擬播放器記錄的視頻播放器播放的視頻的播放時間點之差沒有位 于預(yù)設(shè)時間范圍內(nèi),則確定不將待播放視頻數(shù)據(jù)發(fā)送給視頻播放器進行播放。
[0141] 實施例九
[0142] 基于上述實施例,本申請實施例九虛擬播放器,第一確定單元405a可以包括:
[0143] 判斷子單元,用于判斷待播放視頻數(shù)據(jù)是否是視頻的起始段;
[0144] 第一發(fā)送子單元,用于如果判斷子單元的判斷結(jié)果是待播放視頻數(shù)據(jù)是視頻的起 始段,則延遲預(yù)設(shè)的時長后,將待播放視頻數(shù)據(jù)發(fā)送給視頻播放器進行播放;
[0145] 第二發(fā)送子單元,用于如果判斷子單元的判斷結(jié)果是待播放視頻數(shù)據(jù)不是視頻的 起始段,則直接將待播放視頻數(shù)據(jù)發(fā)送給視頻播放器進行播放。
[0146] 實施例十
[0147] 圖9為本申請實施例十的視頻播放器,如圖9所示,該視頻播放器可以包括:
[0148] 判斷模塊501,用于判斷接收到的待播放視頻數(shù)據(jù)是否是視頻的起始段;
[0149] 第一播放模塊502,用于如果判斷模塊501的判斷結(jié)果是待播放視頻數(shù)據(jù)是視頻 的起始段,則延遲預(yù)設(shè)的時長后,啟動播放待播放視頻數(shù)據(jù);
[0150] 第二播放模塊503,用于如果判斷模塊501的判斷結(jié)果是待播放視頻數(shù)據(jù)不是視 頻的起始段,則直接播放待播放視頻數(shù)據(jù)。
[0151] 上述說明示出并描述了本申請的若干優(yōu)選實施例,但如前所述,應(yīng)當(dāng)理解本申請 并非局限于本文所披露的形式,不應(yīng)看作是對其他實施例的排除,而可用于各種其他組合、 修改和環(huán)境,并能夠在本文所述發(fā)明構(gòu)想范圍內(nèi),通過上述教導(dǎo)或相關(guān)領(lǐng)域的技術(shù)或知識 進行改動。而本領(lǐng)域人員所進行的改動和變化不脫離本申請的精神和范圍,則都應(yīng)在本申 請所附權(quán)利要求的保護范圍內(nèi)。
【權(quán)利要求】
1. 一種播放視頻的方法,其特征在于,在視頻播放器和視頻服務(wù)器之間設(shè)置虛擬播放 器,所述方法包括: 所述虛擬播放器從所述視頻服務(wù)器獲取待播放視頻數(shù)據(jù),并將獲取的所述待播放視頻 數(shù)據(jù)存儲在所述虛擬播放器的緩沖區(qū)內(nèi); 所述虛擬播放器解析所述緩沖區(qū)內(nèi)的待播放視頻數(shù)據(jù),得到所述待播放視頻數(shù)據(jù)的時 間戳; 所述虛擬播放器將所述待播放視頻數(shù)據(jù)的時間戳標(biāo)示的時間點,與所述虛擬播放器記 錄的所述視頻播放器播放的視頻的播放時間點進行對比,得到對比結(jié)果; 所述虛擬播放器根據(jù)所述對比結(jié)果,確定是否將所述待播放視頻數(shù)據(jù)發(fā)送給所述視頻 播放器進行播放。
2. 根據(jù)權(quán)利要求1所述的方法,其特征在于,所述虛擬播放器獲取所述視頻服務(wù)器發(fā) 送的待播放視頻數(shù)據(jù),并將獲取的所述待播放視頻數(shù)據(jù)存儲在所述虛擬播放器的緩沖區(qū)內(nèi) 之前,還包括: 所述虛擬播放器接收所述視頻播放器發(fā)送的視頻播放指令; 所述視頻播放指令中攜帶有IP地址,所述虛擬播放器根據(jù)所述IP地址,查找到所述視 頻服務(wù)器; 所述視頻播放指令中攜帶有視頻ID號,所述虛擬播放器與查找到的所述視頻服務(wù)器 建立連接,并將所述視頻ID號上傳到所述視頻服務(wù)器中。
3. 根據(jù)權(quán)利要求1或2所述的方法,其特征在于,所述虛擬播放器獲取所述視頻服務(wù)器 發(fā)送的待播放視頻數(shù)據(jù)之后,還包括: 所述虛擬播放器解析所述待播放視頻數(shù)據(jù),得到所述待播放視頻數(shù)據(jù)的幀信息; 當(dāng)根據(jù)所述幀信息得知所述待播放視頻數(shù)據(jù)為起始幀數(shù)據(jù)時,所述虛擬播放器建立虛 擬時間軸; 所述虛擬播放器定時讀取所述視頻播放器播放所述視頻的時間,將讀取到的所述視頻 播放器播放所述視頻的時間,記錄在所述虛擬時間軸上。
4. 根據(jù)權(quán)利要求3所述的方法,其特征在于,所述虛擬播放器根據(jù)對比結(jié)果,確定是否 將所述待播放視頻數(shù)據(jù)發(fā)送給所述視頻播放器進行播放,包括: 如果對比結(jié)果是所述待播放視頻數(shù)據(jù)的時間戳標(biāo)示的時間點與所述虛擬播放器記錄 的所述視頻播放器播放的所述視頻的播放時間點之差位于預(yù)設(shè)時間范圍內(nèi)時,則所述虛擬 播放器確定將所述待播放視頻數(shù)據(jù)發(fā)送給所述視頻播放器進行播放; 如果對比結(jié)果是所述待播放視頻數(shù)據(jù)的時間戳標(biāo)示的時間點與所述虛擬播放器記錄 的所述視頻播放器播放的所述視頻的播放時間點之差沒有位于預(yù)設(shè)時間范圍內(nèi)時,則所述 虛擬播放器確定不將所述待播放視頻數(shù)據(jù)發(fā)送給所述視頻播放器進行播放。
5. 根據(jù)權(quán)利要求4所述的方法,其特征在于,所述虛擬播放器確定將所述待播放視頻 數(shù)據(jù)發(fā)送給所述視頻播放器進行播放,包括: 所述虛擬播放器判斷所述待播放視頻數(shù)據(jù)是否是所述視頻的起始段; 如果是所述視頻的起始段,則所述虛擬播放器延遲預(yù)設(shè)的時長后,將所述待播放視頻 數(shù)據(jù)發(fā)送給所述視頻播放器進行播放; 如果不是視頻的起始段,則所述虛擬播放器直接將所述待播放視頻數(shù)據(jù)發(fā)送給所述視 頻播放器進行播放;或, 所述虛擬播放器確定將所述待播放視頻數(shù)據(jù)發(fā)送給所述視頻播放器進行播放之后,還 包括: 所述視頻播放器判斷接收到的所述待播放視頻數(shù)據(jù)是否是視頻的起始段; 如果是視頻的起始段,則所述視頻播放器延遲預(yù)設(shè)的時長后,啟動播放所述待播放視 頻數(shù)據(jù); 如果不是視頻的起始段,則所述視頻播放器直接播放所述待播放視頻數(shù)據(jù)。
6. -種虛擬播放器,其特征在于,所述虛擬播放器設(shè)置在視頻播放器和視頻服務(wù)器之 間,所述虛擬播放器包括: 獲取模塊、緩存模塊、解析模塊、對比模塊和確定模塊; 所述獲取模塊,用于獲取所述視頻服務(wù)器發(fā)送的待播放視頻數(shù)據(jù),并將獲取的所述待 播放視頻數(shù)據(jù)存儲在緩存模塊內(nèi); 所述緩存模塊,用于存儲所述待播放視頻數(shù)據(jù); 所述解析模塊,用于解析所述緩存模塊內(nèi)的待播放視頻數(shù)據(jù),得到所述待播放視頻數(shù) 據(jù)的時間戳; 所述對比模塊,用于將所述待播放視頻數(shù)據(jù)的時間戳標(biāo)示的時間點,與所述虛擬播放 器記錄的所述視頻播放器播放的所述視頻的播放時間點進行對比,得到對比結(jié)果; 所述確定模塊,用于根據(jù)所述對比結(jié)果,確定是否將所述待播放視頻數(shù)據(jù)發(fā)送給所述 視頻播放器進行播放。
7. 根據(jù)權(quán)利要求6所述的虛擬播放器,其特征在于,所述虛擬播放器還包括: 接收模塊,用于接收所述視頻播放器發(fā)送的視頻播放指令; 查找模塊,用于根據(jù)所述視頻播放指令中攜帶的IP地址,查找到所述視頻服務(wù)器; 連接模塊,用于與查找到的所述視頻服務(wù)器建立連接,并將所述視頻播放指令中攜帶 的視頻ID號上傳到所述視頻服務(wù)器中。
8. 根據(jù)權(quán)利要求6或7所述的虛擬播放器,其特征在于,所述獲取模塊包括: 解析單元,用于解析所述待播放視頻數(shù)據(jù),得到所述待播放視頻數(shù)據(jù)的幀信息; 建立單元,用于當(dāng)根據(jù)所述幀信息得知所述待播放視頻數(shù)據(jù)為起始幀數(shù)據(jù)時,建立虛 擬時間軸; 記錄單元,用于定時讀取所述視頻播放器播放所述視頻的時間,將讀取到的所述視頻 播放器播放所述視頻的時間,記錄在所述虛擬時間軸上。
9. 根據(jù)權(quán)利要求8所述的虛擬播放器,其特征在于,所述確定模塊包括: 第一確定單元,用于如果所述對比模塊的對比結(jié)果是,所述待播放視頻數(shù)據(jù)的時間戳 標(biāo)示的時間點與所述虛擬播放器記錄的所述視頻播放器播放的所述視頻的播放時間點之 差位于預(yù)設(shè)時間范圍內(nèi)時,則確定將所述待播放視頻數(shù)據(jù)發(fā)送給所述視頻播放器進行播 放; 第二確定單元,用于如果所述對比模塊的對比結(jié)果是,所述待播放視頻數(shù)據(jù)的時間戳 標(biāo)示的時間點與所述虛擬播放器記錄的所述視頻播放器播放的所述視頻的播放時間點之 差沒有位于預(yù)設(shè)時間范圍內(nèi)時,則確定不將所述待播放視頻數(shù)據(jù)發(fā)送給所述視頻播放器。
10. 根據(jù)權(quán)利要求9所述的虛擬播放器,其特征在于,所述第一確定單元包括: 判斷子單元,用于判斷所述待播放視頻數(shù)據(jù)是否是視頻的起始段; 第一發(fā)送子單元,用于如果所述判斷子單元的判斷結(jié)果是所述待播放視頻數(shù)據(jù)是視 頻的起始段,則延遲預(yù)設(shè)的時長后,將所述待播放視頻數(shù)據(jù)發(fā)送給所述視頻播放器進行播 放; 第二發(fā)送子單元,用于如果所述判斷子單元的判斷結(jié)果是所述待播放視頻數(shù)據(jù)不是視 頻的起始段,則直接將所述待播放視頻數(shù)據(jù)發(fā)送給所述視頻播放器進行播放。
11. 一種視頻播放器,其特征在于,所述視頻播放器包括: 判斷模塊,用于判斷接收到的所述待播放視頻數(shù)據(jù)是否是視頻的起始段; 第一播放模塊,用于如果所述判斷模塊的判斷結(jié)果是所述待播放視頻數(shù)據(jù)是視頻的起 始段,則延遲預(yù)設(shè)的時長后,啟動播放所述待播放視頻數(shù)據(jù); 第二播放模塊,用于如果所述判斷模塊的判斷結(jié)果是所述待播放視頻數(shù)據(jù)不是視頻的 起始段,則直接播放所述待播放視頻數(shù)據(jù)。
【文檔編號】H04N21/231GK104159125SQ201410350641
【公開日】2014年11月19日 申請日期:2014年7月22日 優(yōu)先權(quán)日:2014年7月22日
【發(fā)明者】蔡鈞 申請人:樂視網(wǎng)信息技術(shù)(北京)股份有限公司