本發(fā)明涉及視頻傳輸技術(shù)領(lǐng)域,具體而言,涉及一種基于pid控制的視頻直播傳輸控制方法和一種基于pid控制的視頻直播傳輸控制系統(tǒng)。
背景技術(shù):
隨著寬帶的普及和網(wǎng)絡(luò)技術(shù)的發(fā)展,互聯(lián)網(wǎng)上的多媒體業(yè)務(wù)漸漸成為主流。上一代的視頻應(yīng)用主要是基于視頻點播服務(wù)的,而隨著網(wǎng)絡(luò)狀況的逐步改善以及視頻技術(shù)的不斷發(fā)展,人們對視頻直播的需求不斷增長,基于視頻直播服務(wù)構(gòu)建的應(yīng)用也開始快速涌現(xiàn),比如電視節(jié)目直播、視頻會議、視頻通話等。其中,最新的直播應(yīng)用能夠讓用戶通過手機設(shè)備創(chuàng)建直播內(nèi)容。
為了保證直播的實時性,也就是保證較低的直播延遲,上一代的直播技術(shù)主要是基于udp協(xié)議(userdatagramprotocol,用戶數(shù)據(jù)報協(xié)議)。udp協(xié)議并不確保數(shù)據(jù)包的成功接收,視頻直播的延遲主要是數(shù)據(jù)包從發(fā)送端到達接收端的時間,因此延遲一般都很低,但接收端需要額外的方法處理網(wǎng)絡(luò)丟包帶來的錯誤。
而如果改為使用tcp協(xié)議(transmissioncontrolprotocol,傳輸控制協(xié)議),則能夠確保所有數(shù)據(jù)包的成功接收,但是在網(wǎng)絡(luò)狀況不佳的情況下,tcp協(xié)議的重傳機制會進行大量的重傳操作,使得數(shù)據(jù)的發(fā)送時間較長,導(dǎo)致視頻流暢度低并且延遲較高。
隨著網(wǎng)絡(luò)狀況的不斷改善,使用tcp協(xié)議在視頻直播方面的可用性大大提高。其中,rtmp協(xié)議(realtimemessagingprotocol,實時消息傳輸協(xié)議)是adobe公司開發(fā)的一種基于tcp協(xié)議的實時數(shù)據(jù)通信網(wǎng)絡(luò)協(xié)議,主要用來在flash/air平臺和支持rtmp協(xié)議的流媒體/交互服務(wù)器之間進行音視頻和數(shù)據(jù)通信,被廣泛應(yīng)用于點播和直播服務(wù),具有較強的穩(wěn)定性、可靠性。
然而,雖然網(wǎng)絡(luò)環(huán)境得到了不斷改善,但是網(wǎng)絡(luò)狀況的波動依然時常發(fā)生,網(wǎng)絡(luò)狀況的波動會直接影響到tcp協(xié)議進行數(shù)據(jù)傳輸?shù)耐掏铝?。其中,視頻碼率是數(shù)據(jù)傳輸時單位時間傳送的數(shù)據(jù)位數(shù),如果吞吐量小于當(dāng)前傳輸視頻的碼率,就會造成接收端視頻播放的不流暢的現(xiàn)象。
因此,如何實現(xiàn)根據(jù)當(dāng)前的網(wǎng)絡(luò)狀況進行動態(tài)的碼率調(diào)整,成為亟待解決的技術(shù)問題。
技術(shù)實現(xiàn)要素:
本發(fā)明正是基于上述技術(shù)問題,提出了一種新的技術(shù)方案,可以實現(xiàn)根據(jù)當(dāng)前的網(wǎng)絡(luò)狀況進行動態(tài)的碼率調(diào)整。
有鑒于此,本發(fā)明的一方面提出了一種基于pid控制的視頻直播傳輸控制方法,包括:按照預(yù)定檢測周期檢測系統(tǒng)的實時碼率和視頻發(fā)送緩沖區(qū)的實時長度,其中,所述視頻發(fā)送緩沖區(qū)的實時長度為緩沖的視頻幀的數(shù)量;計算所述視頻發(fā)送緩沖區(qū)的實時長度與長度目標值的差值;將所述差值帶入pid控制公式,以計算得到當(dāng)前時刻所需的碼率調(diào)整值;根據(jù)所述碼率調(diào)整值,調(diào)整所述實時碼率。
在該技術(shù)方案中,系統(tǒng)在進行視頻直播時,可以根據(jù)視頻發(fā)送緩沖區(qū)的實時長度,利用pid(proportion-integration-differentiation,比例-積分-微分)控制理論實時調(diào)整視頻的發(fā)送端提供的視頻流的碼率,即對實時碼率進行修正,從而可以將視頻發(fā)送緩沖區(qū)的數(shù)據(jù)量維持在理想的狀態(tài),實現(xiàn)了視頻質(zhì)量根據(jù)網(wǎng)絡(luò)狀況的自適應(yīng),在提升視頻直播的流暢程度,盡可能地充分利用網(wǎng)絡(luò)帶寬以達到較高視頻質(zhì)量。
其中,pid是一種閉環(huán)的反饋控制機制,在pid控制系統(tǒng)中,可根據(jù)系統(tǒng)當(dāng)前狀態(tài)與期望狀態(tài)的誤差來計算一個控制量,并利用該控制量對輸入進行調(diào)整,從而使系統(tǒng)狀態(tài)趨向于期望狀態(tài)。也就是說,可以根據(jù)當(dāng)前的視頻發(fā)送緩沖區(qū)的實時長度與長度目標值的差值,也就是誤差,來計算當(dāng)前時刻所需的碼率調(diào)整值,使實時碼率趨向于期望值。
在上述技術(shù)方案中,優(yōu)選地,在所述按照預(yù)定檢測周期檢測系統(tǒng)的實時碼率和視頻發(fā)送緩沖區(qū)的實時長度之前,還包括:根據(jù)接收到的第一設(shè) 置命令,設(shè)置所述視頻發(fā)送緩沖區(qū)的所述長度目標值。
在該技術(shù)方案中,視頻發(fā)送緩沖區(qū)的長度目標值可以由用戶手動調(diào)整設(shè)置,或者也可以設(shè)置多個目標值檔位供用戶選擇,另外,還可以由系統(tǒng)根據(jù)實時碼率,自動設(shè)置與網(wǎng)絡(luò)狀況相適宜的長度目標值。
在上述任一技術(shù)方案中,優(yōu)選地,所述pid控制公式為:
其中,u(t)表示t時刻所需的碼率調(diào)整值,kp、ki、kd分別為比例系數(shù)、積分系數(shù)、微分系數(shù),e(t)表示t時刻時所述視頻發(fā)送緩沖區(qū)的實時長度與長度目標值的差值,
在該技術(shù)方案中,為了降低短時間內(nèi)快速變化的網(wǎng)絡(luò)狀況對視頻數(shù)據(jù)傳輸帶來的影響,提高播放流暢度,系統(tǒng)設(shè)置有視頻發(fā)送緩沖區(qū)、播放緩沖區(qū)。在發(fā)送端和接收端之間,是用tcp協(xié)議進行連接的,而tcp協(xié)議在發(fā)送端維護一個tcp發(fā)送緩沖區(qū),在接收端維護一個tcp接收緩沖區(qū)。因此,可以將整個視頻直播傳輸?shù)南到y(tǒng)抽象成4個緩沖區(qū):視頻發(fā)送緩沖區(qū)、tcp發(fā)送緩沖區(qū)、tcp接收緩沖區(qū)、播放緩沖區(qū)。在視頻流暢播放的時候,單位時間內(nèi)進入視頻發(fā)送緩沖區(qū)的視頻幀數(shù)量和從播放緩沖區(qū)出去的視頻幀數(shù)量是相等的,所以4個緩沖區(qū)總的視頻幀數(shù)量是一個固定的值。由于tcp發(fā)送緩沖區(qū)、tcp接收緩沖區(qū)的大小很小,所以可以看成視頻發(fā)送緩沖區(qū)、播放緩沖區(qū)中視頻幀之和是一個定值,而視頻發(fā)送緩沖區(qū)存在大量幀的時候,將導(dǎo)致播放緩沖區(qū)沒有視頻幀或存在較少的視頻幀,具有很大可能性導(dǎo)致視頻播放中斷,故可以通過控制視頻發(fā)送緩沖區(qū)的視頻幀的數(shù)量來控制播放緩沖區(qū)中視頻幀的數(shù)量,因此,本發(fā)明定義的系統(tǒng)狀態(tài)變量是視頻發(fā)送緩沖區(qū)中的視頻幀的數(shù)量。
由此可知,e(t)表示t時刻時所述視頻發(fā)送緩沖區(qū)的實時長度與長度目標值的差值,即狀態(tài)變量的變化量,輸出的u(t)代表碼率調(diào)整的大小,將會被疊加到當(dāng)前設(shè)置的實時碼率上,作為下一個時刻應(yīng)該設(shè)置的碼率大小,假設(shè)當(dāng)前的碼率為br,那么下一個時刻的碼率就是br+u(t)。
通過該技術(shù)方案,不斷地監(jiān)測狀態(tài)變量的變化,將其與目標值進行比較,通過誤差量來對實際帶寬變化情況進行記錄和預(yù)測,計算控制輸出。然后根據(jù)控制輸出有針對性地調(diào)整視頻質(zhì)量,使?fàn)顟B(tài)變量盡可能接近目標值,從而實現(xiàn)符合帶寬變化的穩(wěn)定視頻傳輸。
在上述任一技術(shù)方案中,優(yōu)選地,在所述按照預(yù)定檢測周期檢測系統(tǒng)的實時碼率和視頻發(fā)送緩沖區(qū)的實時長度之前,還包括:根據(jù)接收到的第二設(shè)置命令,設(shè)置所述預(yù)定檢測周期。
在該技術(shù)方案中,是對系統(tǒng)的實時碼率和視頻發(fā)送緩沖區(qū)的實時長度進行周期性檢測,也就是說,每經(jīng)過預(yù)定檢測周期進行一次檢測,這里所述的預(yù)定檢測周期可以由用戶手動調(diào)整設(shè)置,或者也可以設(shè)置多個周期檔位供用戶選擇,另外,還可以由系統(tǒng)根據(jù)實時碼率,自動設(shè)置與網(wǎng)絡(luò)狀況相適宜的預(yù)定檢測周期。比如,當(dāng)網(wǎng)速高于標準值時,采用5s的檢測周期,這樣,在網(wǎng)速快的情況下可以盡可能減少周期性檢測帶來的功耗及內(nèi)存占用,而當(dāng)網(wǎng)速低于或等于標準值時,采用3s的檢測周期,以避免因網(wǎng)速過慢而無法及時調(diào)整碼率,避免直播不流暢。
在上述任一技術(shù)方案中,優(yōu)選地,所述根據(jù)所述碼率調(diào)整值,調(diào)整所述實時碼率,具體包括:檢測所述碼率調(diào)整值是否達到預(yù)定調(diào)整閾值;當(dāng)確定所述碼率調(diào)整值達到所述預(yù)定調(diào)整閾值時,按照預(yù)定方向和預(yù)定力度調(diào)整所述實時碼率。
在該技術(shù)方案中,計算得到碼率調(diào)整值可以直接將其疊加至實時碼率進行碼率調(diào)整,也可以在碼率調(diào)整值積累達到預(yù)定調(diào)整閾值再進行疊加,避免因多次進行較小的碼率調(diào)整值調(diào)整而帶來的能耗和內(nèi)存占用。其中,早對實時碼率進行調(diào)整時,可以按照預(yù)定方向和預(yù)定力度調(diào)整,預(yù)定方向包括增大或減小,預(yù)定力度相當(dāng)于對實時碼率進行調(diào)整的速度,比如,計算得到達到預(yù)定調(diào)整閾值的碼率調(diào)整值后,按照每秒疊加碼率調(diào)整值的10%的速度,分10s完成碼率調(diào)整,從而可以避免因調(diào)整過快而造成的視頻直播不流暢的缺陷。
其中,為了避免頻繁的小幅度的調(diào)整,還可以對輸入到pid公式中的e(t)進行量化,量化的公式可以表示為:
其中step是量化的步長,為一個固定的正整數(shù),通過量化可以消除正常小幅度網(wǎng)絡(luò)波動帶來的不必要的碼率調(diào)整。
本發(fā)明的另一方面提出了一種基于pid控制的視頻直播傳輸控制系統(tǒng),包括:檢測單元,按照預(yù)定檢測周期檢測系統(tǒng)的實時碼率和視頻發(fā)送緩沖區(qū)的實時長度,其中,所述視頻發(fā)送緩沖區(qū)的實時長度為緩沖的視頻幀的數(shù)量;差值計算單元,計算所述視頻發(fā)送緩沖區(qū)的實時長度與長度目標值的差值;pid計算單元,將所述差值帶入pid控制公式,以計算得到當(dāng)前時刻所需的碼率調(diào)整值;碼率調(diào)整單元,根據(jù)所述碼率調(diào)整值,調(diào)整所述實時碼率。
在該技術(shù)方案中,系統(tǒng)在進行視頻直播時,可以根據(jù)視頻發(fā)送緩沖區(qū)的實時長度,利用pid(proportion-integration-differentiation,比例-積分-微分)控制理論實時調(diào)整視頻的發(fā)送端提供的視頻流的碼率,即對實時碼率進行修正,從而可以將視頻發(fā)送緩沖區(qū)的數(shù)據(jù)量維持在理想的狀態(tài),實現(xiàn)了視頻質(zhì)量根據(jù)網(wǎng)絡(luò)狀況的自適應(yīng),在提升視頻直播的流暢程度,盡可能地充分利用網(wǎng)絡(luò)帶寬以達到較高視頻質(zhì)量。
其中,pid是一種閉環(huán)的反饋控制機制,在pid控制系統(tǒng)中,可根據(jù)系統(tǒng)當(dāng)前狀態(tài)與期望狀態(tài)的誤差來計算一個控制量,并利用該控制量對輸入進行調(diào)整,從而使系統(tǒng)狀態(tài)趨向于期望狀態(tài)。也就是說,可以根據(jù)當(dāng)前的視頻發(fā)送緩沖區(qū)的實時長度與長度目標值的差值,也就是誤差,來計算當(dāng)前時刻所需的碼率調(diào)整值,使實時碼率趨向于期望值。
在上述技術(shù)方案中,優(yōu)選地,還包括:第一設(shè)置單元,在所述按照預(yù)定檢測周期檢測系統(tǒng)的實時碼率和視頻發(fā)送緩沖區(qū)的實時長度之前,根據(jù)接收到的第一設(shè)置命令,設(shè)置所述視頻發(fā)送緩沖區(qū)的所述長度目標值。
在該技術(shù)方案中,視頻發(fā)送緩沖區(qū)的長度目標值可以由用戶手動調(diào)整設(shè)置,或者也可以設(shè)置多個目標值檔位供用戶選擇,另外,還可以由系統(tǒng)根據(jù)實時碼率,自動設(shè)置與網(wǎng)絡(luò)狀況相適宜的長度目標值。
在上述任一技術(shù)方案中,優(yōu)選地,所述pid控制公式為:
其中,u(t)表示t時刻所需的碼率調(diào)整值,kp、ki、kd分別為比例系數(shù)、積分系數(shù)、微分系數(shù),e(t)表示t時刻時所述視頻發(fā)送緩沖區(qū)的實時長度與長度目標值的差值,
在該技術(shù)方案中,為了降低短時間內(nèi)快速變化的網(wǎng)絡(luò)狀況對視頻數(shù)據(jù)傳輸帶來的影響,提高播放流暢度,系統(tǒng)設(shè)置有視頻發(fā)送緩沖區(qū)、播放緩沖區(qū)。在發(fā)送端和接收端之間,是用tcp協(xié)議進行連接的,而tcp協(xié)議在發(fā)送端維護一個tcp發(fā)送緩沖區(qū),在接收端維護一個tcp接收緩沖區(qū)。因此,可以將整個視頻直播傳輸?shù)南到y(tǒng)抽象成4個緩沖區(qū):視頻發(fā)送緩沖區(qū)、tcp發(fā)送緩沖區(qū)、tcp接收緩沖區(qū)、播放緩沖區(qū)。在視頻流暢播放的時候,單位時間內(nèi)進入視頻發(fā)送緩沖區(qū)的視頻幀數(shù)量和從播放緩沖區(qū)出去的視頻幀數(shù)量是相等的,所以4個緩沖區(qū)總的視頻幀數(shù)量是一個固定的值。由于tcp發(fā)送緩沖區(qū)、tcp接收緩沖區(qū)的大小很小,所以可以看成視頻發(fā)送緩沖區(qū)、播放緩沖區(qū)中視頻幀之和是一個定值,而視頻發(fā)送緩沖區(qū)存在大量幀的時候,將導(dǎo)致播放緩沖區(qū)沒有視頻幀或存在較少的視頻幀,具有很大可能性導(dǎo)致視頻播放中斷,故可以通過控制視頻發(fā)送緩沖區(qū)的視頻幀的數(shù)量來控制播放緩沖區(qū)中視頻幀的數(shù)量,因此,本發(fā)明定義的系統(tǒng)狀態(tài)變量是視頻發(fā)送緩沖區(qū)中的視頻幀的數(shù)量。
由此可知,e(t)表示t時刻時所述視頻發(fā)送緩沖區(qū)的實時長度與長度目標值的差值,即狀態(tài)變量的變化量,輸出的u(t)代表碼率調(diào)整的大小,將會被疊加到當(dāng)前設(shè)置的實時碼率上,作為下一個時刻應(yīng)該設(shè)置的碼率大小,假設(shè)當(dāng)前的碼率為br,那么下一個時刻的碼率就是br+u(t)。
通過該技術(shù)方案,不斷地監(jiān)測狀態(tài)變量的變化,將其與目標值進行比較,通過誤差量來對實際帶寬變化情況進行記錄和預(yù)測,計算控制輸出。然后根據(jù)控制輸出有針對性地調(diào)整視頻質(zhì)量,使?fàn)顟B(tài)變量盡可能接近目標值,從而實現(xiàn)符合帶寬變化的穩(wěn)定視頻傳輸。
在上述任一技術(shù)方案中,優(yōu)選地,還包括:第二設(shè)置單元,在所述按 照預(yù)定檢測周期檢測系統(tǒng)的實時碼率和視頻發(fā)送緩沖區(qū)的實時長度之前,根據(jù)接收到的第二設(shè)置命令,設(shè)置所述預(yù)定檢測周期。
在該技術(shù)方案中,是對系統(tǒng)的實時碼率和視頻發(fā)送緩沖區(qū)的實時長度進行周期性檢測,也就是說,每經(jīng)過預(yù)定檢測周期進行一次檢測,這里所述的預(yù)定檢測周期可以由用戶手動調(diào)整設(shè)置,或者也可以設(shè)置多個周期檔位供用戶選擇,另外,還可以由系統(tǒng)根據(jù)實時碼率,自動設(shè)置與網(wǎng)絡(luò)狀況相適宜的預(yù)定檢測周期。比如,當(dāng)網(wǎng)速高于標準值時,采用5s的檢測周期,這樣,在網(wǎng)速快的情況下可以盡可能減少周期性檢測帶來的功耗及內(nèi)存占用,而當(dāng)網(wǎng)速低于或等于標準值時,采用3s的檢測周期,以避免因網(wǎng)速過慢而無法及時調(diào)整碼率,避免直播不流暢。
在上述任一技術(shù)方案中,優(yōu)選地,所述碼率調(diào)整單元具體用于:檢測所述碼率調(diào)整值是否達到預(yù)定調(diào)整閾值,其中,當(dāng)確定所述碼率調(diào)整值達到所述預(yù)定調(diào)整閾值時,按照預(yù)定方向和預(yù)定力度調(diào)整所述實時碼率。
在該技術(shù)方案中,計算得到碼率調(diào)整值可以直接將其疊加至實時碼率進行碼率調(diào)整,也可以在碼率調(diào)整值積累達到預(yù)定調(diào)整閾值再進行疊加,避免因多次進行較小的碼率調(diào)整值調(diào)整而帶來的能耗和內(nèi)存占用。其中,早對實時碼率進行調(diào)整時,可以按照預(yù)定方向和預(yù)定力度調(diào)整,預(yù)定方向包括增大或減小,預(yù)定力度相當(dāng)于對實時碼率進行調(diào)整的速度,比如,計算得到達到預(yù)定調(diào)整閾值的碼率調(diào)整值后,按照每秒疊加碼率調(diào)整值的10%的速度,分10s完成碼率調(diào)整,從而可以避免因調(diào)整過快而造成的視頻直播不流暢的缺陷。
其中,為了避免頻繁的小幅度的調(diào)整,還可以對輸入到pid公式中的e(t)進行量化,量化的公式可以表示為:
其中step是量化的步長,為一個固定的正整數(shù),通過量化可以消除正常小幅度網(wǎng)絡(luò)波動帶來的不必要的碼率調(diào)整。
通過以上技術(shù)方案,可以對實時碼率進行修正,將視頻發(fā)送緩沖區(qū)的數(shù)據(jù)量維持在理想的狀態(tài),實現(xiàn)了視頻質(zhì)量根據(jù)網(wǎng)絡(luò)狀況的自適應(yīng),在提升視頻直播的流暢程度,盡可能地充分利用網(wǎng)絡(luò)帶寬以達到較高視頻質(zhì)量。
附圖說明
圖1示出了根據(jù)本發(fā)明的一個實施例的基于pid控制的視頻直播傳輸控制方法的流程示意圖;
圖2示出了根據(jù)本發(fā)明的一個實施例的基于pid控制的視頻直播傳輸控制系統(tǒng)的框圖;
圖3示出了根據(jù)本發(fā)明的一個實施例的緩沖區(qū)示意圖;
圖4示出了根據(jù)本發(fā)明的一個實施例的緩沖區(qū)狀態(tài)變量示意圖;
圖5示出了根據(jù)本發(fā)明的另一個實施例的基于pid控制的視頻直播傳輸控制系統(tǒng)的框圖。
具體實施方式
為了能夠更清楚地理解本發(fā)明的上述目的、特征和優(yōu)點,下面結(jié)合附圖和具體實施方式對本發(fā)明進行進一步的詳細描述。需要說明的是,在不沖突的情況下,本申請的實施例及實施例中的特征可以相互組合。
在下面的描述中闡述了很多具體細節(jié)以便于充分理解本發(fā)明,但是,本發(fā)明還可以采用其他不同于在此描述的其他方式來實施,因此,本發(fā)明的保護范圍并不受下面公開的具體實施例的限制。
圖1示出了根據(jù)本發(fā)明的一個實施例的基于pid控制的視頻直播傳輸控制方法的流程示意圖。
如圖1所示,根據(jù)本發(fā)明的一個實施例的基于pid控制的視頻直播傳輸控制方法,包括:
步驟102,按照預(yù)定檢測周期檢測系統(tǒng)的實時碼率和視頻發(fā)送緩沖區(qū)的實時長度,其中,所述視頻發(fā)送緩沖區(qū)的實時長度為緩沖的視頻幀的數(shù)量;
步驟104,計算所述視頻發(fā)送緩沖區(qū)的實時長度與長度目標值的差值;
步驟106,將所述差值帶入pid控制公式,以計算得到當(dāng)前時刻所需的碼率調(diào)整值;
步驟108,根據(jù)所述碼率調(diào)整值,調(diào)整所述實時碼率。
在該技術(shù)方案中,系統(tǒng)在進行視頻直播時,可以根據(jù)視頻發(fā)送緩沖區(qū) 的實時長度,利用pid(proportion-integration-differentiation,比例-積分-微分)控制理論實時調(diào)整視頻的發(fā)送端提供的視頻流的碼率,即對實時碼率進行修正,從而可以將視頻發(fā)送緩沖區(qū)的數(shù)據(jù)量維持在理想的狀態(tài),實現(xiàn)了視頻質(zhì)量根據(jù)網(wǎng)絡(luò)狀況的自適應(yīng),在提升視頻直播的流暢程度,盡可能地充分利用網(wǎng)絡(luò)帶寬以達到較高視頻質(zhì)量。
其中,pid是一種閉環(huán)的反饋控制機制,在pid控制系統(tǒng)中,可根據(jù)系統(tǒng)當(dāng)前狀態(tài)與期望狀態(tài)的誤差來計算一個控制量,并利用該控制量對輸入進行調(diào)整,從而使系統(tǒng)狀態(tài)趨向于期望狀態(tài)。也就是說,可以根據(jù)當(dāng)前的視頻發(fā)送緩沖區(qū)的實時長度與長度目標值的差值,也就是誤差,來計算當(dāng)前時刻所需的碼率調(diào)整值,使實時碼率趨向于期望值。
在上述技術(shù)方案中,優(yōu)選地,在步驟102之前,還包括:根據(jù)接收到的第一設(shè)置命令,設(shè)置所述視頻發(fā)送緩沖區(qū)的所述長度目標值。
在該技術(shù)方案中,視頻發(fā)送緩沖區(qū)的長度目標值可以由用戶手動調(diào)整設(shè)置,或者也可以設(shè)置多個目標值檔位供用戶選擇,另外,還可以由系統(tǒng)根據(jù)實時碼率,自動設(shè)置與網(wǎng)絡(luò)狀況相適宜的長度目標值。
在上述任一技術(shù)方案中,優(yōu)選地,所述pid控制公式為:
其中,u(t)表示t時刻所需的碼率調(diào)整值,kp、ki、kd分別為比例系數(shù)、積分系數(shù)、微分系數(shù),e(t)表示t時刻時所述視頻發(fā)送緩沖區(qū)的實時長度與長度目標值的差值,
在該技術(shù)方案中,為了降低短時間內(nèi)快速變化的網(wǎng)絡(luò)狀況對視頻數(shù)據(jù)傳輸帶來的影響,提高播放流暢度,系統(tǒng)設(shè)置有視頻發(fā)送緩沖區(qū)、播放緩沖區(qū)。在發(fā)送端和接收端之間,是用tcp協(xié)議進行連接的,而tcp協(xié)議在發(fā)送端維護一個tcp發(fā)送緩沖區(qū),在接收端維護一個tcp接收緩沖區(qū)。因此,可以將整個視頻直播傳輸?shù)南到y(tǒng)抽象成4個緩沖區(qū):視頻發(fā)送緩沖區(qū)、tcp發(fā)送緩沖區(qū)、tcp接收緩沖區(qū)、播放緩沖區(qū)。在視頻流暢播放的時候,單位時間內(nèi)進入視頻發(fā)送緩沖區(qū)的視頻幀數(shù)量和從播放緩沖區(qū)出去 的視頻幀數(shù)量是相等的,所以4個緩沖區(qū)總的視頻幀數(shù)量是一個固定的值。由于tcp發(fā)送緩沖區(qū)、tcp接收緩沖區(qū)的大小很小,所以可以看成視頻發(fā)送緩沖區(qū)、播放緩沖區(qū)中視頻幀之和是一個定值,而視頻發(fā)送緩沖區(qū)存在大量幀的時候,將導(dǎo)致播放緩沖區(qū)沒有視頻幀或存在較少的視頻幀,具有很大可能性導(dǎo)致視頻播放中斷,故可以通過控制視頻發(fā)送緩沖區(qū)的視頻幀的數(shù)量來控制播放緩沖區(qū)中視頻幀的數(shù)量,因此,本發(fā)明定義的系統(tǒng)狀態(tài)變量是視頻發(fā)送緩沖區(qū)中的視頻幀的數(shù)量。
由此可知,e(t)表示t時刻時所述視頻發(fā)送緩沖區(qū)的實時長度與長度目標值的差值,即狀態(tài)變量的變化量,輸出的u(t)代表碼率調(diào)整的大小,將會被疊加到當(dāng)前設(shè)置的實時碼率上,作為下一個時刻應(yīng)該設(shè)置的碼率大小,假設(shè)當(dāng)前的碼率為br,那么下一個時刻的碼率就是br+u(t)。
通過該技術(shù)方案,不斷地監(jiān)測狀態(tài)變量的變化,將其與目標值進行比較,通過誤差量來對實際帶寬變化情況進行記錄和預(yù)測,計算控制輸出。然后根據(jù)控制輸出有針對性地調(diào)整視頻質(zhì)量,使?fàn)顟B(tài)變量盡可能接近目標值,從而實現(xiàn)符合帶寬變化的穩(wěn)定視頻傳輸。
在上述任一技術(shù)方案中,優(yōu)選地,在步驟102之前,還包括:根據(jù)接收到的第二設(shè)置命令,設(shè)置所述預(yù)定檢測周期。
在該技術(shù)方案中,是對系統(tǒng)的實時碼率和視頻發(fā)送緩沖區(qū)的實時長度進行周期性檢測,也就是說,每經(jīng)過預(yù)定檢測周期進行一次檢測,這里所述的預(yù)定檢測周期可以由用戶手動調(diào)整設(shè)置,或者也可以設(shè)置多個周期檔位供用戶選擇,另外,還可以由系統(tǒng)根據(jù)實時碼率,自動設(shè)置與網(wǎng)絡(luò)狀況相適宜的預(yù)定檢測周期。比如,當(dāng)網(wǎng)速高于標準值時,采用5s的檢測周期,這樣,在網(wǎng)速快的情況下可以盡可能減少周期性檢測帶來的功耗及內(nèi)存占用,而當(dāng)網(wǎng)速低于或等于標準值時,采用3s的檢測周期,以避免因網(wǎng)速過慢而無法及時調(diào)整碼率,避免直播不流暢。
在上述任一技術(shù)方案中,優(yōu)選地,步驟108具體包括:檢測所述碼率調(diào)整值是否達到預(yù)定調(diào)整閾值;當(dāng)確定所述碼率調(diào)整值達到所述預(yù)定調(diào)整閾值時,按照預(yù)定方向和預(yù)定力度調(diào)整所述實時碼率。
在該技術(shù)方案中,計算得到碼率調(diào)整值可以直接將其疊加至實時碼率 進行碼率調(diào)整,也可以在碼率調(diào)整值積累達到預(yù)定調(diào)整閾值再進行疊加,避免因多次進行較小的碼率調(diào)整值調(diào)整而帶來的能耗和內(nèi)存占用。其中,早對實時碼率進行調(diào)整時,可以按照預(yù)定方向和預(yù)定力度調(diào)整,預(yù)定方向包括增大或減小,預(yù)定力度相當(dāng)于對實時碼率進行調(diào)整的速度,比如,計算得到達到預(yù)定調(diào)整閾值的碼率調(diào)整值后,按照每秒疊加碼率調(diào)整值的10%的速度,分10s完成碼率調(diào)整,從而可以避免因調(diào)整過快而造成的視頻直播不流暢的缺陷。
其中,為了避免頻繁的小幅度的調(diào)整,還可以對輸入到pid公式中的e(t)進行量化,量化的公式可以表示為:
其中step是量化的步長,為一個固定的正整數(shù),通過量化可以消除正常小幅度網(wǎng)絡(luò)波動帶來的不必要的碼率調(diào)整。
圖2示出了根據(jù)本發(fā)明的一個實施例的基于pid控制的視頻直播傳輸控制系統(tǒng)的框圖。
如圖2所示,根據(jù)本發(fā)明的一個實施例的基于pid控制的視頻直播傳輸控制系統(tǒng)200,包括:檢測單元202、差值計算單元204、pid計算單元206和碼率調(diào)整單元208。
檢測單元202用于按照預(yù)定檢測周期檢測系統(tǒng)的實時碼率和視頻發(fā)送緩沖區(qū)的實時長度,其中,所述視頻發(fā)送緩沖區(qū)的實時長度為緩沖的視頻幀的數(shù)量;差值計算單元204用于計算所述視頻發(fā)送緩沖區(qū)的實時長度與長度目標值的差值;pid計算單元206用于將所述差值帶入pid控制公式,以計算得到當(dāng)前時刻所需的碼率調(diào)整值;碼率調(diào)整單元208用于根據(jù)所述碼率調(diào)整值,調(diào)整所述實時碼率。
在該技術(shù)方案中,系統(tǒng)在進行視頻直播時,可以根據(jù)視頻發(fā)送緩沖區(qū)的實時長度,利用pid(proportion-integration-differentiation,比例-積分-微分)控制理論實時調(diào)整視頻的發(fā)送端提供的視頻流的碼率,即對實時碼率進行修正,從而可以將視頻發(fā)送緩沖區(qū)的數(shù)據(jù)量維持在理想的狀態(tài),實現(xiàn)了視頻質(zhì)量根據(jù)網(wǎng)絡(luò)狀況的自適應(yīng),在提升視頻直播的流暢程度,盡可能地充分利用網(wǎng)絡(luò)帶寬以達到較高視頻質(zhì)量。
其中,pid是一種閉環(huán)的反饋控制機制,在pid控制系統(tǒng)中,可根據(jù)系統(tǒng)當(dāng)前狀態(tài)與期望狀態(tài)的誤差來計算一個控制量,并利用該控制量對輸入進行調(diào)整,從而使系統(tǒng)狀態(tài)趨向于期望狀態(tài)。也就是說,可以根據(jù)當(dāng)前的視頻發(fā)送緩沖區(qū)的實時長度與長度目標值的差值,也就是誤差,來計算當(dāng)前時刻所需的碼率調(diào)整值,使實時碼率趨向于期望值。
在上述技術(shù)方案中,優(yōu)選地,還包括:第一設(shè)置單元210,在所述按照預(yù)定檢測周期檢測系統(tǒng)的實時碼率和視頻發(fā)送緩沖區(qū)的實時長度之前,根據(jù)接收到的第一設(shè)置命令,設(shè)置所述視頻發(fā)送緩沖區(qū)的所述長度目標值。
在該技術(shù)方案中,視頻發(fā)送緩沖區(qū)的長度目標值可以由用戶手動調(diào)整設(shè)置,或者也可以設(shè)置多個目標值檔位供用戶選擇,另外,還可以由系統(tǒng)根據(jù)實時碼率,自動設(shè)置與網(wǎng)絡(luò)狀況相適宜的長度目標值。
在上述任一技術(shù)方案中,優(yōu)選地,所述pid控制公式為:
其中,u(t)表示t時刻所需的碼率調(diào)整值,kp、ki、kd分別為比例系數(shù)、積分系數(shù)、微分系數(shù),e(t)表示t時刻時所述視頻發(fā)送緩沖區(qū)的實時長度與長度目標值的差值,
在該技術(shù)方案中,為了降低短時間內(nèi)快速變化的網(wǎng)絡(luò)狀況對視頻數(shù)據(jù)傳輸帶來的影響,提高播放流暢度,系統(tǒng)設(shè)置有視頻發(fā)送緩沖區(qū)、播放緩沖區(qū)。在發(fā)送端和接收端之間,是用tcp協(xié)議進行連接的,而tcp協(xié)議在發(fā)送端維護一個tcp發(fā)送緩沖區(qū),在接收端維護一個tcp接收緩沖區(qū)。因此,可以將整個視頻直播傳輸?shù)南到y(tǒng)抽象成4個緩沖區(qū):視頻發(fā)送緩沖區(qū)、tcp發(fā)送緩沖區(qū)、tcp接收緩沖區(qū)、播放緩沖區(qū)。在視頻流暢播放的時候,單位時間內(nèi)進入視頻發(fā)送緩沖區(qū)的視頻幀數(shù)量和從播放緩沖區(qū)出去的視頻幀數(shù)量是相等的,所以4個緩沖區(qū)總的視頻幀數(shù)量是一個固定的值。由于tcp發(fā)送緩沖區(qū)、tcp接收緩沖區(qū)的大小很小,所以可以看成視頻發(fā)送緩沖區(qū)、播放緩沖區(qū)中視頻幀之和是一個定值,而視頻發(fā)送緩沖區(qū)存在大量幀的時候,將導(dǎo)致播放緩沖區(qū)沒有視頻幀或存在較少的視頻幀,具 有很大可能性導(dǎo)致視頻播放中斷,故可以通過控制視頻發(fā)送緩沖區(qū)的視頻幀的數(shù)量來控制播放緩沖區(qū)中視頻幀的數(shù)量,因此,本發(fā)明定義的系統(tǒng)狀態(tài)變量是視頻發(fā)送緩沖區(qū)中的視頻幀的數(shù)量。
由此可知,e(t)表示t時刻時所述視頻發(fā)送緩沖區(qū)的實時長度與長度目標值的差值,即狀態(tài)變量的變化量,輸出的u(t)代表碼率調(diào)整的大小,將會被疊加到當(dāng)前設(shè)置的實時碼率上,作為下一個時刻應(yīng)該設(shè)置的碼率大小,假設(shè)當(dāng)前的碼率為br,那么下一個時刻的碼率就是br+u(t)。
通過該技術(shù)方案,不斷地監(jiān)測狀態(tài)變量的變化,將其與目標值進行比較,通過誤差量來對實際帶寬變化情況進行記錄和預(yù)測,計算控制輸出。然后根據(jù)控制輸出有針對性地調(diào)整視頻質(zhì)量,使?fàn)顟B(tài)變量盡可能接近目標值,從而實現(xiàn)符合帶寬變化的穩(wěn)定視頻傳輸。
在上述任一技術(shù)方案中,優(yōu)選地,還包括:第二設(shè)置單元212,在所述按照預(yù)定檢測周期檢測系統(tǒng)的實時碼率和視頻發(fā)送緩沖區(qū)的實時長度之前,根據(jù)接收到的第二設(shè)置命令,設(shè)置所述預(yù)定檢測周期。
在該技術(shù)方案中,是對系統(tǒng)的實時碼率和視頻發(fā)送緩沖區(qū)的實時長度進行周期性檢測,也就是說,每經(jīng)過預(yù)定檢測周期進行一次檢測,這里所述的預(yù)定檢測周期可以由用戶手動調(diào)整設(shè)置,或者也可以設(shè)置多個周期檔位供用戶選擇,另外,還可以由系統(tǒng)根據(jù)實時碼率,自動設(shè)置與網(wǎng)絡(luò)狀況相適宜的預(yù)定檢測周期。比如,當(dāng)網(wǎng)速高于標準值時,采用5s的檢測周期,這樣,在網(wǎng)速快的情況下可以盡可能減少周期性檢測帶來的功耗及內(nèi)存占用,而當(dāng)網(wǎng)速低于或等于標準值時,采用3s的檢測周期,以避免因網(wǎng)速過慢而無法及時調(diào)整碼率,避免直播不流暢。
在上述任一技術(shù)方案中,優(yōu)選地,碼率調(diào)整單元208具體用于:檢測所述碼率調(diào)整值是否達到預(yù)定調(diào)整閾值,其中,當(dāng)確定所述碼率調(diào)整值達到所述預(yù)定調(diào)整閾值時,按照預(yù)定方向和預(yù)定力度調(diào)整所述實時碼率。
在該技術(shù)方案中,計算得到碼率調(diào)整值可以直接將其疊加至實時碼率進行碼率調(diào)整,也可以在碼率調(diào)整值積累達到預(yù)定調(diào)整閾值再進行疊加,避免因多次進行較小的碼率調(diào)整值調(diào)整而帶來的能耗和內(nèi)存占用。其中,早對實時碼率進行調(diào)整時,可以按照預(yù)定方向和預(yù)定力度調(diào)整,預(yù)定方向 包括增大或減小,預(yù)定力度相當(dāng)于對實時碼率進行調(diào)整的速度,比如,計算得到達到預(yù)定調(diào)整閾值的碼率調(diào)整值后,按照每秒疊加碼率調(diào)整值的10%的速度,分10s完成碼率調(diào)整,從而可以避免因調(diào)整過快而造成的視頻直播不流暢的缺陷。
其中,為了避免頻繁的小幅度的調(diào)整,還可以對輸入到pid公式中的e(t)進行量化,量化的公式可以表示為:
其中step是量化的步長,為一個固定的正整數(shù),通過量化可以消除正常小幅度網(wǎng)絡(luò)波動帶來的不必要的碼率調(diào)整。
圖3示出了根據(jù)本發(fā)明的一個實施例的緩沖區(qū)示意圖。
為了降低短時間內(nèi)快速變化的網(wǎng)絡(luò)狀況對視頻數(shù)據(jù)傳輸帶來的影響,提高播放流暢度,系統(tǒng)設(shè)置有視頻發(fā)送緩沖區(qū)、播放緩沖區(qū)。在發(fā)送端和接收端之間,是用tcp協(xié)議進行連接的,而tcp協(xié)議在發(fā)送端維護一個tcp發(fā)送緩沖區(qū),在接收端維護一個tcp接收緩沖區(qū)。因此,如圖3所示,可以將整個視頻直播傳輸?shù)南到y(tǒng)抽象成4個緩沖區(qū):視頻發(fā)送緩沖區(qū)、tcp發(fā)送緩沖區(qū)、tcp接收緩沖區(qū)、播放緩沖區(qū)。在視頻流暢播放的時候,單位時間內(nèi)進入視頻發(fā)送緩沖區(qū)的視頻幀數(shù)量和從播放緩沖區(qū)出去的視頻幀數(shù)量是相等的,所以4個緩沖區(qū)總的視頻幀數(shù)量是一個固定的值。由于tcp發(fā)送緩沖區(qū)、tcp接收緩沖區(qū)的大小很小,所以可以看成視頻發(fā)送緩沖區(qū)、播放緩沖區(qū)中視頻幀之和是一個定值。
所以,可以通過控制視頻發(fā)送緩沖區(qū)的視頻幀的數(shù)量來控制播放緩沖區(qū)中視頻幀的數(shù)量。根據(jù)tcp協(xié)議的特點,當(dāng)視頻發(fā)送緩沖區(qū)存在一定量的視頻幀的時候,tcp發(fā)送緩沖區(qū)是充滿的,在這種情況下達到了最大的發(fā)送速度。視頻發(fā)送緩沖區(qū)存在大量幀的時候,將導(dǎo)致播放緩沖區(qū)沒有視頻幀或存在較少的視頻幀,具有很大可能性導(dǎo)致視頻播放中斷。
因此,本發(fā)明定義的系統(tǒng)狀態(tài)變量是視頻發(fā)送緩沖區(qū)中的視頻幀的數(shù)量。通過該技術(shù)方案,不斷地監(jiān)測狀態(tài)變量的變化,將其與目標值進行比較,通過誤差量來對實際帶寬變化情況進行記錄和預(yù)測,計算控制輸出。然后根據(jù)控制輸出有針對性地調(diào)整視頻質(zhì)量,使?fàn)顟B(tài)變量盡可能接近目標 值,從而實現(xiàn)符合帶寬變化的穩(wěn)定視頻傳輸。
在本發(fā)明中,對系統(tǒng)的狀態(tài)變量進行控制主要有兩個目標,一個是盡可能充分利用網(wǎng)絡(luò)帶寬,一個是保證接收端能夠流暢播放。
一方面,將緩沖區(qū)的長度記為緩沖的視頻幀的數(shù)量,將播放緩沖區(qū)的最大長度記為s0,初始情況下,當(dāng)播放緩沖區(qū)達到了最大長度s0時,接收端才開始播放視頻。在播放過程中,如果播放緩沖區(qū)的長度減少為0,那么接收端需要等到播放緩沖區(qū)達到最大長度的時候才重新開始播放視頻。因此,當(dāng)播放緩沖區(qū)的長度減少為0時,會導(dǎo)致播放的中斷。
故在對系統(tǒng)進行控制的過程中,首先需要保證播放緩沖區(qū)的長度大于0。在連續(xù)播放的情況下,視頻發(fā)送緩沖區(qū)、播放緩沖區(qū)中視頻幀之和是一個定值,約等于s0,因此,可以通過控制視頻發(fā)送緩沖區(qū)的長度小于s0來保證播放緩沖區(qū)的長度大于0,即可保證接收端能夠流暢播放。
另一方面,為了盡可能充分利用帶寬提高視頻質(zhì)量,需要保證tcp發(fā)送緩沖區(qū)盡可能充滿。這一點可以通過控制視頻發(fā)送緩沖區(qū)的長度大于0來實現(xiàn),在這種情況下tcp發(fā)送緩沖區(qū)始終處于充滿狀態(tài)。因此,直接控制的目標就是控制視頻發(fā)送緩沖區(qū)的長度為s1,其中s1大于0且小于s0。
為此,本發(fā)明首先定義系統(tǒng)的狀態(tài)變量是視頻發(fā)送緩沖區(qū)的長度s,這個變量可以反映當(dāng)前的視頻碼率和網(wǎng)絡(luò)吞吐量直接的關(guān)系,s(t)表示時刻t視頻發(fā)送緩沖區(qū)的長度。當(dāng)碼率大于網(wǎng)絡(luò)吞吐量,s(t)呈增長的趨勢;當(dāng)碼率小于網(wǎng)絡(luò)吞吐量,s(t)呈減小為0的趨勢;當(dāng)碼率接近于網(wǎng)絡(luò)吞吐量時,s(t)保持相對穩(wěn)定。比如,可以設(shè)置s的目標值是0.2s0,記為sr,其中,s0是播放緩沖區(qū)的最大長度,記錄s與目標值地偏差為e,在時刻t,狀態(tài)變量與目標值的誤差記為e(t);若當(dāng)前s(t)大于sr,則e(t)為負值,反之,e(t)為正值。
如圖4所示,當(dāng)前視頻發(fā)送緩沖區(qū)中幀數(shù)量是s(t),目標值是st,因此e(t)=sr-s(t)。將e(t)代入pid公式可以得到對碼率調(diào)整的反饋信息,故根據(jù)pid控制模型,系統(tǒng)的控制器的輸出為:
其中,u(t)表示t時刻所需的碼率調(diào)整值,kp、ki、kd分別為比例系數(shù)、積分系數(shù)、微分系數(shù),
這一個輸出的u(t)代表碼率調(diào)整的大小,將會被作為下一個時刻應(yīng)該設(shè)置的碼率大小,疊加到當(dāng)前設(shè)置的視頻碼率上,如果當(dāng)前的碼率為br,那么下一個時刻的碼率就是br+u(t)。
在具體應(yīng)用中,本發(fā)明按照一定的周期t進行上述的系統(tǒng)狀態(tài)檢查和碼率調(diào)整,系統(tǒng)使用的狀態(tài)變量s(t)可以取為在上一個周期t內(nèi)的視頻發(fā)送緩沖區(qū)中平均幀數(shù)量,從而增加了視頻直播的穩(wěn)定性。為了避免頻繁的小幅度的調(diào)整,本發(fā)明還可以對輸入到pid公式中的e(t)進行量化,量化的公式可以表示為:
其中step是量化的步長,為一個固定的正整數(shù),通過量化可以消除正常小幅度網(wǎng)絡(luò)波動帶來的不必要的碼率調(diào)整。
圖5示出了根據(jù)本發(fā)明的另一個實施例的基于pid控制的視頻直播傳輸控制系統(tǒng)的框圖。
如圖5所示,根據(jù)本發(fā)明的另一個實施例的基于pid控制的視頻直播傳輸控制系統(tǒng)500,包括:緩沖區(qū)信息獲取模塊502、pid碼率計算模塊504和視頻碼率調(diào)整模塊506,緩沖區(qū)信息獲取模塊502結(jié)合實際網(wǎng)絡(luò)環(huán)境,獲取系統(tǒng)的實時碼率和視頻發(fā)送緩沖區(qū)的實時長度,并通過pid碼率計算模塊504計算碼率調(diào)整值,最后,視頻碼率調(diào)整模塊506根據(jù)碼率調(diào)整值對實時碼率進行調(diào)整。
其中,基于pid控制的視頻直播傳輸控制系統(tǒng)500不僅能夠用于rtmp協(xié)議,還可以擴展到其他基于tcp的應(yīng)用層流媒體傳輸協(xié)議,如http協(xié)議(hypertexttransferprotocol,超文本傳輸協(xié)議)、rtsp協(xié)議(realtimestreamingprotocol,實時流傳輸協(xié)議)等,具有通用性。
具體地,可以通過檢測到的誤差變量進行碼率調(diào)整。在每個檢測時間點,獲取狀態(tài)變量的值,也就是視頻發(fā)送緩沖區(qū)的實時長度,然后與長度 目標值進行比較,得出誤差變量。
對誤差變量計算如下三部分的值:
比例部分,這一部分就是誤差量本身,作為對當(dāng)前網(wǎng)絡(luò)帶寬和傳輸狀況匹配度的反饋,以驅(qū)動系統(tǒng)狀態(tài)變量不斷趨近目標,即t時刻時所述視頻發(fā)送緩沖區(qū)的實時長度與長度目標值的差值e(t)與比例系數(shù)乘積。
積分部分,這一部分是系統(tǒng)自上次質(zhì)量調(diào)整之后誤差量的累積,長時間的監(jiān)測數(shù)據(jù)可以反映近段時間內(nèi)帶寬變化的平均情況,目的是以減小頻繁調(diào)整質(zhì)量從而造成波動的可能性。
其中,積分部分=誤差量1+誤差量2+…+誤差量n,1、2、…、n為自上一次質(zhì)量調(diào)整以來的誤差量檢測索引。
微分部分,這一部分是當(dāng)前時刻誤差量與上一檢測時間點誤差量的微分,主要用途是預(yù)測帶寬的變化趨勢,以使?fàn)顟B(tài)變量盡快趨近目標。
其中,微分部分(本次誤差變量-上次誤差變量)/檢測間隔時間。
以上各部分經(jīng)過加權(quán)求和后形成控制輸出。
其中,控制輸出=比例系數(shù)×比例部分+積分系數(shù)×積分部分+微分系數(shù)×微分部分。
其中,三個系數(shù)根據(jù)控制領(lǐng)域的經(jīng)典方法,進行確定,如齊格勒-尼科爾斯方法,也可人工進行調(diào)整。根據(jù)得到的控制輸出和當(dāng)前傳輸?shù)拇a率,可以決定是否進行視頻質(zhì)量調(diào)節(jié),以及調(diào)節(jié)的方向和力度。
因此,通過該技術(shù)方案,可以有效地調(diào)整直播視頻的碼率,保持播放的流程性,同時充分利用帶寬提高視頻質(zhì)量,其關(guān)鍵之處在于利用積分部分來減小頻繁調(diào)整的可能性,并利用微分部分來預(yù)測帶寬變化。
以上結(jié)合附圖詳細說明了本發(fā)明的技術(shù)方案,通過本發(fā)明的技術(shù)方案,可以對實時碼率進行修正,將視頻發(fā)送緩沖區(qū)的數(shù)據(jù)量維持在理想的狀態(tài),實現(xiàn)了視頻質(zhì)量根據(jù)網(wǎng)絡(luò)狀況的自適應(yīng),在提升視頻直播的流暢程度,盡可能地充分利用網(wǎng)絡(luò)帶寬以達到較高視頻質(zhì)量。
以上所述僅為本發(fā)明的優(yōu)選實施例而已,并不用于限制本發(fā)明,對于本領(lǐng)域的技術(shù)人員來說,本發(fā)明可以有各種更改和變化。凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進等,均應(yīng)包含在本發(fā)明的保護范圍之內(nèi)。