一種視頻播放方法及裝置的制造方法
【專利摘要】本申請公開一種視頻播放方法及裝置。在該方法中,首先獲取視頻的播放狀態(tài),若所述視頻的播放狀態(tài)為卡頓狀態(tài),則擴展所述視頻的視頻緩沖區(qū),并在視頻緩沖過程中,將從服務器讀取到的視頻文件存儲至擴展后的視頻緩沖區(qū)中。通過本申請公開的視頻播放方法及裝置,能夠在視頻播放出現(xiàn)卡頓的情況下,擴展視頻的視頻緩沖區(qū),并將視頻文件存儲至擴展后的視頻緩沖區(qū)中,相對于現(xiàn)有技術(shù)來說,本申請中,通過擴展后的視頻緩沖區(qū),能夠存儲更多容量的視頻文件,從而在視頻恢復播放之后,緩解畫面卡頓的現(xiàn)象。
【專利說明】
_種視頻播放方法及裝置
技術(shù)領域
[0001]本發(fā)明實施例涉及互聯(lián)網(wǎng)技術(shù)領域,尤其涉及一種視頻播放方法及裝置。
【背景技術(shù)】
[0002]目前,觀看視頻成為一種常用的娛樂方式。用戶可通過多種終端設備,如手機、平板電腦和智能電視等訪問互聯(lián)網(wǎng),獲取視頻文件,并根據(jù)視頻文件實現(xiàn)視頻播放。
[0003]另外,受到網(wǎng)絡抖動的影響,視頻在播放過程中有時會出現(xiàn)畫面卡頓的現(xiàn)象。這種情況下,為了提高觀影體驗,用戶通常暫停視頻播放,在暫停的時間段內(nèi),終端設備進行視頻緩沖。所述視頻緩沖指的是終端設備繼續(xù)訪問互聯(lián)網(wǎng),讀取視頻文件,并將讀取到的視頻文件存儲至視頻緩沖區(qū)。在恢復視頻播放之后,終端設備讀取所述視頻緩沖區(qū)中存儲的視頻文件并播放,以緩解畫面卡頓現(xiàn)象。
[0004]但是,發(fā)明人在本申請的研究過程中發(fā)現(xiàn),采用現(xiàn)有技術(shù)進行視頻播放時,若視頻緩沖區(qū)的空間較小,則緩沖過程中只能存儲較小容量的視頻文件,在恢復視頻播放之后,存儲的視頻文件播放結(jié)束后往往會再次出現(xiàn)畫面卡頓。
【發(fā)明內(nèi)容】
[0005]為克服相關技術(shù)中存在的問題,本發(fā)明實施例提供一種視頻播放方法及裝置。
[0006]為了解決上述技術(shù)問題,本發(fā)明實施例公開了如下技術(shù)方案:
[0007]根據(jù)本發(fā)明實施例的第一方面,提供一種視頻播放方法,包括:
[0008]在視頻播放過程中,獲取所述視頻的播放狀態(tài),其中,所述視頻的播放狀態(tài)包括:順暢狀態(tài)和卡頓狀態(tài);
[0009]若所述視頻的播放狀態(tài)為卡頓狀態(tài),擴展所述視頻的視頻緩沖區(qū);
[0010]在所述視頻緩沖的過程中,將從服務器讀取到的視頻文件存儲至擴展后的所述視頻緩沖區(qū)中。
[0011 ]優(yōu)選的,所述擴展所述視頻的視頻緩沖區(qū)包括:
[0012]獲取本次擴展所述視頻的視頻緩沖區(qū)時所需的擴展倍數(shù)m;
[0013]根據(jù)所述擴展倍數(shù)m擴展所述視頻緩沖區(qū),以使所述視頻緩沖區(qū)擴展后的容量為擴展前的原始容量的m倍。
[0014]優(yōu)選的,所述擴展所述視頻的視頻緩沖區(qū)包括:
[0015]獲取所述視頻在發(fā)生卡頓時,所述視頻中未播放部分的容量,并且,獲取當前的網(wǎng)速以及視頻播放速率;
[0016]根據(jù)所述視頻中未播放部分的容量、當前的網(wǎng)速和視頻播放速度,計算所述視頻在順暢播放的情況下,需要緩沖的視頻容量;
[0017]根據(jù)所述需要緩沖的視頻容量,擴展所述視頻緩沖區(qū),以使擴展后的所述視頻緩沖區(qū)的容量不小于所述需要緩沖的視頻容量。
[0018]優(yōu)選的,所述獲取本次擴展所述視頻的視頻緩沖區(qū)時所需的擴展倍數(shù)m,包括:
[0019]獲取終端設備當前的內(nèi)存使用情況;
[0020]根據(jù)預設的內(nèi)存使用情況和擴展倍數(shù)之間的映射關系,以及所述終端設備當前的內(nèi)存使用情況,獲取本次所需的擴展倍數(shù)m。
[0021]優(yōu)選的,所述獲取視頻的播放狀態(tài),包括:
[0022]在所述視頻播放過程中,若在預設的第一時間段內(nèi),所述視頻出現(xiàn)η次以上的中斷現(xiàn)象,則確定所述視頻的播放狀態(tài)為卡頓狀態(tài),其中,η為預設的整數(shù);
[0023]或者,在所述視頻播放過程中,若出現(xiàn)視頻中斷,且中斷的時間超過預設的第二時間段,則確定所述視頻的播放狀態(tài)為卡頓狀態(tài)。
[0024]優(yōu)選的,所述擴展所述視頻的視頻緩沖區(qū),包括:
[0025]獲取擴展前的視頻緩沖區(qū)的第一地址;
[0026]獲取緩沖區(qū)中的空白緩沖區(qū),并從所述空白緩沖區(qū)中查找目標緩沖區(qū),其中,所述目標緩沖區(qū)的地址與所述第一地址最近,且所述目標緩沖區(qū)的容量為待擴展容量,將所述目標緩沖區(qū)作為視頻緩沖區(qū);
[0027]其中,設定擴展前的視頻緩沖區(qū)的容量為原始容量,擴展后的視頻緩沖區(qū)的容量為擴展后容量,所述擴展后容量與原始容量之間的差值為所述待擴展容量。
[0028]優(yōu)選的,還包括:
[0029]在本次視頻播放結(jié)束后,將所述視頻緩沖區(qū)的容量調(diào)整至擴展前的原始容量;
[0030]或者,在擴展所述視頻的視頻緩沖區(qū)后,若確定所述視頻的播放狀態(tài)為順暢狀態(tài),則將所述視頻緩沖區(qū)的容量調(diào)整至擴展前的原始容量。
[0031 ]根據(jù)本發(fā)明實施例的第二方面,提供一種視頻播放裝置,包括:
[0032]播放狀態(tài)獲取模塊,用于在視頻播放過程中,獲取所述視頻的播放狀態(tài),其中,所述視頻的播放狀態(tài)包括:順暢狀態(tài)和卡頓狀態(tài);
[0033]緩沖區(qū)擴展模塊,用于若所述視頻的播放狀態(tài)為卡頓狀態(tài),擴展所述視頻的視頻緩沖區(qū);
[0034]存儲模塊,用于在所述視頻緩沖的過程中,將從服務器讀取到的視頻文件存儲至擴展后的所述視頻緩沖區(qū)中。
[0035]優(yōu)選的,所述緩沖區(qū)擴展模塊包括:
[0036]擴展倍數(shù)獲取單元,用于獲取本次擴展所述視頻的視頻緩沖區(qū)時所需的擴展倍數(shù)m;
[0037]第一擴展單元,用于根據(jù)所述擴展倍數(shù)m擴展所述視頻緩沖區(qū),以使所述視頻緩沖區(qū)擴展后的容量為擴展前的原始容量的m倍。
[0038]優(yōu)選的,所述緩沖區(qū)擴展模塊包括:
[0039]參數(shù)獲取單元,用于獲取所述視頻在發(fā)生卡頓時,所述視頻中未播放部分的容量,并且,獲取當前的網(wǎng)速以及視頻播放速率;
[0040]計算單元,用于根據(jù)所述視頻中未播放部分的容量、當前的網(wǎng)速和視頻播放速度,計算所述視頻在順暢播放的情況下,需要緩沖的視頻容量;
[0041 ]第二擴展單元,用于根據(jù)所述需要緩沖的視頻容量,擴展所述視頻緩沖區(qū),以使擴展后的所述視頻緩沖區(qū)的容量不小于所述需要緩沖的視頻容量。
[0042]優(yōu)選的,所述擴展倍數(shù)獲取單元包括:
[0043]第一獲取子單元,用于獲取終端設備當前的內(nèi)存使用情況;
[0044]第二獲取子單元,用于根據(jù)預設的內(nèi)存使用情況和擴展倍數(shù)之間的映射關系,以及所述終端設備當前的內(nèi)存使用情況,獲取本次所需的擴展倍數(shù)m。
[0045]優(yōu)選的,所述播放狀態(tài)獲取模塊包括:
[0046]第一播放狀態(tài)獲取單元,用于在所述視頻播放過程中,若在預設的第一時間段內(nèi),所述視頻出現(xiàn)η次以上的中斷現(xiàn)象,則確定所述視頻的播放狀態(tài)為卡頓狀態(tài),其中,η為預設的整數(shù);
[0047]或者,第二播放狀態(tài)獲取單元,用于在所述視頻播放過程中,若出現(xiàn)視頻中斷,且中斷的時間超過預設的第二時間段,則確定所述視頻的播放狀態(tài)為卡頓狀態(tài)。
[0048]I優(yōu)選的,所述緩沖區(qū)擴展模塊包括:
[0049]地址獲取單元,用于獲取擴展前的視頻緩沖區(qū)的第一地址;
[0050]目標緩沖區(qū)獲取單元,用于獲取緩沖區(qū)中的空白緩沖區(qū),并從所述空白緩沖區(qū)中查找目標緩沖區(qū),其中,所述目標緩沖區(qū)的地址與所述第一地址最近,且所述目標緩沖區(qū)的容量為待擴展容量,將所述目標緩沖區(qū)作為視頻緩沖區(qū);
[0051]其中,設定擴展前的視頻緩沖區(qū)的容量為原始容量,擴展后的視頻緩沖區(qū)的容量為擴展后容量,所述擴展后容量與原始容量之間的差值為所述待擴展容量。
[0052]優(yōu)選的,還包括:
[0053]第一調(diào)整模塊,用于在本次視頻播放結(jié)束后,將所述視頻緩沖區(qū)的容量調(diào)整至擴展前的原始容量;
[0054]或者,第二調(diào)整模塊,用于在擴展所述視頻的視頻緩沖區(qū)后,若確定所述視頻的播放狀態(tài)為順暢狀態(tài),則將所述視頻緩沖區(qū)的容量調(diào)整至擴展前的原始容量。
[0055]本發(fā)明的實施例提供的技術(shù)方案可以包括以下有益效果:
[0056]本申請公開一種視頻播放方法及裝置。該方法中,首先獲取視頻的播放狀態(tài),若所述視頻的播放狀態(tài)為卡頓狀態(tài),則擴展所述視頻的視頻緩沖區(qū),并在視頻緩沖過程中,將從服務器讀取到的視頻文件存儲至擴展后的視頻緩沖區(qū)中。
[0057]通過本申請公開的視頻播放方法及裝置,能夠在視頻播放出現(xiàn)卡頓的情況下,擴展視頻的視頻緩沖區(qū),并將視頻文件存儲至擴展后的視頻緩沖區(qū)中,相對于現(xiàn)有技術(shù)來說,本申請中,通過擴展后的視頻緩沖區(qū),能夠存儲更多容量的視頻文件,從而在視頻恢復播放之后,緩解畫面卡頓的現(xiàn)象。
[0058]應當理解的是,以上的一般描述和后文的細節(jié)描述僅是示例性和解釋性的,并不能限制本發(fā)明。
【附圖說明】
[0059]此處的附圖被并入說明書中并構(gòu)成本說明書的一部分,示出了符合本發(fā)明的實施例,并與說明書一起用于解釋本發(fā)明的原理。
[0060]圖1是根據(jù)本發(fā)明一示例性實施例示出的一種視頻播放方法的工作流程示意圖;
[0061]圖2是根據(jù)本發(fā)明一示例性實施例示出的一種視頻播放方法中,擴展視頻緩沖區(qū)的工作流程示意圖;
[0062]圖3是根據(jù)本發(fā)明一示例性實施例示出的一種視頻播放裝置的結(jié)構(gòu)示意圖。
【具體實施方式】
[0063]這里將詳細地對示例性實施例進行說明,其示例表示在附圖中。下面的描述涉及附圖時,除非另有表示,不同附圖中的相同數(shù)字表示相同或相似的要素。以下示例性實施例中所描述的實施方式并不代表與本發(fā)明相一致的所有實施方式。相反,它們僅是與如所附權(quán)利要求書中所詳述的、本發(fā)明的一些方面相一致的裝置和方法的例子。
[0064]本申請公開一種視頻播放方法及裝置,以解決現(xiàn)有技術(shù)中,視頻在播放過程中出現(xiàn)畫面卡頓的問題。
[0065]本申請的實施例一公開一種視頻播放方法。參見圖1所示的工作流程示意圖,所述視頻播放方法包括以下步驟:
[0066]步驟S11、在視頻播放過程中,獲取所述視頻的播放狀態(tài),其中,所述視頻的播放狀態(tài)包括:順暢狀態(tài)和卡頓狀態(tài)。
[0067]步驟S12、若所述視頻的播放狀態(tài)為卡頓狀態(tài),擴展所述視頻的視頻緩沖區(qū)。
[0068]若所述視頻的播放狀態(tài)為卡頓狀態(tài),會影響用戶的觀影體驗,因此,用戶往往會對終端設備進行操作,使視頻暫停播放。在暫停的時間內(nèi),終端設備仍然會從服務器中讀取視頻文件,并將讀取到的視頻文件存儲至視頻緩沖區(qū)中。這種情況下,為了能夠在視頻緩沖區(qū)中存儲的較多的視頻文件,本申請公開的方案中,需要擴展所述視頻的視頻緩沖區(qū)。
[0069]步驟S13、在所述視頻緩沖的過程中,將從服務器讀取到的視頻文件存儲至擴展后的所述視頻緩沖區(qū)中。
[0070]本申請的第一實施例公開一種視頻播放方法,該方法中,首先獲取視頻的播放狀態(tài),若所述視頻的播放狀態(tài)為卡頓狀態(tài),則擴展所述視頻的視頻緩沖區(qū),并在視頻緩沖過程中,將從服務器讀取到的視頻文件存儲至擴展后的視頻緩沖區(qū)中。
[0071]通過本申請公開的視頻播放方法,能夠在視頻播放出現(xiàn)卡頓的情況下,擴展視頻的視頻緩沖區(qū),并將視頻文件存儲至擴展后的視頻緩沖區(qū)中,相對于現(xiàn)有技術(shù)來說,本申請中,通過擴展后的視頻緩沖區(qū),能夠存儲更多容量的視頻文件,從而在視頻恢復播放之后,緩解畫面卡頓的現(xiàn)象。
[0072]本申請公開的視頻播放方法中,公開了在視頻的播放狀態(tài)為卡頓狀態(tài)時,擴展所述視頻的視頻緩沖區(qū)的步驟。該步驟可通過多種方式實現(xiàn)。
[0073]在其中一種方式中,所述擴展所述視頻的視頻緩沖區(qū)包括:
[0074]首先,獲取本次擴展所述視頻的視頻緩沖區(qū)時所需的擴展倍數(shù)m;
[0075]然后,根據(jù)所述擴展倍數(shù)m擴展所述視頻緩沖區(qū),以使所述視頻緩沖區(qū)擴展后的容量為擴展前的原始容量的m倍。
[0076]例如,若本次所需的擴展倍數(shù)m為2,這種情況下,根據(jù)所述擴展倍數(shù)m擴展所述視頻緩沖區(qū)后,擴展后的視頻緩沖區(qū)為擴展錢的原始容量的2倍。
[0077]在另一種方式中,所述擴展所述視頻的視頻緩沖區(qū)包括:將所述視頻緩沖區(qū)的容量擴展至預設的容量。
[0078]這種情況下,需要預先對擴展后的視頻緩沖區(qū)的容量進行設置,從而在擴展后,使所述視頻緩沖區(qū)的容量達到所述預設的容量。
[0079]進一步的,在另一種方式中,參見圖2所示的流程示意圖,所述擴展所述視頻的視頻緩沖區(qū)包括以下步驟:
[0080]步驟S21、獲取所述視頻在發(fā)生卡頓時,所述視頻中未播放部分的容量,并且,獲取當前的網(wǎng)速以及視頻播放速率。
[0081]步驟S22、根據(jù)所述視頻中未播放部分的容量、當前的網(wǎng)速和視頻播放速率,計算所述視頻在順暢播放的情況下,需要緩沖的視頻容量。
[0082]由于在視頻播放過程中,終端設備仍然能夠從服務器中讀取視頻文件,因此,該步驟中,需要結(jié)合所述視頻中未播放部分的容量、當前的網(wǎng)速和視頻播放速度等各個因素,計算視頻若順暢播放,需要緩沖的視頻容量。
[0083]步驟S23、根據(jù)所述需要緩沖的視頻容量,擴展所述視頻緩沖區(qū),以使擴展后的所述視頻緩沖區(qū)的容量不小于所述需要緩沖的視頻容量。通常情況下,擴展后的視頻緩沖區(qū)的容量通常等于所述需要緩沖的視頻容量。
[0084]例如,若在步驟S21中,確定視頻中未播放部分的容量為1MB,當前的網(wǎng)速為IMB/S,視頻播放速度為2MB/S。這種情況下,可設置擴展后的視頻緩沖區(qū)的容量為6MB。當視頻暫停播放后,擴展后視頻緩沖區(qū)中存儲的視頻文件為6MB,當恢復視頻的播放后,由于視頻播放速度為2MB/S,因此,經(jīng)過3秒的時間,會將暫停播放時存儲的視頻文件播放完,但是,在這3秒的時間段內(nèi),由于當前的網(wǎng)速為1MB/S,則在播放過程中,視頻緩沖區(qū)中又會存儲3MB的視頻文件,此時剩余的未緩沖的視頻文件為1MB。而播放這3MB的視頻文件的視頻文件耗時為1.5秒,1.5秒的時間內(nèi),可在視頻緩沖區(qū)中存儲1.5MB的視頻文件,多于所述剩余的未緩沖的視頻文件。結(jié)合上述過程可知,若將視頻緩沖區(qū)的容量擴展為6MB,即可實現(xiàn)視頻的順暢播放。
[0085]通過步驟S21至步驟S23的操作,能夠?qū)崿F(xiàn)對視頻緩沖區(qū)的擴展,并且,通過該方式進行視頻緩沖區(qū)的擴展,能夠保障視頻的順暢播放。
[0086]另外,若本申請公開的視頻播放方法中,根據(jù)擴展倍數(shù)m擴展所述視頻緩沖區(qū)的容量,可預先設置擴展倍數(shù)m。這種情況下,需要預先對所述擴展倍數(shù)m進行設置并存儲,當需要對視頻緩沖區(qū)進行擴展時,根據(jù)預先的設置,確定所述擴展倍數(shù)m。該方法中,由于擴展倍數(shù)m預先設置并存儲,因此可以快速獲取所述擴展倍數(shù)m。
[0087]在另一種方式中,所述獲取本次擴展所述視頻的視頻緩沖區(qū)時所需的擴展倍數(shù)m,包括以下步驟:
[0088]首先,獲取終端設備當前的內(nèi)存使用情況;
[0089]然后,根據(jù)預設的內(nèi)存使用情況和擴展倍數(shù)之間的映射關系,以及所述終端設備當前的內(nèi)存使用情況,獲取本次所需的擴展倍數(shù)m。
[0090]在該方式中,需要預先設定內(nèi)存使用情況和擴展倍數(shù)之間的映射關系。在該映射關系中,通常設定內(nèi)存使用率較高的情況下,所對應的擴展倍數(shù)m較小,而所述內(nèi)存使用率較低的情況下,所對應的擴展倍數(shù)m較大。
[0091]通過上述方式,能夠根據(jù)終端設備的內(nèi)存使用情況,靈活的擴展視頻緩沖區(qū)。其中,若終端設備的內(nèi)存使用率較高,則終端設備中其他程序可能需要占用較多的緩沖空間,這種情況下,在映射關系中,設定其對應的擴展倍數(shù)m較小,從而使視頻緩沖區(qū)的擴展幅度較小,能夠為其他程序預留較多緩沖空間。若終端設備的內(nèi)存使用率較低,則終端設備中其他程序占用的緩沖空間可能較小,這種情況下,在映射關系中,設定其對應的擴展倍數(shù)m較大,從而使視頻緩沖區(qū)的擴展幅度較大。
[0092]進一步的,本申請公開的視頻播放方法中,需要獲取視頻的播放狀態(tài),以便根據(jù)所述視頻的播放狀態(tài)確定是否需要擴展視頻緩沖區(qū)。本申請中,可通過多種方法獲取視頻的播放狀態(tài)。
[0093]在其中一種方式中,所述獲取視頻的播放狀態(tài)包括:
[0094]在所述視頻播放過程中,若在預設的第一時間段內(nèi),所述視頻出現(xiàn)η次以上的中斷現(xiàn)象,則確定所述視頻的播放狀態(tài)為卡頓狀態(tài),其中,η為預設的整數(shù)。
[0095]例如,若預設的第一時間段為10分鐘,η為3,則在視頻播放過程中,10分鐘之內(nèi)視頻出現(xiàn)3次或更多次中斷,則確定視頻的播放狀態(tài)為卡頓狀態(tài)。
[0096]相應的,這種情況下,若所述視頻未出現(xiàn)中斷現(xiàn)象,或者視頻雖然出現(xiàn)中斷現(xiàn)象,但是在預設的第一時間段內(nèi),視頻中斷的次數(shù)少于η次,則確定視頻的播放狀態(tài)為順暢狀
??τ O
[0097]或者,在另一種方式中,所述獲取視頻的播放狀態(tài)包括:
[0098]在所述視頻播放過程中,若出現(xiàn)視頻中斷,且中斷的時間超過預設的第二時間段,則確定所述視頻的播放狀態(tài)為卡頓狀態(tài)。
[0099]例如,可設定第二時間段為I分鐘,則在視頻播放過程中,若視頻中斷的時間超過I分鐘,則確定所述視頻的播放狀態(tài)為卡頓狀態(tài)。
[0100]相應的,這種情況下,若所述視頻未出現(xiàn)中斷現(xiàn)象,或者視頻雖然出現(xiàn)中斷現(xiàn)象,但是視頻中斷的時間未超過所述預設的第二時間段,則能夠確定視頻的播放狀態(tài)為順暢狀
??τ O
[0101]通過上述公開的方案,能夠獲取視頻的播放狀態(tài),以便后續(xù)根據(jù)所述視頻的播放狀態(tài),確定是否擴展視頻緩沖區(qū)。
[0102]進一步的,在本申請公開的視頻播放方法中,所述擴展所述視頻的視頻緩沖區(qū)包括:
[0103]首先,獲取擴展前的視頻緩沖區(qū)的第一地址;
[0104]然后,獲取緩沖區(qū)中的空白緩沖區(qū),并從所述空白緩沖區(qū)中查找目標緩沖區(qū),其中,所述目標緩沖區(qū)的地址與所述第一地址最近,且所述目標緩沖區(qū)的容量為待擴展容量,將所述目標緩沖區(qū)作為視頻緩沖區(qū)。
[0105]其中,設定擴展前的視頻緩沖區(qū)的容量為原始容量,擴展后的視頻緩沖區(qū)的容量為擴展后容量,所述擴展后容量與原始容量之間的差值為所述待擴展容量。
[0106]例如,若在擴展前,視頻緩沖區(qū)的容量為1MB,擴展后的視頻緩沖區(qū)的容量為30ΜΒ,則所述原始容量為1MB,所述擴展后容量為30ΜΒ,所述待擴展容量為20ΜΒ。在獲取所述第一地址后,在整個緩沖區(qū)中,查詢與所述第一地址最接近,且容量為20ΜΒ的緩沖區(qū)域作為目標緩沖區(qū),并將該目標緩沖區(qū)擴展為視頻緩沖區(qū)。
[0107]這種情況下,若擴展前的視頻緩沖區(qū)與目標緩沖區(qū)之間不存在被占用的緩沖區(qū)域,則所述擴展前的視頻緩沖區(qū)的結(jié)束地址為所述目標緩沖區(qū)的開始地址,從而便于實現(xiàn)對視頻文件的存儲。
[0108]另外,在另一種擴展方式中,還可以根據(jù)原始容量和擴展容量獲取待擴展容量,然后在空白緩沖區(qū)中任意選取容量為所述待擴展容量的緩沖區(qū)域,將其作為目標緩沖區(qū),并將所述目標緩沖區(qū)作為視頻緩沖區(qū),從而實現(xiàn)對視頻緩沖區(qū)的擴展。
[0109]進一步的,本申請公開的視頻播放方法還包括:
[0110]在本次視頻播放結(jié)束后,將所述視頻緩沖區(qū)的容量調(diào)整至擴展前的原始容量。
[0111]或者,本申請公開的視頻播放方法還包括:在擴展所述視頻的視頻緩沖區(qū)后,若確定所述視頻的播放狀態(tài)為順暢狀態(tài),則將所述視頻緩沖區(qū)的容量調(diào)整至擴展前的原始容量。
[0112]在擴展視頻緩沖區(qū)后,從服務器中讀取的視頻文件存儲在擴展后的視頻緩沖區(qū)中,這種情況下,終端設備中存儲的視頻文件的容量較大,從而在清除視頻緩沖區(qū)中的視頻文件時,會耗費較多時間,甚至在清除過程中會影響終端設備的響應速度。因此,本申請公開的視頻播放方法中,在本次視頻播放結(jié)束后,執(zhí)行將所述視頻緩沖區(qū)的容量調(diào)整至擴展前的原始容量的操作,以便下次視頻播放時,仍然采用原始容量的視頻緩沖區(qū)進行視頻的緩沖,或者,在視頻播放狀態(tài)為順暢狀態(tài)時,將所述視頻緩沖區(qū)的容量調(diào)整中擴展前的原始容量,避免在視頻緩沖區(qū)中存儲較大容量的視頻文件,減少后續(xù)清除視頻緩沖區(qū)中的視頻文件所耗費的時間。
[0113]相應的,本申請的第二實施例公開一種視頻播放裝置,參見圖3所示的結(jié)構(gòu)示意圖,所述視頻播放裝置包括:播放狀態(tài)獲取模塊100、緩沖區(qū)擴展模塊200和存儲模塊300。
[0114]其中,所述播放狀態(tài)獲取模塊100,用于在視頻播放過程中,獲取所述視頻的播放狀態(tài),其中,所述視頻的播放狀態(tài)包括:順暢狀態(tài)和卡頓狀態(tài);
[0115]所述緩沖區(qū)擴展模塊200,用于若所述視頻的播放狀態(tài)為卡頓狀態(tài),擴展所述視頻的視頻緩沖區(qū);
[0116]所述存儲模塊300,用于在所述視頻緩沖的過程中,將從服務器讀取到的視頻文件存儲至擴展后的所述視頻緩沖區(qū)中。
[0117]通過本申請公開的視頻播放裝置,能夠在視頻播放出現(xiàn)卡頓的情況下,擴展視頻的視頻緩沖區(qū),并將視頻文件存儲至擴展后的視頻緩沖區(qū)中,相對于現(xiàn)有技術(shù)來說,本申請中,通過擴展后的視頻緩沖區(qū),能夠存儲更多容量的視頻文件,從而在視頻恢復播放之后,緩解畫面卡頓的現(xiàn)象。
[0118]另外,在本申請公開的視頻播放裝置中,在視頻的播放狀態(tài)為卡頓狀態(tài)時,通過所述緩沖區(qū)擴展模塊擴展所述視頻的視頻緩沖區(qū)。其中,所述緩沖區(qū)擴展模塊可為多種形式。
[0119]在其中一種形式中,所述緩沖區(qū)擴展模塊包括:擴展倍數(shù)獲取單元和第一擴展單
J L ο
[0120]其中,所述擴展倍數(shù)獲取單元,用于獲取本次擴展所述視頻的視頻緩沖區(qū)時所需的擴展倍數(shù)m;
[0121 ]所述第一擴展單元,用于根據(jù)所述擴展倍數(shù)m擴展所述視頻緩沖區(qū),以使所述視頻緩沖區(qū)擴展后的容量為擴展前的原始容量的m倍。
[0122]例如,若本次所需的擴展倍數(shù)m為2,這種情況下,根據(jù)所述擴展倍數(shù)m擴展所述視頻緩沖區(qū)后,擴展后的視頻緩沖區(qū)為擴展錢的原始容量的2倍。
[0123]在另一種形式中,所述緩沖區(qū)擴展模塊包括:參數(shù)獲取單元、計算單元和第二擴展單元。
[0124]參數(shù)獲取單元,用于獲取所述視頻在發(fā)生卡頓時,所述視頻中未播放部分的容量,并且,獲取當前的網(wǎng)速以及視頻播放速率;
[0125]計算單元,用于根據(jù)所述視頻中未播放部分的容量、當前的網(wǎng)速和視頻播放速度,計算所述視頻在順暢播放的情況下,需要緩沖的視頻容量;
[0126]第二擴展單元,用于根據(jù)所述需要緩沖的視頻容量,擴展所述視頻緩沖區(qū),以使擴展后的所述視頻緩沖區(qū)的容量不小于所述需要緩沖的視頻容量。
[0127]由于在視頻播放過程中,終端設備仍然能夠從服務器中讀取視頻文件,因此,所述計算單元需要結(jié)合所述視頻中未播放部分的容量、當前的網(wǎng)速和視頻播放速度等各個因素,計算視頻若順暢播放,需要緩沖的視頻容量。
[0128]例如,若確定視頻中未播放部分的容量為1MB,當前的網(wǎng)速為1MB/S,視頻播放速度為2MB/S。這種情況下,可設置擴展后的視頻緩沖區(qū)的容量為6MB。當視頻暫停播放后,擴展后視頻緩沖區(qū)中存儲的視頻文件為6MB,當恢復視頻的播放后,由于視頻播放速度為2MB/S,因此,經(jīng)過3秒的時間,會將暫停播放時存儲的視頻文件播放完,但是,在這3秒的時間段內(nèi),由于當前的網(wǎng)速為1MB/S,則在播放過程中,視頻緩沖區(qū)中又會存儲3MB的視頻文件,此時剩余的未緩沖的視頻文件為1MB。而播放這3MB的視頻文件的視頻文件耗時為1.5秒,1.5秒的時間內(nèi),可在視頻緩沖區(qū)中存儲1.5MB的視頻文件,多于所述剩余的未緩沖的視頻文件。結(jié)合上述過程可知,若將視頻緩沖區(qū)的容量擴展為6MB,即可實現(xiàn)視頻的順暢播放。
[0129]通過參數(shù)獲取單元、計算單元和第二擴展單元,能夠?qū)崿F(xiàn)對視頻緩沖區(qū)的擴展,并且,通過上述三個單元進行視頻緩沖區(qū)的擴展,能夠保障視頻的順暢播放。
[0130]若本申請公開的視頻播放方法中,根據(jù)擴展倍數(shù)m擴展所述視頻緩沖區(qū)的容量,可預先設置擴展倍數(shù)m。這種情況下,所述擴展倍數(shù)獲取單元預先對所述擴展倍數(shù)m進行設置并存儲,當需要對視頻緩沖區(qū)進行擴展時,根據(jù)預先的設置,確定所述擴展倍數(shù)m。
[0131]另外,在另一種形式中,所述擴展倍數(shù)獲取單元包括:
[0132]第一獲取子單元,用于獲取終端設備當前的內(nèi)存使用情況;
[0133]第二獲取子單元,用于根據(jù)預設的內(nèi)存使用情況和擴展倍數(shù)之間的映射關系,以及所述終端設備當前的內(nèi)存使用情況,獲取本次所需的擴展倍數(shù)m。
[0134]通過第一獲取子單元和第二獲取子單元,能夠根據(jù)終端設備的內(nèi)存使用情況,靈活的擴展視頻緩沖區(qū)。其中,若終端設備的內(nèi)存使用率較高,則終端設備中其他程序可能需要占用較多的緩沖空間,這種情況下,在映射關系中,設定其對應的擴展倍數(shù)m較小,從而使視頻緩沖區(qū)的擴展幅度較小,能夠為其他程序預留較多緩沖空間。若終端設備的內(nèi)存使用率較低,則終端設備中其他程序占用的緩沖空間可能較小,這種情況下,在映射關系中,設定其對應的擴展倍數(shù)m較大,從而使視頻緩沖區(qū)的擴展幅度較大。
[0135]進一步的,本申請公開的視頻播放裝置中,需要通過播放狀態(tài)獲取模塊獲取視頻的播放狀態(tài),其中,所述播放狀態(tài)獲取模塊包括:
[0136]第一播放狀態(tài)獲取單元,用于在所述視頻播放過程中,若在預設的第一時間段內(nèi),所述視頻出現(xiàn)η次以上的中斷現(xiàn)象,則確定所述視頻的播放狀態(tài)為卡頓狀態(tài),其中,η為預設的整數(shù)。
[0137]或者,所述播放狀態(tài)獲取模塊包括:第二播放狀態(tài)獲取單元,用于在所述視頻播放過程中,若出現(xiàn)視頻中斷,且中斷的時間超過預設的第二時間段,則確定所述視頻的播放狀態(tài)為卡頓狀態(tài)。
[0138]進一步的,所述緩沖區(qū)擴展模塊包括:
[0139]地址獲取單元,用于獲取擴展前的視頻緩沖區(qū)的第一地址;
[0140]目標緩沖區(qū)獲取單元,用于獲取緩沖區(qū)中的空白緩沖區(qū),并從所述空白緩沖區(qū)中查找目標緩沖區(qū),其中,所述目標緩沖區(qū)的地址與所述第一地址最近,且所述目標緩沖區(qū)的容量為待擴展容量,將所述目標緩沖區(qū)作為視頻緩沖區(qū);
[0141]其中,設定擴展前的視頻緩沖區(qū)的容量為原始容量,擴展后的視頻緩沖區(qū)的容量為擴展后容量,所述擴展后容量與原始容量之間的差值為所述待擴展容量。
[0142]例如,若在擴展前,視頻緩沖區(qū)的容量為1M B,擴展后的視頻緩沖區(qū)的容量為30MB,則所述原始容量為1MB,所述擴展后容量為30MB,所述待擴展容量為20MB。在獲取所述第一地址后,在整個緩沖區(qū)中,查詢與所述第一地址最接近,且容量為20MB的緩沖區(qū)域作為目標緩沖區(qū),并將該目標緩沖區(qū)擴展為視頻緩沖區(qū)。
[0143]這種情況下,若擴展前的視頻緩沖區(qū)與目標緩沖區(qū)之間不存在被占用的緩沖區(qū)域,則所述擴展前的視頻緩沖區(qū)的結(jié)束地址為所述目標緩沖區(qū)的開始地址,從而便于實現(xiàn)對視頻文件的存儲。
[0144]另外,所述緩沖區(qū)擴展模塊還可以根據(jù)原始容量和擴展容量獲取待擴展容量,然后在空白緩沖區(qū)中任意選取容量為所述待擴展容量的緩沖區(qū)域,將其作為目標緩沖區(qū),并將所述目標緩沖區(qū)作為視頻緩沖區(qū),從而實現(xiàn)對視頻緩沖區(qū)的擴展。
[0145]進一步的,本申請公開的視頻播放裝置還包括:
[0146]第一調(diào)整模塊,用于在本次視頻播放結(jié)束后,將所述視頻緩沖區(qū)的容量調(diào)整至擴展前的原始容量;
[0147]或者,第二調(diào)整模塊,用于在擴展所述視頻的視頻緩沖區(qū)后,若確定所述視頻的播放狀態(tài)為順暢狀態(tài),則將所述視頻緩沖區(qū)的容量調(diào)整至擴展前的原始容量。
[0148]在擴展視頻緩沖區(qū)后,從服務器中讀取的視頻文件存儲在擴展后的視頻緩沖區(qū)中,這種情況下,終端設備中存儲的視頻文件的容量較大,從而在清除視頻緩沖區(qū)中的視頻文件時,會耗費較多時間,甚至在清除過程中會影響終端設備的響應速度。
[0149]因此,本申請公開的視頻播放裝置中,在本次視頻播放結(jié)束后,通過所述第一調(diào)整模塊將所述視頻緩沖區(qū)的容量調(diào)整至擴展前的原始容量的操作,以便下次視頻播放時,仍然采用原始容量的視頻緩沖區(qū)進行視頻的緩沖,或者,在視頻播放狀態(tài)為順暢狀態(tài)時,通過所述第二調(diào)整模塊將所述視頻緩沖區(qū)的容量調(diào)整中擴展前的原始容量,避免在視頻緩沖區(qū)中存儲較大容量的視頻文件,減少后續(xù)清除視頻緩沖區(qū)中的視頻文件所耗費的時間。
[0150]關于上述實施例中的裝置,其中各個模塊執(zhí)行操作的具體方式已經(jīng)在有關該方法的實施例中進行了詳細描述,此處將不做詳細闡述說明。
[0151]本領域技術(shù)人員在考慮說明書及實踐這里公開的發(fā)明后,將容易想到本發(fā)明的其它實施方案。本申請旨在涵蓋本發(fā)明的任何變型、用途或者適應性變化,這些變型、用途或者適應性變化遵循本發(fā)明的一般性原理并包括本發(fā)明實施例未公開的本技術(shù)領域中的公知常識或慣用技術(shù)手段。說明書和實施例僅被視為示例性的,本發(fā)明的真正范圍和精神由下面的權(quán)利要求指出。
[0152]應當理解的是,本發(fā)明并不局限于上面已經(jīng)描述并在附圖中示出的精確結(jié)構(gòu),并且可以在不脫離其范圍進行各種修改和改變。本發(fā)明的范圍僅由所附的權(quán)利要求來限制。
【主權(quán)項】
1.一種視頻播放方法,其特征在于,包括: 在視頻播放過程中,獲取所述視頻的播放狀態(tài),其中,所述視頻的播放狀態(tài)包括:順暢狀態(tài)和卡頓狀態(tài); 若所述視頻的播放狀態(tài)為卡頓狀態(tài),擴展所述視頻的視頻緩沖區(qū); 在所述視頻緩沖的過程中,將從服務器讀取到的視頻文件存儲至擴展后的所述視頻緩沖區(qū)中。2.根據(jù)權(quán)利要求1所述的視頻播放方法,其特征在于,所述擴展所述視頻的視頻緩沖區(qū)包括: 獲取本次擴展所述視頻的視頻緩沖區(qū)時所需的擴展倍數(shù)m; 根據(jù)所述擴展倍數(shù)m擴展所述視頻緩沖區(qū),以使所述視頻緩沖區(qū)擴展后的容量為擴展前的原始容量的m倍。3.根據(jù)權(quán)利要求1所述的視頻播放方法,其特征在于,所述擴展所述視頻的視頻緩沖區(qū)包括: 獲取所述視頻在發(fā)生卡頓時,所述視頻中未播放部分的容量,并且,獲取當前的網(wǎng)速以及視頻播放速率; 根據(jù)所述視頻中未播放部分的容量、當前的網(wǎng)速和視頻播放速度,計算所述視頻在順暢播放的情況下,需要緩沖的視頻容量; 根據(jù)所述需要緩沖的視頻容量,擴展所述視頻緩沖區(qū),以使擴展后的所述視頻緩沖區(qū)的容量不小于所述需要緩沖的視頻容量。4.根據(jù)權(quán)利要求2所述的視頻播放方法,其特征在于,所述獲取本次擴展所述視頻的視頻緩沖區(qū)時所需的擴展倍數(shù)m,包括: 獲取終端設備當前的內(nèi)存使用情況; 根據(jù)預設的內(nèi)存使用情況和擴展倍數(shù)之間的映射關系,以及所述終端設備當前的內(nèi)存使用情況,獲取本次所需的擴展倍數(shù)m。5.根據(jù)權(quán)利要求1所述的視頻播放方法,其特征在于,所述獲取視頻的播放狀態(tài),包括: 在所述視頻播放過程中,若在預設的第一時間段內(nèi),所述視頻出現(xiàn)η次以上的中斷現(xiàn)象,則確定所述視頻的播放狀態(tài)為卡頓狀態(tài),其中,η為預設的整數(shù); 或者, 在所述視頻播放過程中,若出現(xiàn)視頻中斷,且中斷的時間超過預設的第二時間段,則確定所述視頻的播放狀態(tài)為卡頓狀態(tài)。6.根據(jù)權(quán)利要求1所述的視頻播放方法,其特征在于,所述擴展所述視頻的視頻緩沖區(qū),包括: 獲取擴展前的視頻緩沖區(qū)的第一地址; 獲取緩沖區(qū)中的空白緩沖區(qū),并從所述空白緩沖區(qū)中查找目標緩沖區(qū),其中,所述目標緩沖區(qū)的地址與所述第一地址最近,且所述目標緩沖區(qū)的容量為待擴展容量,將所述目標緩沖區(qū)作為視頻緩沖區(qū); 其中,設定擴展前的視頻緩沖區(qū)的容量為原始容量,擴展后的視頻緩沖區(qū)的容量為擴展后容量,所述擴展后容量與原始容量之間的差值為所述待擴展容量。7.根據(jù)權(quán)利要求1至6任一項所述的視頻播放方法,其特征在于,還包括: 在本次視頻播放結(jié)束后,將所述視頻緩沖區(qū)的容量調(diào)整至擴展前的原始容量; 或者, 在擴展所述視頻的視頻緩沖區(qū)后,若確定所述視頻的播放狀態(tài)為順暢狀態(tài),則將所述視頻緩沖區(qū)的容量調(diào)整至擴展前的原始容量。8.一種視頻播放裝置,其特征在于,包括: 播放狀態(tài)獲取模塊,用于在視頻播放過程中,獲取所述視頻的播放狀態(tài),其中,所述視頻的播放狀態(tài)包括:順暢狀態(tài)和卡頓狀態(tài); 緩沖區(qū)擴展模塊,用于若所述視頻的播放狀態(tài)為卡頓狀態(tài),擴展所述視頻的視頻緩沖區(qū); 存儲模塊,用于在所述視頻緩沖的過程中,將從服務器讀取到的視頻文件存儲至擴展后的所述視頻緩沖區(qū)中。9.根據(jù)權(quán)利要求8所述的視頻播放裝置,其特征在于,所述緩沖區(qū)擴展模塊包括: 擴展倍數(shù)獲取單元,用于獲取本次擴展所述視頻的視頻緩沖區(qū)時所需的擴展倍數(shù)m; 第一擴展單元,用于根據(jù)所述擴展倍數(shù)m擴展所述視頻緩沖區(qū),以使所述視頻緩沖區(qū)擴展后的容量為擴展前的原始容量的m倍。10.根據(jù)權(quán)利要求8所述的視頻播放裝置,其特征在于,所述緩沖區(qū)擴展模塊包括: 參數(shù)獲取單元,用于獲取所述視頻在發(fā)生卡頓時,所述視頻中未播放部分的容量,并且,獲取當前的網(wǎng)速以及視頻播放速率; 計算單元,用于根據(jù)所述視頻中未播放部分的容量、當前的網(wǎng)速和視頻播放速度,計算所述視頻在順暢播放的情況下,需要緩沖的視頻容量; 第二擴展單元,用于根據(jù)所述需要緩沖的視頻容量,擴展所述視頻緩沖區(qū),以使擴展后的所述視頻緩沖區(qū)的容量不小于所述需要緩沖的視頻容量。11.根據(jù)權(quán)利要求9所述的視頻播放裝置,其特征在于,所述擴展倍數(shù)獲取單元包括: 第一獲取子單元,用于獲取終端設備當前的內(nèi)存使用情況; 第二獲取子單元,用于根據(jù)預設的內(nèi)存使用情況和擴展倍數(shù)之間的映射關系,以及所述終端設備當前的內(nèi)存使用情況,獲取本次所需的擴展倍數(shù)m。12.根據(jù)權(quán)利要求8所述的視頻播放裝置,其特征在于,所述播放狀態(tài)獲取模塊包括: 第一播放狀態(tài)獲取單元,用于在所述視頻播放過程中,若在預設的第一時間段內(nèi),所述視頻出現(xiàn)η次以上的中斷現(xiàn)象,則確定所述視頻的播放狀態(tài)為卡頓狀態(tài),其中,η為預設的整數(shù); 或者, 第二播放狀態(tài)獲取單元,用于在所述視頻播放過程中,若出現(xiàn)視頻中斷,且中斷的時間超過預設的第二時間段,則確定所述視頻的播放狀態(tài)為卡頓狀態(tài)。13.根據(jù)權(quán)利要求8所述的視頻播放裝置,其特征在于,所述緩沖區(qū)擴展模塊包括: 地址獲取單元,用于獲取擴展前的視頻緩沖區(qū)的第一地址; 目標緩沖區(qū)獲取單元,用于獲取緩沖區(qū)中的空白緩沖區(qū),并從所述空白緩沖區(qū)中查找目標緩沖區(qū),其中,所述目標緩沖區(qū)的地址與所述第一地址最近,且所述目標緩沖區(qū)的容量為待擴展容量,將所述目標緩沖區(qū)作為視頻緩沖區(qū); 其中,設定擴展前的視頻緩沖區(qū)的容量為原始容量,擴展后的視頻緩沖區(qū)的容量為擴展后容量,所述擴展后容量與原始容量之間的差值為所述待擴展容量。14.根據(jù)權(quán)利要求8至13任一項所述的視頻播放裝置,其特征在于,還包括: 第一調(diào)整模塊,用于在本次視頻播放結(jié)束后,將所述視頻緩沖區(qū)的容量調(diào)整至擴展前的原始容量; 或者, 第二調(diào)整模塊,用于在擴展所述視頻的視頻緩沖區(qū)后,若確定所述視頻的播放狀態(tài)為順暢狀態(tài),則將所述視頻緩沖區(qū)的容量調(diào)整至擴展前的原始容量。
【文檔編號】H04N21/433GK105898536SQ201610284532
【公開日】2016年8月24日
【申請日】2016年4月29日
【發(fā)明人】曹先進
【申請人】樂視控股(北京)有限公司, 樂視網(wǎng)信息技術(shù)(北京)股份有限公司