本發(fā)明涉及計(jì)算機(jī)軟件的音視頻處理技術(shù)領(lǐng)域,特別涉及一種數(shù)據(jù)推送方法及裝置、一種終端及存儲(chǔ)介質(zhì)。
背景技術(shù):
目前,在直播中,低延遲、高質(zhì)量一直是用戶追求的目標(biāo);為了獲得低延遲,在外部環(huán)境不變的情況下,一般通過(guò)降低推流的數(shù)據(jù)量來(lái)實(shí)現(xiàn),技術(shù)實(shí)現(xiàn)上可選擇壓縮率更高的音視頻算法,這樣音視頻的質(zhì)量就會(huì)降低;為了提供高質(zhì)量,在外部環(huán)境不變的情況下,一般通過(guò)提高音視頻的碼率,這樣就會(huì)導(dǎo)致推流數(shù)據(jù)量升高。
因此可以看出,低延遲和高質(zhì)量相互矛盾,特別是在弱網(wǎng)(帶寬低于300kbit/s)情況下,矛盾會(huì)更加突出,并且在直播的過(guò)程中會(huì)出現(xiàn)畫面花屏、延遲或不流暢等問(wèn)題,直播觀眾端的用戶體驗(yàn)不好。
技術(shù)實(shí)現(xiàn)要素:
有鑒于此,本申請(qǐng)?zhí)峁┮环N降低直播在弱網(wǎng)情況下的延遲、解決直播過(guò)程中畫面不流暢的數(shù)據(jù)推送方法及裝置、一種終端及存儲(chǔ)介質(zhì)。
一方面,本申請(qǐng)?zhí)峁┮环N數(shù)據(jù)推送方法,包括:
按照預(yù)設(shè)時(shí)間間隔采集緩存中的視頻容量;
根據(jù)采集的視頻容量確定對(duì)緩存中的視頻幀的推送策略;
按照確定的推送策略推送緩存中的視頻幀。
可選地,
所述按照預(yù)設(shè)時(shí)間間隔采集緩存中的視頻容量包括:
按照預(yù)設(shè)時(shí)間間隔采集緩存中的視頻容量并記錄;
所述根據(jù)采集的視頻容量確定對(duì)緩存中的視頻幀的推送策略包括:
統(tǒng)計(jì)任意相鄰兩次采集的緩存中的視頻容量之間的差值以及該差值對(duì)應(yīng)的相鄰的采集時(shí)間;
按照形成所述差值的時(shí)間順序,計(jì)算所述差值的變化率;
若所述變化率滿足預(yù)設(shè)條件,則降低視頻傳輸碼率;
所述按照確定的推送策略推送數(shù)據(jù)包括:
按照降低的視頻傳輸碼率推送緩存中的視頻幀。
可選地,
所述根據(jù)采集的視頻容量確定對(duì)緩存中的視頻幀的推送策略包括:
若所述緩存中的視頻容量大于第一閾值,則持續(xù)丟棄接收的視頻幀直到收到關(guān)鍵幀時(shí)結(jié)束。
可選地,
所述預(yù)設(shè)條件包括:
所述變化率大于第二閾值并且所述差值按照形成所述差值的時(shí)間順序連續(xù)增長(zhǎng)。
另一方面,本申請(qǐng)?zhí)峁┮环N數(shù)據(jù)推送裝置,包括:
采集模塊,用于按照預(yù)設(shè)時(shí)間間隔采集緩存中的視頻容量;
處理模塊,用于根據(jù)采集的視頻容量確定對(duì)緩存中的視頻幀的推送策略;
推送模塊,用于按照確定的推送策略推送緩存中的視頻幀。
可選地,
所述采集模塊包括:
記錄模塊,用于按照預(yù)設(shè)時(shí)間間隔采集緩存中的視頻容量并記錄;
所述處理裝置包括:
統(tǒng)計(jì)模塊,用于統(tǒng)計(jì)任意相鄰兩次采集的緩存中的視頻容量之間的差值以及該差值對(duì)應(yīng)的相鄰的采集時(shí)間;
計(jì)算模塊,用于按照形成所述差值的時(shí)間順序,計(jì)算所述差值的變化率;
降碼模塊,用于若所述變化率滿足預(yù)設(shè)條件,則降低視頻傳輸碼率;
所述推送模塊包括:
發(fā)送模塊,用于按照降低的視頻傳輸碼率推送緩存中的視頻幀。
可選地,
所述處理模塊包括:
判斷模塊,用于若所述緩存中的視頻容量大于第一閾值;
丟幀模塊,用于持續(xù)丟棄接收的視頻幀直到收到關(guān)鍵幀時(shí)結(jié)束。
可選地,
所述預(yù)設(shè)條件包括:
所述變化率大于第二閾值并且所述差值按照形成所述差值的時(shí)間順序連續(xù)增長(zhǎng)。
另一方面,本申請(qǐng)?zhí)峁┮环N終端,包括處理器和存儲(chǔ)器,所述存儲(chǔ)器存儲(chǔ)有計(jì)算機(jī)指令,所述處理器調(diào)用所述計(jì)算機(jī)指令并執(zhí)行上述數(shù)據(jù)推送方法。
另一方面,本申請(qǐng)?zhí)峁┮环N存儲(chǔ)介質(zhì),存儲(chǔ)有計(jì)算機(jī)指令,所述計(jì)算機(jī)指令執(zhí)行上述數(shù)據(jù)推送方法。
本發(fā)明申請(qǐng)?zhí)峁┑囊环N數(shù)據(jù)推送方法及裝置、一種終端及存儲(chǔ)介質(zhì),通過(guò)在弱網(wǎng)的情況下實(shí)施視頻推送策略來(lái)減少視頻幀的發(fā)送量解決直播過(guò)程中出現(xiàn)視頻畫面延遲、花屏或播放不流暢等問(wèn)題。
附圖說(shuō)明
圖1為本申請(qǐng)一實(shí)施例提供的一種數(shù)據(jù)推送方法的流程圖;
圖2為本申請(qǐng)一實(shí)施例提供的一種數(shù)據(jù)推送方法的流程圖;
圖3為本申請(qǐng)一實(shí)施例提供的一種數(shù)據(jù)推送方法的流程圖;
圖4為本申請(qǐng)一實(shí)施例提供的一種數(shù)據(jù)推送裝置的結(jié)構(gòu)示意圖;
圖5為本申請(qǐng)一實(shí)施例提供的一種數(shù)據(jù)推送裝置的結(jié)構(gòu)示意圖;
圖6為本申請(qǐng)一實(shí)施例提供的處理模塊的結(jié)構(gòu)示意圖;
圖7為本申請(qǐng)一實(shí)施例提供的一種數(shù)據(jù)推送裝置的結(jié)構(gòu)示意圖。
具體實(shí)施方式
在下面的描述中闡述了很多具體細(xì)節(jié)以便于充分理解本申請(qǐng)。但是本申請(qǐng)能夠以很多不同于在此描述的其它方式來(lái)實(shí)施,本領(lǐng)域技術(shù)人員可以在不違背本申請(qǐng)內(nèi)涵的情況下做類似推廣,因此本申請(qǐng)不受下面公開(kāi)的具體實(shí)施的限制。
在本申請(qǐng)中,提供了一種數(shù)據(jù)推送方法及裝置、一種終端及存儲(chǔ)介質(zhì),在下面的實(shí)施例中逐一進(jìn)行詳細(xì)說(shuō)明。
參見(jiàn)圖1,本申請(qǐng)一實(shí)施例提供一種數(shù)據(jù)推送方法,包括步驟101至步驟103。
步驟101:按照預(yù)設(shè)時(shí)間間隔采集緩存中的視頻容量。
本實(shí)施例中,所述時(shí)間間隔可以根據(jù)當(dāng)前所處的網(wǎng)絡(luò)環(huán)境來(lái)設(shè)置,采集緩存中的視頻容量是采集當(dāng)前緩存中視頻幀的多少。
步驟102:根據(jù)采集的視頻容量確定對(duì)緩存中的視頻幀的推送策略。
本實(shí)施例中,根據(jù)采集的當(dāng)前視頻容量的大小來(lái)選擇適合當(dāng)前緩存中視頻的推送策略。
步驟103:按照確定的推送策略推送緩存中的視頻幀。
本申請(qǐng)實(shí)施例提供的數(shù)據(jù)推送方法,首先根據(jù)預(yù)設(shè)的時(shí)間間隔來(lái)獲取當(dāng)前緩存中視頻容量的大小,根據(jù)獲取到的視頻容量的大小選擇合適的視頻幀推送策略,可以在弱網(wǎng)的情況下根據(jù)獲取到的緩存中的視頻容量及時(shí)調(diào)整視頻幀的推送策略,解決視頻直播過(guò)程中視頻畫面延遲以及播放不流暢的問(wèn)題。
參見(jiàn)圖2,本申請(qǐng)一實(shí)施例提供一種數(shù)據(jù)推送方法,包括步驟201至步驟205。
步驟201:按照預(yù)設(shè)時(shí)間間隔采集緩存中的視頻容量并記錄。
本實(shí)施例中,按照預(yù)設(shè)的時(shí)間間隔采集當(dāng)前緩存中的視頻容量,并且將每次采集到當(dāng)前緩存中的視頻容量記錄下來(lái)。
步驟202:統(tǒng)計(jì)任意相鄰兩次采集的緩存中的視頻容量之間的差值以及該差值對(duì)應(yīng)的相鄰的采集時(shí)間。
本實(shí)施例中,統(tǒng)計(jì)的任意相鄰采集的緩存中的視頻容量之間的差值至少兩次但不限于兩次,可以根據(jù)實(shí)際應(yīng)用來(lái)具體設(shè)定,所述差值為相鄰的采集時(shí)間靠后的緩存中的視頻容量減去采集時(shí)間靠前的緩存中的視頻容量得到,例如采集第一秒和第二秒的緩存中的視頻容量,用第二秒的緩存中的視頻容量減去第一秒的緩存中的視頻容量得到差值。
步驟203:按照形成所述差值的時(shí)間順序,計(jì)算所述差值的變化率。
本實(shí)施例中,所述差值的變化率是根據(jù)形成所述差值的時(shí)間順序來(lái)計(jì)算的。
步驟204:若所述變化率滿足預(yù)設(shè)條件,則降低視頻傳輸碼率。
本實(shí)施例中,所述預(yù)設(shè)條件可以根據(jù)當(dāng)前的網(wǎng)絡(luò)環(huán)境來(lái)具體設(shè)置,所述視頻傳輸碼率包括三個(gè)等級(jí),由高到低分別為第一等級(jí)、第二等級(jí)和第三等級(jí),如果降低到最低視頻傳輸碼率還要下降,則會(huì)忽略,避免視頻傳輸碼率降的太低造成視頻畫面花屏,降低直播中視頻畫面質(zhì)量。
本申請(qǐng)實(shí)施例中以三個(gè)等級(jí)為例進(jìn)行說(shuō)明,實(shí)際應(yīng)用中可以將所述視頻傳輸碼率劃分為其他數(shù)量的等級(jí),本申請(qǐng)對(duì)此不作限定。
步驟205:按照降低的視頻傳輸碼率推送緩存中的視頻幀。
本申請(qǐng)實(shí)施例中,根據(jù)統(tǒng)計(jì)任意相鄰兩次采集的緩存中的視頻容量之間的差值計(jì)算所述差值的變化率,通過(guò)確定所述變化率滿足設(shè)定的預(yù)設(shè)條件,來(lái)主動(dòng)降低視頻傳輸碼率,減少視頻幀發(fā)送量,解決弱網(wǎng)環(huán)境下視頻直播過(guò)程中視頻畫面延遲的問(wèn)題,使得視頻畫面在保證質(zhì)量的情況下可以流暢播放。
本申請(qǐng)一實(shí)施例中,所述預(yù)設(shè)條件包括:
所述變化率大于第二閾值并且所述差值按照形成所述差值的時(shí)間順序連續(xù)增長(zhǎng)。
本申請(qǐng)實(shí)施例中,所述變化率大于根據(jù)當(dāng)前網(wǎng)絡(luò)環(huán)境設(shè)置的第二閾值并且所述差值按照形成所述差值的時(shí)間順序連續(xù)增長(zhǎng)趨勢(shì)時(shí),就需要降低視頻傳輸碼率來(lái)減少視頻的發(fā)送量,降低弱網(wǎng)環(huán)境中視頻直播畫面的延遲,所述第二閾值可以根據(jù)實(shí)際應(yīng)用具體限定,所述差值按照形成所述差值的時(shí)間順序連續(xù)遞增時(shí),再降低視頻傳輸碼率來(lái)減少視頻幀的發(fā)送量,可以更加精確的判斷直播中畫面的延遲,避免出現(xiàn)多次降低視頻傳輸碼率對(duì)視頻畫面的質(zhì)量造成影響。
本申請(qǐng)一實(shí)施例中,所述差值的變化率按照形成所述差值的時(shí)間順序呈增長(zhǎng)、下降或增長(zhǎng)、增長(zhǎng)、下降等非連續(xù)增長(zhǎng)時(shí),則需要重新按照時(shí)間間隔統(tǒng)計(jì)任意相鄰兩次采集的緩存中的視頻容量之間的差值計(jì)算所述差值的變化率,重新選擇碼率調(diào)整是降低還是提高,提升視頻傳輸碼率推送策略的精確度。
參見(jiàn)圖3,本申請(qǐng)一實(shí)施例提供一種數(shù)據(jù)推送方法,包括步驟301至步驟305。
步驟301:按照預(yù)設(shè)時(shí)間間隔采集緩存中的視頻容量。
步驟302:判斷所述緩存中的視頻容量是否大于第一閾值,如果是,執(zhí)行步驟303;如果否,則執(zhí)行步驟305。
本實(shí)施例中,根據(jù)當(dāng)前網(wǎng)絡(luò)環(huán)境設(shè)置第一閾值,判斷采集的當(dāng)前緩存中的視頻容量的大小是否大于第一閾值。
步驟303:持續(xù)丟棄接收的視頻幀直到收到關(guān)鍵幀時(shí)結(jié)束。
本實(shí)施例中,實(shí)際應(yīng)用中視頻可以每隔30個(gè)視頻幀設(shè)置一個(gè)關(guān)鍵幀,這樣每次丟棄為30個(gè)視頻幀。
步驟304:推送未丟棄的視頻幀。
步驟305:推送接收到的全部視頻幀。
本實(shí)施例中,當(dāng)所述緩存中的視頻容量大于設(shè)置的第一閾值時(shí),則丟棄視頻幀,按照這種丟幀策略推送緩存中的視頻幀。
本申請(qǐng)實(shí)施例中,采用視頻丟幀策略減少視頻幀的發(fā)送量,在不影響視頻畫面質(zhì)量的情況下解決弱網(wǎng)環(huán)境中視頻直播畫面不流暢的問(wèn)題,降低視頻直播中畫面的延遲。
實(shí)際應(yīng)用中,本申請(qǐng)實(shí)施例提供的數(shù)據(jù)推送方法可以應(yīng)用于電子設(shè)備中,所述電子設(shè)備可以是一種終端,例如可以是手機(jī)、平板電腦、臺(tái)式電腦、筆記本電腦等,下面以手機(jī)為例對(duì)本申請(qǐng)實(shí)施例提供的數(shù)據(jù)推送方法進(jìn)行說(shuō)明。
本實(shí)施例中,主播端通過(guò)手機(jī)錄制聲音和視頻畫面,所述聲音和視頻畫面會(huì)通過(guò)手機(jī)的音頻和視頻編碼器進(jìn)行編碼后存在音視頻的緩存中等待網(wǎng)絡(luò)發(fā)送模塊獲取,當(dāng)前主播端的網(wǎng)絡(luò)環(huán)境為帶寬低于300kbit/s且大于80kbit/s時(shí),所述網(wǎng)絡(luò)發(fā)送模塊按照預(yù)設(shè)的時(shí)間間隔采集緩存中的視頻容量,如每十秒的時(shí)間間隔采集緩存中的視頻容量并記錄;如表1所示:統(tǒng)計(jì)第10秒與第20秒視頻容量之間的差值為5個(gè)、第20秒與第30秒視頻容量之間的差值為6個(gè)、第30秒與第40秒視頻容量之間的差值為4個(gè)和該差值對(duì)應(yīng)相鄰的采集時(shí)間。
表1為本申請(qǐng)一實(shí)施例提供的采集時(shí)間和采集的視頻容量的對(duì)應(yīng)關(guān)系表的示例。
表1
從表1中可以看出,當(dāng)采集時(shí)間是第10秒時(shí),對(duì)應(yīng)第10秒采集到的緩存中的視頻容量是10個(gè)視頻幀。
按照形成所述差值的時(shí)間順序,計(jì)算得到所述差值的變化率,所述差值的變化率均大于第二閾值,如第二閾值為10%,本實(shí)施例中所述差值的變化率均大于10%,并且呈連續(xù)增長(zhǎng),說(shuō)明當(dāng)前網(wǎng)絡(luò)環(huán)境較差,需要降低視頻傳輸碼率。
本實(shí)施例中,將視頻傳輸碼率設(shè)置為三級(jí),由高到低分別為第一等級(jí)、第二等級(jí)和第三等級(jí),當(dāng)網(wǎng)絡(luò)環(huán)境較差需要降低視頻碼率進(jìn)行調(diào)整時(shí),可以一次降低一個(gè)等級(jí)的視頻傳輸碼率,降低到第三等級(jí)之后為了保證視頻質(zhì)量不再進(jìn)行下降調(diào)整。
可選地,也可以將所述視頻傳輸碼率直接降低至最低等級(jí)以更快地減少緩存內(nèi)累積的視頻幀。
網(wǎng)絡(luò)發(fā)送模塊接收降低傳輸碼率等級(jí)之后的視頻幀,然后將接收到的視頻幀發(fā)送到網(wǎng)絡(luò)。
本申請(qǐng)實(shí)施例采用碼率調(diào)整策略實(shí)現(xiàn)弱網(wǎng)環(huán)境中減少視頻幀傳輸量,解決視頻直播中視頻畫面延遲的問(wèn)題,使得視頻直播過(guò)程中畫面不會(huì)出現(xiàn)花屏并且視頻畫面播放比較流暢;實(shí)際應(yīng)用中,還可以采用降低碼率調(diào)整策略與丟幀策略結(jié)合來(lái)減少視頻幀傳輸量。
本申請(qǐng)一實(shí)施例中,若網(wǎng)絡(luò)狀況好轉(zhuǎn),所述差值的變化率小于第二閾值并且所述差值按照形成所述差值的時(shí)間順序連續(xù)降低時(shí),則提高視頻傳輸碼率一個(gè)等級(jí),可以根據(jù)當(dāng)前的網(wǎng)絡(luò)環(huán)境隨時(shí)調(diào)整最合適的視頻傳輸碼率;如果提高到最高的視頻傳輸碼率等級(jí)則不再提高,避免造成網(wǎng)絡(luò)傳輸擁堵。
本申請(qǐng)實(shí)施例提供的數(shù)據(jù)推送方法可以應(yīng)用于電子設(shè)備中,所述電子設(shè)備可以是一種終端,例如可以是手機(jī)、平板電腦、臺(tái)式電腦、筆記本電腦等。
具體地,本申請(qǐng)實(shí)施例提供的數(shù)據(jù)推送方法可以應(yīng)用于電子設(shè)備中安裝的任一應(yīng)用程序,所述應(yīng)用程序可以包括音視頻直播軟件、游戲軟件等。
參見(jiàn)圖4,本申請(qǐng)一實(shí)施例提供一種數(shù)據(jù)推送裝置,包括:
采集模塊401,用于按照預(yù)設(shè)時(shí)間間隔采集緩存中的視頻容量;
處理模塊402,用于根據(jù)采集的視頻容量確定對(duì)緩存中的視頻幀的推送策略;
推送模塊403,用于按照確定的推送策略推送緩存中的視頻幀。
本申請(qǐng)實(shí)施例提供的數(shù)據(jù)推送裝置,首先根據(jù)預(yù)設(shè)的時(shí)間間隔來(lái)獲取當(dāng)前緩存中視頻容量的大小,根據(jù)獲取到的視頻容量的大小選擇合適的視頻幀推送策略,可以在弱網(wǎng)的情況下根據(jù)獲取到的緩存中的視頻容量及時(shí)調(diào)整視頻幀的推送策略,解決視頻直播過(guò)程中視頻畫面延遲以及播放不流暢的問(wèn)題。
參見(jiàn)圖5,所述采集模塊401包括:
記錄模塊501,用于按照預(yù)設(shè)時(shí)間間隔采集緩存中的視頻容量并記錄;
所述處理模塊402包括:
統(tǒng)計(jì)模塊502,用于統(tǒng)計(jì)任意相鄰兩次采集的緩存中的視頻容量之間的差值以及該差值對(duì)應(yīng)的相鄰的采集時(shí)間;
計(jì)算模塊503,用于按照形成所述差值的時(shí)間順序,計(jì)算所述差值的變化率;
降碼模塊504,用于若所述變化率滿足預(yù)設(shè)條件,則降低視頻傳輸碼率;
所述推送模塊403包括:
發(fā)送模塊505,用于按照降低的視頻傳輸碼率推送緩存中的視頻幀。
本申請(qǐng)實(shí)施例中,根據(jù)統(tǒng)計(jì)任意相鄰兩次采集的緩存中的視頻容量之間的差值計(jì)算所述差值的變化率,通過(guò)確定所述變化率滿足設(shè)定的預(yù)設(shè)條件,來(lái)主動(dòng)降低視頻傳輸碼率,減少視頻幀發(fā)送量,解決弱網(wǎng)環(huán)境下視頻直播過(guò)程中視頻畫面延遲的問(wèn)題,使得視頻畫面在保證質(zhì)量的情況下可以流暢播放。
參見(jiàn)圖6,所述處理模塊402包括:
判斷模塊601,用于若所述緩存中的視頻容量大于第一閾值;
丟幀模塊602,用于持續(xù)丟棄接收的視頻幀直到收到關(guān)鍵幀時(shí)結(jié)束。
本申請(qǐng)實(shí)施例中,采用視頻丟幀策略減少視頻幀的發(fā)送量,在不影響視頻畫面質(zhì)量的情況下解決了弱網(wǎng)環(huán)境中視頻直播畫面不流暢的問(wèn)題,使得視頻直播中不會(huì)出現(xiàn)畫面延遲,并且視頻直播過(guò)程中視頻畫面的質(zhì)量高。
可選地,所述預(yù)設(shè)條件包括:
所述變化率大于第二閾值并且所述差值按照形成所述差值的時(shí)間順序連續(xù)增長(zhǎng)。
本申請(qǐng)實(shí)施例中,所述變化率大于根據(jù)具體設(shè)備或當(dāng)前網(wǎng)絡(luò)環(huán)境設(shè)置的第二閾值并且所述差值按照形成所述差值的時(shí)間順序連續(xù)增長(zhǎng)趨勢(shì)時(shí),就需要降低視頻傳輸碼率來(lái)減少視頻幀的發(fā)送量,降低弱網(wǎng)環(huán)境中視頻直播畫面的延遲。
上述為本實(shí)施例的數(shù)據(jù)推送裝置的示意性方案。需要說(shuō)明的是,該數(shù)據(jù)推送裝置的技術(shù)方案與上述的數(shù)據(jù)推送方法的技術(shù)方案屬于同一構(gòu)思,數(shù)據(jù)推送裝置的技術(shù)方案未詳細(xì)描述的細(xì)節(jié)內(nèi)容,均可以參見(jiàn)上述數(shù)據(jù)推送方法的技術(shù)方案的描述。
本申請(qǐng)實(shí)施例提供的數(shù)據(jù)推送裝置可以應(yīng)用于電子設(shè)備中,所述電子設(shè)備可以是一種終端,例如可以是手機(jī)、平板電腦、臺(tái)式電腦、筆記本電腦等。
具體地,本申請(qǐng)實(shí)施例提供的數(shù)據(jù)推送裝置可以應(yīng)用于電子設(shè)備中安裝的任一應(yīng)用程序,所述應(yīng)用程序可以包括音視頻頻直播軟件、游戲軟件等。
參見(jiàn)圖7,以平板電腦為例對(duì)本申請(qǐng)實(shí)施例提供的數(shù)據(jù)推送裝置進(jìn)行說(shuō)明。
本實(shí)施例的數(shù)據(jù)推送裝置用在平板電腦的視頻直播過(guò)程中,該數(shù)據(jù)推送裝置包括音頻編碼模塊701、音頻緩存702、視頻編碼模塊703、視頻緩存704、網(wǎng)絡(luò)發(fā)送模塊705、網(wǎng)絡(luò)706。
為了便于理解視頻傳輸碼率,本實(shí)施例中將視頻傳輸碼率設(shè)置為三級(jí),由高到低分別為第一等級(jí)、第二等級(jí)和第三等級(jí),當(dāng)網(wǎng)絡(luò)環(huán)境較差需要降低視頻碼率進(jìn)行調(diào)整時(shí),可以一次降低一個(gè)等級(jí)的視頻傳輸碼率,降低到第三等級(jí)之后為了保證視頻質(zhì)量不再進(jìn)行下降調(diào)整。
可選地,也可以將所述視頻傳輸碼率直接降低至最低等級(jí)以更快地減少緩存內(nèi)累積的視頻幀。
主播端使用平板電腦錄制的音頻和視頻分別經(jīng)過(guò)音頻編碼模塊701和視頻編碼模塊703發(fā)送到音頻緩存702和視頻緩存704中,網(wǎng)絡(luò)發(fā)送模塊705從所述音頻緩存702和視頻緩存704中采集音頻幀和視頻幀然后將采集到的音頻幀和視頻幀發(fā)送到網(wǎng)絡(luò)706。
以網(wǎng)絡(luò)發(fā)送模塊705接收視頻幀為例,當(dāng)前主播端的網(wǎng)絡(luò)環(huán)境為帶寬小于300kbit/s,網(wǎng)絡(luò)發(fā)送模塊705按照預(yù)設(shè)時(shí)間間隔采集緩存中的視頻容量,如每隔10秒采集一次緩存中的視頻容量,然后將采集到的視頻容量傳遞給丟幀模塊,所述丟幀模塊檢測(cè)到所述緩存中的視頻容量大于第一閾值時(shí),如大于10%時(shí),所述網(wǎng)絡(luò)發(fā)送模塊705丟棄視頻幀,本實(shí)施例的視頻每隔30個(gè)視頻幀設(shè)置有一個(gè)關(guān)鍵幀,所述丟幀模塊持續(xù)丟棄網(wǎng)絡(luò)發(fā)送模塊接收到的視頻幀直到收到關(guān)鍵幀時(shí)結(jié)束,之后接收到的視頻幀被發(fā)送到網(wǎng)絡(luò)706。
本申請(qǐng)實(shí)施例中,采用丟幀策略減少視頻幀的發(fā)送量,在不影響視頻直播中畫面質(zhì)量的情況下解決弱網(wǎng)情況下視頻直播中畫面不流暢的問(wèn)題,能夠更好的解決直播過(guò)程中畫面延遲的問(wèn)題。
本申請(qǐng)一實(shí)施例提供一種終端,包括處理器和存儲(chǔ)器,所述存儲(chǔ)器存儲(chǔ)有計(jì)算機(jī)指令,所述處理器調(diào)用所述計(jì)算機(jī)指令并執(zhí)行上述數(shù)據(jù)推送方法。
上述為本實(shí)施例的數(shù)據(jù)推送終端的示意性方案。需要說(shuō)明的是,該數(shù)據(jù)推送終端的技術(shù)方案與上述的數(shù)據(jù)推送方法的技術(shù)方案屬于同一構(gòu)思,數(shù)據(jù)推送終端的技術(shù)方案未詳細(xì)描述的細(xì)節(jié)內(nèi)容,均可以參見(jiàn)上述數(shù)據(jù)推送方法的技術(shù)方案的描述。
需要說(shuō)明的是,所述終端可以為桌上型計(jì)算機(jī)、筆記本、掌上電腦及云端服務(wù)器等計(jì)算設(shè)備。本領(lǐng)域技術(shù)人員可以理解的是,終端為用于接收數(shù)據(jù)并進(jìn)行處理后輸出結(jié)構(gòu)的設(shè)備。上述舉例并非是對(duì)終端的限定,為在某些場(chǎng)合,終端還可以包括輸入輸出設(shè)備、網(wǎng)絡(luò)接入設(shè)備、總線等。
所述處理器可以為中央處理單元(centralprocessingunit,cpu),還可以是其他通用處理器、數(shù)字信號(hào)處理器(digitalsignalprocessor,dsp)、專用集成電路(applicationspecificintegratedcircuit,asic)、現(xiàn)成可編程門陣列(field-programmablegatearray,fpga)或者其他可編程邏輯器件、分立門或者晶體管邏輯器件、分立硬件組件等。通用處理器可以是微處理器或者該處理器也可以是任何常規(guī)的處理器等,所述處理器是所述終端的控制中心,利用各種接口和線路連接整個(gè)終端的各個(gè)部分。
所述存儲(chǔ)器主要包括存儲(chǔ)程序區(qū)和存儲(chǔ)數(shù)據(jù)區(qū),其中,存儲(chǔ)程序區(qū)可存儲(chǔ)操作系統(tǒng)、至少一個(gè)功能所需的應(yīng)用程序(比如聲音播放功能、圖像播放功能等)等;存儲(chǔ)數(shù)據(jù)區(qū)可存儲(chǔ)根據(jù)手機(jī)的使用所創(chuàng)建的數(shù)據(jù)(比如音頻數(shù)據(jù)、電話本等)等。此外,存儲(chǔ)器可以包括高速隨機(jī)存取存儲(chǔ)器,還可以包括非易失性存儲(chǔ)器,例如硬盤、內(nèi)存、插接式硬盤,智能存儲(chǔ)卡(smartmediacard,smc),安全數(shù)字(securedigital,sd)卡,閃存卡(flashcard)、至少一個(gè)磁盤存儲(chǔ)器件、閃存器件、或其他易失性固態(tài)存儲(chǔ)器件。
本申請(qǐng)一實(shí)施例提供一種存儲(chǔ)介質(zhì),存儲(chǔ)有計(jì)算機(jī)指令,所述計(jì)算機(jī)指令執(zhí)行上述數(shù)據(jù)推送方法。
上述為本實(shí)施例的一種存儲(chǔ)介質(zhì)的示意性方案。需要說(shuō)明的是,該存儲(chǔ)介質(zhì)的技術(shù)方案與上述的數(shù)據(jù)推送方法的技術(shù)方案屬于同一構(gòu)思,存儲(chǔ)介質(zhì)的技術(shù)方案未詳細(xì)描述的細(xì)節(jié)內(nèi)容,均可以參見(jiàn)上述數(shù)據(jù)推送方法的技術(shù)方案的描述。
所述計(jì)算機(jī)指令包括計(jì)算機(jī)程序代碼,所述計(jì)算機(jī)程序代碼可以為源代碼形式、對(duì)象代碼形式、可執(zhí)行文件或某些中間形式等。所述計(jì)算機(jī)可讀介質(zhì)可以包括:能夠攜帶所述計(jì)算機(jī)程序代碼的任何實(shí)體或裝置、記錄介質(zhì)、u盤、移動(dòng)硬盤、磁碟、光盤、計(jì)算機(jī)存儲(chǔ)器、只讀存儲(chǔ)器(rom,read-onlymemory)、隨機(jī)存取存儲(chǔ)器(ram,randomaccessmemory)、電載波信號(hào)、電信信號(hào)以及軟件分發(fā)介質(zhì)等。需要說(shuō)明的是,所述計(jì)算機(jī)可讀介質(zhì)包含的內(nèi)容可以根據(jù)司法管轄區(qū)內(nèi)立法和專利實(shí)踐的要求進(jìn)行適當(dāng)?shù)脑鰷p,例如在某些司法管轄區(qū),根據(jù)立法和專利實(shí)踐,計(jì)算機(jī)可讀介質(zhì)不包括電載波信號(hào)和電信信號(hào)。
需要說(shuō)明的是,對(duì)于前述的各方法實(shí)施例,為了簡(jiǎn)便描述,故將其都表述為一系列的動(dòng)作組合,但是本領(lǐng)域技術(shù)人員應(yīng)該知悉,本發(fā)明并不受所描述的動(dòng)作順序的限制,因?yàn)橐罁?jù)本發(fā)明,某些步驟可以采用其它順序或者同時(shí)進(jìn)行。其次,本領(lǐng)域技術(shù)人員也應(yīng)該知悉,說(shuō)明書中所描述的實(shí)施例均屬于優(yōu)選實(shí)施例,所涉及的動(dòng)作和模塊并不一定都是本發(fā)明所必須的。
在上述實(shí)施例中,對(duì)各個(gè)實(shí)施例的描述都各有側(cè)重,某個(gè)實(shí)施例中沒(méi)有詳述的部分,可以參見(jiàn)其它實(shí)施例的相關(guān)描述。
以上公開(kāi)的本發(fā)明優(yōu)選實(shí)施例只是用于幫助闡述本發(fā)明。可選實(shí)施例并沒(méi)有詳盡敘述所有的細(xì)節(jié),也不限制該發(fā)明僅為所述的具體實(shí)施方式。顯然,根據(jù)本說(shuō)明書的內(nèi)容,可作很多的修改和變化。本說(shuō)明書選取并具體描述這些實(shí)施例,是為了更好地解釋本發(fā)明的原理和實(shí)際應(yīng)用,從而使所屬技術(shù)領(lǐng)域技術(shù)人員能很好地理解和利用本發(fā)明。本發(fā)明僅受權(quán)利要求書及其全部范圍和等效物的限制。