一種視頻播放緩衝方法及系統與流程
2023-05-02 07:13:46 1

本發明涉及視頻播放傳輸控制領域,尤其涉及一種視頻播放緩衝方法及系統。
背景技術:
視頻緩衝應用範圍廣泛,視頻緩衝技術直接與用戶體驗相關,是一個十分重要的技術主標。目前一般的視頻播放緩衝,無法自動適應網速,在網絡速度低的情況下進行直播視頻會出現畫面斷斷續續的卡頓現象;當網絡速度良好時,直播視頻的播放出現延遲實時性現象。
技術實現要素:
為了克服現有技術的不足,本發明的目的在於提供一種視頻播放緩衝系統及方法,其能自動適應網絡網速,減少視頻播放卡頓次數以及視頻直播延遲時間。
本發明的目的採用以下技術方案實現:
一種視頻播放緩衝方法,其特徵在於,包括以下步驟:
根據視頻緩衝數據量以及預設的播放閾值進行視頻播放,並監測網速;
判斷網速是否滿足預設條件;
若網速滿足預設條件,則根據當前網速更新視頻緩衝區深度以及播放閾值。
優選的,所述根據視頻緩衝數據量以及預設的播放閾值進行視頻播放,具體包括:
判斷視頻緩衝區數據量是否達到播放閥值,若達到播放閾值,則讀取視頻緩衝區的視頻數據進行視頻播放。
優選的,所述判斷網速是否滿足預設條件,包括:
判斷視頻緩衝時接收視頻數據是否出現卡頓或判斷視頻播放時讀取視頻數據是否出現卡頓。
優選的,所述若網速滿足預設條件,則根據當前網速修改視頻緩衝區深度以及播放閾值,具體為:
若視頻緩衝時接收視頻數據出現卡頓或視頻播放時讀取視頻數據出現卡頓,則根據播放固定長度視頻數據的時間Tp、緩衝接收固定長度視頻數據的時間Td、上次卡頓的間隔時間T1、最新卡頓的間隔時間T2、初始緩衝深度L1以及初始播放閥值S1,計算出最新緩衝深度L2和最新播放閥值S2,將最新緩衝深度L2和最新播放閥值S2分別替換初始緩衝深度L1以及初始播放閥值S1。
優選的,所述最新緩衝深度L2的計算公式如下:
所述最新播放閥值S2的計算公式如下:
本發明又提供了一種視頻播放緩衝系統,包括:
視頻播放模塊,用於根據視頻緩衝數據量以及預設的播放閾值進行視頻播放;
監測模塊,用於監測網速;
判斷模塊,用於判斷網速是否滿足預設條件;
更新模塊,用於當網速滿足預設條件時,根據當前網速更新視頻緩衝區深度以及播放閾值。
優選的,所述視頻播放模塊具體用於:判斷視頻緩衝區數據量是否達到播放閥值,若達到播放閾值,則讀取視頻緩衝區的視頻數據進行視頻播放;所述判斷模塊具體用於:判斷視頻緩衝接收視頻數據傳輸是否出現卡頓或判斷視頻播放讀取視頻數據是否出現卡頓。
優選的,所述更新模塊具體用於:當網速滿足預設條件時,依據播放器模塊播放固定長度視頻數據的時間Tp、預緩衝模塊緩衝接收固定長度視頻數據的時間Td、上次卡頓的間隔時間T1、最新卡頓的間隔時間T2進行讀取,計算出預緩衝模塊最新緩衝深度L2以及播放器最新播放閥值S2;並將最新緩衝深度L2以及最新播放閥值S2分別替換初始緩衝深度值L1和初始播放閥值S1。
優選的,所述最新緩衝深度L2和最新播放閥值S2的計算公式如下:
進一步的,本發明還提供了一種視頻播放緩衝系統,其特徵在於,包括:
處理器,
以及用於存儲處理器可執行指令的存儲器;
所述處理器被配置為:
根據視頻緩衝數據量以及預設的播放閾值進行視頻播放,並監測網速;
判斷網速是否滿足預設條件;
若網速滿足預設條件,則根據當前網速更新視頻緩衝區深度以及播放閾值。
相比現有技術,本發明的有益效果在於:通過監測網速,計算出適合當前網速的最新緩衝深度和最新播放閥值,並將預設的初始緩衝深度和初始播放閥值修改成最新緩衝深度和最新播放閥值,使當前視頻播放適合當前的網速,達到減少卡頓次數和延時時間。
附圖說明
圖1為本發明一實施例中的視頻播放緩衝方法流程示意圖;
圖2為本發明一實施例中的視頻播放緩衝系統結構示意圖。
圖3為本發明又一實施例中的視頻播放緩衝系統結構示意圖。
具體實施方式
下面,結合附圖以及具體實施方式,對本發明做進一步描述:
為了使本發明的目的、技術方案及優點更加清楚明白,以下結合附圖及實施例,對本發明進行進一步詳細說明。應當理解,此處所描述的具體實施例僅僅用以解釋本發明,並不用於限定本發明。
實施例一:
圖1為本發明中一實施例提供的一種視頻播放緩衝方法流程示意圖,參照圖1,該方法包括以下步驟:
步驟001、初始設定緩衝深度以及初始播放閥值,並進行視頻緩衝。
根據正常網速的大小初始設定緩衝深度和播放閥值,緩衝深度和播放閥值都指存儲量,單位為MB,需滿足緩衝深度大於播放閥值;這裡將初始緩衝深度用L1表示,初始播放閥值表示用S1表示。設定完成後,開始接收網絡傳輸的視頻數據並同步進行緩衝存儲。
步驟002、視頻緩衝深度達到初始播放閥值,播放視頻。
當緩衝存儲的視頻數據量達到初始播放閥值,觸發視頻播放開啟,緩衝的視頻數據將被讀取播放。
步驟003、對當前網速進行監測。
播放過程中,對當前網速實時監測。具體監測方式為:通過監測網絡的視頻數據傳輸緩衝存儲是否出現卡頓現象,如出現此狀況說明網絡網速視頻數據傳輸至緩存速度大於緩存的視頻數據被讀取播放速度,設定的緩衝深度已緩衝飽滿,在視頻播放中,會出現實時延遲過長現象;通過監測緩衝存儲的視頻數據被讀取播放是否出現卡頓現象,如出現此狀況說明網絡網速視頻數據傳輸至緩存速度小於緩存的視頻數據被讀取播放速度,設定的緩衝深度已無緩衝數據量,在視頻播放中,會出現視頻播放卡頓現象。
步驟004、如監測結果滿足預設條件,計算最新緩衝深度和最新播放閥值。
具體的,預設條件是指網絡的視頻數據傳輸緩衝存儲出現卡頓現象或緩衝存儲的視頻數據被讀取播放時出現卡頓現象。即當監測出現網絡的視頻數據傳輸緩衝存儲出現卡頓現象或緩衝存儲的視頻數據被讀取播放時出現卡頓現象,為滿足預設條件。當滿足預設條件,則讀取播放某一段固定長度視頻數據的時間Tp、緩衝接收同一固定長度視頻數據的時間Td、上次卡頓的間隔時間T1、最新卡頓的間隔時間T2,依據這些讀取的值以及初始設定緩衝深度L1以及初始播放閥值S1,計算出最新的緩衝深度L2和最新播放閥值S2。對於L2的計算公式如下:
對於S2,根據先前計算出來的L2值以及L1和S1,計算公式如下:
此公式利用非線性關係實現多因素調節播放閥值S。在原來的閥值基礎上進行非線性調整,從而實現快速適應緩衝深度與網速,減少卡頓次數與提高播放實時性。
步驟005、將緩衝深度以及播放閥值更新為最新值。
計算出最新的緩衝深度L2和最新播放閥值S2,將最新的L2替代初始緩衝深度值L1,最新的S2替代初始播放閥值S1。替代後,返回步驟002,開啟播放。在播放過程中監測網速,通過計算出適應當前網速的緩衝深度值和播放閥值,並進行更新。當網速較慢時,通過公式計算增大緩衝深度,增大播放閥值,使得緩衝存儲更多的數據量進行播放,減少緩衝數據量不及播放讀取視頻數據量的次數和時間;當網速較快時,通過公式計算增大緩衝深度,減小播放閥值,使得播放讀取視頻不用等緩衝到一定播放閥值才進行播放,達到減少直播延時時間。
實施例二:
圖2為本發明中一實施例提供的一種視頻播放緩衝系統結構示意圖,參考圖2,本發明提供了一種視頻播放緩衝系統,包括:
視頻播放模塊100,用於根據視頻緩衝數據量以及預設的播放閾值進行視頻播放;
監測模塊200,用於監測網速;
判斷模塊300,用於判斷網速是否滿足預設條件;
更新模塊400,用於當網速滿足預設條件時,根據當前網速更新視頻緩衝區深度以及播放閾值。
進一步的,視頻播放模塊100具體用於:判斷視頻緩衝區數據量是否達到播放閥值,若達到播放閾值,則讀取視頻緩衝區的視頻數據進行視頻播放;判斷模塊300具體用於:判斷視頻緩衝時接收視頻數據傳輸是否出現卡頓或判斷視頻播放時讀取視頻數據是否出現卡頓。更新模塊400具體用於:當網速滿足預設條件時,依據播放器模塊播放固定長度視頻數據的時間Tp、預緩衝模塊緩衝接收固定長度視頻數據的時間Td、上次卡頓的間隔時間T1、最新卡頓的間隔時間T2進行讀取,計算出預緩衝模塊最新緩衝深度L2以及播放器最新播放閥值S2;並將最新緩衝深度L2以及最新播放閥值S2分別替換初始緩衝深度值L1和初始播放閥值S1。
優選的,最新緩衝深度L2和最新播放閥值S2的計算公式如下:
此公式利用非線性關係實現多因素調節播放閥值S。在原來的閥值基礎上進行非線性調整,從而實現快速適應緩衝深度與網速,減少卡頓次數與提高播放實時性。
本實施例中的系統與前述實施例一中的方法是基於同一發明構思下的兩個方面,在前面已經對方法實施過程作了詳細的描述,所以本領域技術人員可根據前述描述清楚地了解本實施中的系統的結構組成,為了說明書的簡潔,在此就不再贅述。
實施例三:
圖3本發明中實施例提供的又一種視頻播放緩衝系統結構示意圖,參考圖3,本發明提供了一種視頻播放緩衝系統,包括:
處理器600,
以及用於存儲處理器可執行指令的存儲器500;
所述處理器600被配置為:
根據視頻緩衝數據量以及預設的播放閾值進行視頻播放,並監測網速;
判斷網速是否滿足預設條件;
若網速滿足預設條件,則根據當前網速更新視頻緩衝區深度以及播放閾值。
本實施例中的系統與前述實施例一中的方法是基於同一發明構思下的兩個方面,在前面已經對方法實施過程作了詳細的描述,所以本領域技術人員可根據前述描述清楚地了解本實施中的系統的結構組成,為了說明書的簡潔,在此就不再贅述。
為了描述的方便,描述以上裝置時以功能分為各種模塊分別描述。當然,在實施本發明時可以把各模塊的功能在同一個或多個軟體和/或硬體中實現。
通過以上的實施方式的描述可知,本領域的技術人員可以清楚地了解到本發明可藉助軟體加必需的通用硬體平臺的方式來實現。基於這樣的理解,本發明的技術方案本質上或者說對現有技術做出貢獻的部分可以以軟體產品的形式體現出來,該計算機軟體產品可以存儲在存儲介質中,如ROM/RAM、磁碟、光碟等,包括若干指令用以使得一臺計算機設備(可以是個人計算機,伺服器,或者網絡設備等)執行本發明各個實施例或者實施例的某些部分所述的方法。
描述的裝置實施例僅僅是示意性的,其中所述作為分離部件說明的模塊或單元可以是或者也可以不是物理上分開的,作為模塊或單元示意的部件可以是或者也可以不是物理模塊,既可以位於一個地方,或者也可以分布到多個網絡模塊上。可以根據實際的需要選擇其中的部分或者全部單元來實現本實施例方案的目的。本領域普通技術人員在不付出創造性勞動的情況下,即可以理解並實施。
本發明可用於眾多通用或專用的計算系統環境或配置中。例如:個人計算機、伺服器計算機、手持設備或可攜式設備、平板型設備、多處理器系統、基於微處理器的系統、機頂盒、可編程的消費電子設備、網絡PC、小型計算機、大型計算機、包括以上任何系統或設備的分布式計算環境等等,
本發明的有益效果在於:通過監測網速,計算出適合當前網速的最新緩衝深度和最新播放閥值,並將預設的初始緩衝深度和初始播放閥值更新成最新緩衝深度和最新播放閥值,使當前視頻播放適合當前的網速,達到減少卡頓次數和延時時間。
對本領域的技術人員來說,可根據以上描述的技術方案以及構思,做出其它各種相應的改變以及形變,而所有的這些改變以及形變都應該屬於本發明權利要求的保護範圍之內。