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