本發(fā)明涉及計算機軟件的音視頻處理的技術領域,特別涉及一種視頻處理方法及裝置、一種終端及存儲介質(zhì)。
背景技術:
目前,在直播領域中觀看直播視頻的質(zhì)量依賴于網(wǎng)絡帶寬、傳輸協(xié)議或編碼標準等。主流互聯(lián)網(wǎng)移動直播系統(tǒng)使用h.264和aac作為音視頻編碼標準,使用hls、rtmp或rtp作為傳輸協(xié)議,所需帶寬從200kbps至2mbps不等。能提供不同流暢度和清晰度的直播服務。
播放端一般支持上述技術,會充分使用手機平臺的硬件計算能力。但是移動直播時由于網(wǎng)絡抖動,網(wǎng)絡環(huán)境不穩(wěn)定,會造成視頻數(shù)據(jù)傳輸阻塞或延遲,使得播放端和主播端的視頻數(shù)據(jù)時間相差越來越遠,影響直播的互動體驗。
技術實現(xiàn)要素:
有鑒于此,本申請?zhí)峁┮环N解決移動直播造成視頻數(shù)據(jù)傳輸阻塞或延遲的視頻處理方法及裝置、一種終端及存儲介質(zhì)。
一方面,本申請?zhí)峁┮环N視頻處理方法,包括:
采集緩存中的視頻幀的時間戳;
根據(jù)所述時間戳確定緩存中最晚的視頻幀與最早的視頻幀之間的時間差值;
若所述時間差值大于預設時間閾值,則按照預定的降低視頻延遲處理策略處理緩存中的視頻幀。
可選地,所述預定的降低視頻延遲處理策略包括:
將緩存中從最早的視頻幀開始至最晚的關鍵幀之前的視頻幀均標記為無效;
對標記無效的視頻幀不進行解碼和播放。
可選地,所述預定的降低視頻延遲處理策略包括:
對所述緩存中的視頻幀以預設解碼速率進行解碼和播放直至所述緩存中的視頻幀被全部解碼和播放,所述預設解碼速率大于等于50幀/秒。
可選地,所述方法還包括:
將緩存中從最早的視頻幀開始至最晚的關鍵幀之前的視頻幀對應的時間段內(nèi)的音頻幀標記無效;
對標記無效的音頻幀不進行解碼和播放。
另一方面,本申請?zhí)峁┮环N視頻處理裝置,包括:
采集模塊,用于采集緩存中的視頻幀的時間戳;
計算模塊,用于根據(jù)所述時間戳確定緩存中最晚的視頻幀與最早的視頻幀之間的時間差值;
處理模塊,用于若所述時間差值大于預設時間閾值,則按照預定的降低視頻延遲處理策略處理緩存中的視頻幀。
可選地,所述處理模塊包括:
第一標記模塊,用于將緩存中從最早的視頻幀開始至最晚的關鍵幀之前的視頻幀均標記為無效;
第一無效模塊,用于對標記無效的視頻幀不進行解碼和播放。
可選地,所述處理模塊包括:
第一快放模塊,用于對所述緩存中的視頻幀以預設解碼速率進行解碼和
播放直至所述緩存中的視頻幀被全部解碼和播放,所述預設解碼速率大
于等于50幀/秒。
可選地,所述裝置還包括:
第二標記模塊,用于將緩存中從最早的視頻幀開始至最晚的關鍵幀之前的視頻幀對應的時間段內(nèi)的音頻幀標記無效;
第二無效模塊,用于對標記無效的音頻幀不進行解碼和播放。
另一方面,本申請?zhí)峁┮环N終端,包括處理器和存儲器,所述存儲器存儲有計算機指令,所述處理器調(diào)用所述計算機指令并執(zhí)行上述視頻處理方法。
另一方面,本申請?zhí)峁┮环N存儲介質(zhì),存儲有計算機指令,所述計算機指令執(zhí)行上述視頻處理方法。
本發(fā)明申請?zhí)峁┑囊环N視頻處理方法及裝置、一種終端及存儲介質(zhì),通過檢測緩存中視頻數(shù)據(jù)的時間差值判斷延遲,可以根據(jù)當前使用設備的性能選擇視頻降低視頻延遲處理策略,達到降低視頻延遲的效果,以解決因網(wǎng)絡抖動造成的直播畫面延遲問題。
附圖說明
圖1為本申請一實施例提供的一種視頻處理方法的流程圖;
圖2為本申請一實施例提供的一種視頻處理方法的流程圖;
圖3為本申請一實施例提供的一種視頻處理方法的流程圖;
圖4為本申請一實施例提供的一種視頻處理裝置的結(jié)構(gòu)示意圖;
圖5為本申請一實施例提供的處理模塊的結(jié)構(gòu)示意圖。
具體實施方式
在下面的描述中闡述了很多具體細節(jié)以便于充分理解本申請。但是本申請能夠以很多不同于在此描述的其它方式來實施,本領域技術人員可以在不違背本申請內(nèi)涵的情況下做類似推廣,因此本申請不受下面公開的具體實施的限制。
在本申請中,提供了一種視頻處理方法及裝置、一種終端及存儲介質(zhì),在下面的實施例中逐一進行詳細說明。
參見圖1,本申請一實施例提供一種視頻處理方法,包括步驟101至步驟103。
步驟101:采集緩存中的視頻幀的時間戳。
本實施例中,采集緩存中的視頻幀每一幀的時間戳,根據(jù)所述時間戳確定每一視頻幀的時間。
步驟102:根據(jù)所述時間戳確定緩存中最晚的視頻幀與最早的視頻幀之間的時間差值。
本實施例中,所述最晚的視頻幀為當前緩存接收到的最后一幀的視頻幀,所述最早的視頻幀為當前緩存中接收到的第一幀視頻幀。
步驟103:若所述時間差值大于預設時間閾值,則按照預定的降低視頻延遲處理策略處理緩存中的視頻幀。
本實施例的視頻處理方法,通過檢測緩存中的視頻幀的時間差值確定延遲,根據(jù)當前使用設備的性能選擇視頻降低視頻延遲處理策略,達到降低視頻延遲的效果,以解決因網(wǎng)絡抖動造成直播畫面延遲的問題。
參見圖2,本申請一實施例提供一種視頻處理方法,包括步驟201至步驟206。
步驟201:采集緩存中的視頻幀的時間戳。
步驟202:根據(jù)所述時間戳確定緩存中最晚的視頻幀與最早的視頻幀之間的時間差值。
步驟203:判斷所述時間差值是否大于預設時間閾值,如果是,執(zhí)行步驟204;如果否,則執(zhí)行步驟206。
步驟204:將緩存中從最早的視頻幀開始至最晚的關鍵幀之前的視頻幀均標記為無效。
本實施例中,將當前緩存中接收到的第一幀開始到當前緩存中接收到的時間最晚的關鍵幀之間的視頻幀全部標記無效,但不包括關鍵幀。
實際應用中,可以每隔25幀設置一個關鍵幀或每1秒的視頻幀內(nèi)設置一個關鍵幀,本申請對此不作限定。
步驟205:對標記無效的視頻幀不進行解碼和播放。
本實施例中,被標記無效的視頻幀不進行解碼和播放,并且會被后面新進入緩存中的視頻幀覆蓋,無需做額外的刪除處理。
步驟206:不需要對視頻進行處理,直接進行解碼和播放。
本實施例中,通過檢測緩存中的視頻幀的時間差值確定延遲,在視頻幀播放延遲時為視頻幀設置無效標記的方式,對被標記無效的視頻幀不進行解碼和播放,從而達到降低延遲的目的,以解決移動直播時網(wǎng)絡不穩(wěn)定產(chǎn)生抖動造成的直播畫面延遲問題。
參見圖3,本申請一實施例提供一種視頻處理方法,包括步驟301至步驟305。
步驟301:采集緩存中的視頻幀的時間戳。
步驟302:根據(jù)所述時間戳確定緩存中最晚的視頻幀與最早的視頻幀之間的時間差值。
步驟303:判斷所述時間差值是否大于預設時間閾值,如果是,執(zhí)行步驟304;如果否,則執(zhí)行步驟305。
步驟304:對所述緩存中的視頻幀以預設解碼速率進行解碼和播放直至所述緩存中的視頻幀被全部解碼和播放,所述預設解碼速率等于50幀/秒。
步驟305:以普通解碼速率對視頻幀進行解碼和播放。
本實施例中,通過檢測緩存中的視頻幀的時間差值確定延遲,在視頻幀播放延遲時采用提高視頻解碼速度的方式,達到降低視頻延遲的效果,以解決移動直播時網(wǎng)絡不穩(wěn)定產(chǎn)生抖動對直播畫面造成延遲的問題。
本申請一實施例,用戶可以根據(jù)對視頻幀的敏感度和使用的設備的cpu性能自主選擇是采用設置無效標記的方式或快速解碼的方式降低視頻畫面的延遲,但是若設備的cpu主頻大于等于2千兆赫茲并且cpu包含的核心數(shù)大于等于4個時才可以實現(xiàn)采用快速解碼的方式來降低直播中視頻畫面的延遲。
實際應用中,本申請實施例提供的視頻處理方法可以應用于電子設備中,所述電子設備可以是一種終端,例如可以是手機、平板電腦、臺式電腦、筆記本電腦等,下面以手機為例對本申請實施例提供的視頻處理方法進行說明。
使用cpu主頻小于2千兆赫茲并且cpu包含的核心數(shù)小于4個的手機觀看直播時,手機播放端從播放開始,始終檢測緩存區(qū)中的視頻幀的時間戳,根據(jù)檢測的時間戳確定緩存區(qū)中每一視頻幀對應的時間;計算當前緩存區(qū)中接收的最近的視頻幀的時間,即最晚的視頻幀的時間,和最早的視頻幀的時間之間的時間差值,若所述時間差值大于預設時間閾值,如時間差值大于6秒時,緩存區(qū)中的視頻從最早的視頻幀開始至最晚的關鍵幀之前的視頻幀均標記為無效,本實施例中,可以每隔25個視頻幀設置一個關鍵幀,手機播放端對標記無效的視頻幀不進行解碼和播放。
同時,將緩存中從最早的視頻幀開始至最晚的關鍵幀之前的視頻幀對應的時間段內(nèi)的音頻幀標記無效,對標記無效的音頻幀也不進行解碼和播放,如被標記無效的視頻幀的時間段是從第50毫秒至第500毫秒,則音頻幀被標記無效的時間段也是從第50毫秒至第500毫秒。
本實施例中,視頻幀和音頻幀可以不一一對應,視頻幀的時間戳可能是50毫秒、90毫秒、130毫秒等,而音頻幀的時間戳可能是50毫秒、75毫秒、100毫秒、125毫秒等。
對未被標記無效的視頻幀和音頻幀進行正常的解碼和播放。
本實施例中,通過檢測緩存中的視頻幀的時間差值確定延遲,在視頻幀播放延遲時采用對視頻幀設置無效標記,對被設置無效標記的視頻幀不進行解碼和播放的方式,達到降低視頻延遲的效果。
實際應用中,本申請實施例提供的視頻處理方法可以應用于電子設備中,所述電子設備可以是一種終端,例如可以是手機、平板電腦、臺式電腦、筆記本電腦等,下面以手機為例對本申請實施例提供的視頻處理方法進行說明。
使用cpu主頻等于2千兆赫茲并且cpu包含的核心數(shù)等于4的手機觀看直播時,手機播放端從播放開始,始終檢測緩存區(qū)中的視頻幀的時間戳,根據(jù)檢測的時間戳確定緩存區(qū)中每一視頻幀對應的時間;計算當前緩存區(qū)中接收的最近的視頻幀的時間,即最晚的視頻幀的時間,和最早的視頻幀的時間之間的時間差值,若所述差值大于預設時間閾值,如時間差值大于6秒時,所述緩存中的視頻幀以50幀/秒的速率進行解碼和播放直至所述緩存中的視頻幀被全部解碼和播放。
同時,將所述緩存中的音頻幀也以50幀/秒的速率進行解碼和播放直至所述緩存中的音頻幀被全部解碼和播放。
本實施例中,通過檢測緩存中的視頻幀的時間差值確定延遲,在視頻幀播放延遲時采用提高視頻解碼速率的方式,解決移動直播時因網(wǎng)絡抖動造成直播畫面延遲不流暢的問題。
本申請實施例提供的視頻處理方法可以應用于電子設備中,所述電子設備可以是一種終端,例如可以是手機、平板電腦、臺式電腦、筆記本電腦等。
具體地,本申請實施例提供的視頻處理方法可以應用于電子設備中安裝的任一應用程序,所述應用程序可以包括音視頻直播軟件、游戲軟件等。
參見圖4,本申請一實施例提供一種視頻處理裝置,包括:
采集模塊401,用于采集緩存中的視頻幀的時間戳;
計算模塊402,用于根據(jù)所述時間戳確定緩存中最晚的視頻幀與最早的視頻幀之間的時間差值;
處理模塊403,用于若所述時間差值大于預設時間閾值,則按照預定的降低視頻延遲處理策略處理緩存中的視頻幀。
本實施例的視頻處理裝置,通過檢測緩存中的視頻幀的時間差值確定延遲,根據(jù)當前使用設備的性能選擇視頻降低視頻延遲處理策略,達到降低視頻延遲的效果,當移動直播處于較差的網(wǎng)絡環(huán)境中時,直播畫面延遲的時間不會超過6秒。
參見圖5,所述處理模塊403包括:
第一標記模塊501,用于將緩存中從最早的視頻幀開始至最晚的關鍵幀之前的視頻幀均標記為無效;
第一無效模塊502,用于對標記無效的視頻幀不進行解碼和播放。
本實施例中,通過檢測緩存中的視頻幀的時間差值確定延遲,在視頻幀播放延遲時為視頻幀設置無效標記的方式,對被標記無效的視頻幀不進行解碼和播放,從而達到降低延遲的目的,以解決移動直播時網(wǎng)絡不穩(wěn)定產(chǎn)生抖動造成的直播畫面延遲問題。
可選地,所述處理模塊403包括:
第一快放模塊,用于對所述緩存中的視頻幀以預設解碼速率進行解碼和播放直至所述緩存中的視頻幀被全部解碼和播放,所述預設解碼速率大于等于50幀/秒。
可選地,所述裝置還包括:
第二標記模塊,用于將緩存中從最早的視頻幀開始至最晚的關鍵幀之前的視頻幀對應的時間段內(nèi)的音頻幀標記無效;
第二無效模塊,用于對標記無效的音頻幀不進行解碼和播放。
本實施例中,通過檢測緩存中的視頻幀的時間差值確定延遲,在視頻幀播放延遲時采用提高視頻解碼速度的方式,達到降低視頻延遲的效果,以解決因網(wǎng)絡環(huán)境較差造成直播畫面的延遲問題。
實際應用中,視頻處理裝置可以是手機、平板電腦、臺式電腦、筆記本電腦等終端,下面以平板電腦為例對本申請實施例提供的視頻處理裝置進行說明。
使用cpu主頻小于2千兆赫茲并且cpu包含的核心數(shù)小于4個的平板電腦觀看游戲直播,平板電腦播放端從播放開始,采集模塊始終檢測緩存區(qū)中的視頻幀的時間戳,根據(jù)檢測的時間戳確定緩存區(qū)中每一視頻幀對應的時間;然后計算模塊計算當前緩存區(qū)中接收的最近的視頻幀的時間(即最晚的視頻幀的時間)和最早的視頻幀的時間之間的時間差值,所述時間差值傳遞到處理模塊,所述處理模塊確定當時間差值大于預設時間閾值,如時間差值大于6秒時,開始工作,所述處理模塊中的第一標記模塊將緩存區(qū)中的視頻從最早的視頻幀開始至最晚的關鍵幀之前的視頻幀均標記為無效,第一無效模塊開始工作,所述第一無效模塊確定平板電腦播放端對標記無效的視頻幀不進行解碼和播放。
同時,第二標記模塊將緩存中從最早的視頻幀開始至最晚的關鍵幀之前的視頻幀對應的時間段內(nèi)的音頻幀標記無效,第二無效模塊對標記無效的音頻幀也不進行解碼和播放,如被標記無效的視頻幀的時間段是從第50毫秒至第500毫秒,則音頻幀被標記無效的時間段也是從第50毫秒至第500毫秒。
本實施例中,通過檢測緩存中的視頻幀的時間差確定延遲,在視頻幀播放延遲時采用對視頻幀設置無效標記的方式,達到降低視頻延遲的效果,以解決移動直播時因網(wǎng)絡抖動造成的延遲問題;對音頻和視頻進行同步處理,避免播放端出現(xiàn)播放視頻畫面與語音不一致的問題。
上述為本實施例的視頻處理裝置的示意性方案。需要說明的是,該視頻處理裝置的技術方案與上述的視頻處理方法的技術方案屬于同一構(gòu)思,視頻處理裝置的技術方案未詳細描述的細節(jié)內(nèi)容,均可以參見上述視頻處理方法的技術方案的描述。
本申請實施例提供的視頻處理方法可以應用于電子設備中,所述電子設備可以是一種終端,例如可以是手機、平板電腦、臺式電腦、筆記本電腦等。
具體地,本申請實施例提供的視頻處理方法可以應用于電子設備中安裝的任一應用程序,所述應用程序可以包括音視頻直播軟件、游戲軟件等。
本申請一實施例提供一種終端,包括處理器和存儲器,所述存儲器存儲有計算機指令,所述處理器調(diào)用所述計算機指令并執(zhí)行上述視頻處理方法。
上述為本實施例的終端的示意性方案。需要說明的是,該終端的技術方案與上述的視頻處理方法的技術方案屬于同一構(gòu)思,終端的技術方案未詳細描述的細節(jié)內(nèi)容,均可以參見上述視頻處理方法的技術方案的描述。
需要說明的是,所述終端可以為桌上型計算機、筆記本、掌上電腦及云端服務器等計算設備。本領域技術人員可以理解的是,終端為用于接收數(shù)據(jù)并進行處理后輸出結(jié)構(gòu)的設備。上述舉例并非是對終端的限定,為在某些場合,終端還可以包括輸入輸出設備、網(wǎng)絡接入設備、總線等。
所述處理器可以為中央處理單元(centralprocessingunit,cpu),還可以是其他通用處理器、數(shù)字信號處理器(digitalsignalprocessor,dsp)、專用集成電路(applicationspecificintegratedcircuit,asic)、現(xiàn)成可編程門陣列(field-programmablegatearray,fpga)或者其他可編程邏輯器件、分立門或者晶體管邏輯器件、分立硬件組件等。通用處理器可以是微處理器或者該處理器也可以是任何常規(guī)的處理器等,所述處理器是所述終端的控制中心,利用各種接口和線路連接整個終端的各個部分。
所述存儲器主要包括存儲程序區(qū)和存儲數(shù)據(jù)區(qū),其中,存儲程序區(qū)可存儲操作系統(tǒng)、至少一個功能所需的應用程序(比如聲音播放功能、圖像播放功能等)等;存儲數(shù)據(jù)區(qū)可存儲根據(jù)手機的使用所創(chuàng)建的數(shù)據(jù)(比如音頻數(shù)據(jù)、電話本等)等。此外,存儲器可以包括高速隨機存取存儲器,還可以包括非易失性存儲器,例如硬盤、內(nèi)存、插接式硬盤,智能存儲卡(smartmediacard,smc),安全數(shù)字(securedigital,sd)卡,閃存卡(flashcard)、至少一個磁盤存儲器件、閃存器件、或其他易失性固態(tài)存儲器件。
本申請一實施例提供一種存儲介質(zhì),存儲有計算機指令,所述計算機指令執(zhí)行上述視頻處理方法。
上述為本實施例的一種存儲介質(zhì)的示意性方案。需要說明的是,該存儲介質(zhì)的技術方案與上述的視頻處理方法的技術方案屬于同一構(gòu)思,存儲介質(zhì)的技術方案未詳細描述的細節(jié)內(nèi)容,均可以參見上述視頻處理方法的技術方案的描述。
所述計算機指令包括計算機程序代碼,所述計算機程序代碼可以為源代碼形式、對象代碼形式、可執(zhí)行文件或某些中間形式等。所述計算機可讀介質(zhì)可以包括:能夠攜帶所述計算機程序代碼的任何實體或裝置、記錄介質(zhì)、u盤、移動硬盤、磁碟、光盤、計算機存儲器、只讀存儲器(rom,read-onlymemory)、隨機存取存儲器(ram,randomaccessmemory)、電載波信號、電信信號以及軟件分發(fā)介質(zhì)等。需要說明的是,所述計算機可讀介質(zhì)包含的內(nèi)容可以根據(jù)司法管轄區(qū)內(nèi)立法和專利實踐的要求進行適當?shù)脑鰷p,例如在某些司法管轄區(qū),根據(jù)立法和專利實踐,計算機可讀介質(zhì)不包括電載波信號和電信信號。
需要說明的是,對于前述的各方法實施例,為了簡便描述,故將其都表述為一系列的動作組合,但是本領域技術人員應該知悉,本發(fā)明并不受所描述的動作順序的限制,因為依據(jù)本發(fā)明,某些步驟可以采用其它順序或者同時進行。其次,本領域技術人員也應該知悉,說明書中所描述的實施例均屬于優(yōu)選實施例,所涉及的動作和模塊并不一定都是本發(fā)明所必須的。
在本申請所提供的多個實施例中,應該理解到,所揭露的裝置和方法,可以通過其它的方式實現(xiàn)。例如,以上所描述的檢測裝置的實施例僅僅是示意性的,例如,所述模塊的劃分,僅僅為一種邏輯功能劃分,實際實現(xiàn)時可以有另外的劃分方式,例如多個模塊或組件可以結(jié)合或者可以集成到另一個系統(tǒng),或一些特征可以忽略,或不執(zhí)行。另一點,所顯示或討論的相互之間的耦合或直接耦合或通信鏈接可以是通過一些接口,模塊的間接耦合或通信鏈接,可以是電性,機械或其它的形式。
所述作為分離部件說明的模塊可以是或者也可以不是物理上分開的,作為模塊顯示的部件可以是或者也可以不是物理模塊,即可以位于一個地方,或者也可以分布到多個網(wǎng)絡模塊上。可以根據(jù)實際的需要選擇其中的部分或者全部模塊來實現(xiàn)本實施例方案的目的。
另外,在本發(fā)明各個實施例中的各功能模塊可以集成在一個處理模塊中,也可以是各個模塊單獨物理存在,也可以兩個或兩個以上模塊集成在一個模塊中。上述集成的模塊既可以采用硬件的形式實現(xiàn),也可以采用軟件功能模塊的形式實現(xiàn)。
所述集成的模塊如果以軟件功能模塊的形式實現(xiàn)并作為獨立的產(chǎn)品銷售或使用時,可以存儲在一個計算機可讀取存儲介質(zhì)中。基于這樣的理解,本發(fā)明的技術方案本質(zhì)上或者說對現(xiàn)有技術做出貢獻的部分或者該技術方案的全部或部分可以以軟件產(chǎn)品的形式體現(xiàn)出來,該計算機軟件產(chǎn)品存儲在一個存儲介質(zhì)中,包括若干指令用以使得一臺計算機設備(可以是個人計算機,服務器,或者網(wǎng)絡設備等)執(zhí)行本發(fā)明各個實施例所述方法的全部或部分步驟。而前述的存儲介質(zhì)包括:u盤、移動硬盤、只讀存儲器(rom,read-onlymemory)、隨機存取存儲器(ram,randomaccessmemory)、磁碟或者光盤等各種可以存儲程序代碼的介質(zhì)。
在上述實施例中,對各個實施例的描述都各有側(cè)重,某個實施例中沒有詳述的部分,可以參見其它實施例的相關描述。
以上公開的本發(fā)明優(yōu)選實施例只是用于幫助闡述本發(fā)明。可選實施例并沒有詳盡敘述所有的細節(jié),也不限制該發(fā)明僅為所述的具體實施方式。顯然,根據(jù)本說明書的內(nèi)容,可作很多的修改和變化。本說明書選取并具體描述這些實施例,是為了更好地解釋本發(fā)明的原理和實際應用,從而使所屬技術領域技術人員能很好地理解和利用本發(fā)明。本發(fā)明僅受權(quán)利要求書及其全部范圍和等效物的限制。