本發(fā)明涉及圖像通信,具體而言,涉及一種直播流處理方法及電子設(shè)備。
背景技術(shù):
1、隨著網(wǎng)絡(luò)帶寬的提升和視頻編解碼技術(shù)的進(jìn)步,網(wǎng)絡(luò)直播已廣泛應(yīng)用于娛樂(lè)、教育、安防監(jiān)控等多個(gè)領(lǐng)域,在網(wǎng)絡(luò)直播技術(shù)的支撐下,視頻內(nèi)容實(shí)時(shí)傳輸至全球各地的用戶終端,使用戶能實(shí)時(shí)觀看和參與直播。
2、目前的網(wǎng)絡(luò)視頻播放中,為了增加視頻的趣味性和信息豐富性,通常會(huì)對(duì)視頻進(jìn)行目標(biāo)檢測(cè),例如,檢測(cè)人物情緒和動(dòng)作、物體類(lèi)型等信息,在播放視頻時(shí)一并顯示目標(biāo)檢測(cè)信息。然而,當(dāng)前僅能在預(yù)先錄制的視頻文件中實(shí)現(xiàn)視頻和目標(biāo)檢測(cè)信息的同步顯示,在直播場(chǎng)景下,無(wú)法保證視頻和目標(biāo)檢測(cè)信息的實(shí)時(shí)性和同步性。
技術(shù)實(shí)現(xiàn)思路
1、有鑒于此,本發(fā)明的目的在于提供一種直播流處理方法及電子設(shè)備,其大大地提高了直播場(chǎng)景中的視頻和目標(biāo)檢測(cè)信息顯示的實(shí)時(shí)性和同步性。
2、為了實(shí)現(xiàn)上述目的,本發(fā)明采用的技術(shù)方案如下:
3、第一方面,本發(fā)明提供一種直播流處理方法,應(yīng)用于直播流處理系統(tǒng),所述直播流處理系統(tǒng)包括媒體服務(wù)器以及與所述媒體服務(wù)器通信連接的錄制設(shè)備和播放設(shè)備,所述方法包括:
4、所述錄制設(shè)備進(jìn)行實(shí)時(shí)錄制,得到每個(gè)錄制時(shí)刻的音頻幀和視頻幀,并對(duì)所述視頻幀進(jìn)行目標(biāo)檢測(cè),根據(jù)檢測(cè)結(jié)果生成sei幀;
5、所述錄制設(shè)備分別將所述音頻幀、所述視頻幀和所述sei幀編碼成流媒體幀,并實(shí)時(shí)將所述流媒體幀推送至所述媒體服務(wù)器;
6、當(dāng)檢測(cè)到直播播放事件被觸發(fā)后,所述播放設(shè)備向所述媒體服務(wù)器發(fā)起拉取請(qǐng)求,以與所述媒體服務(wù)器建立連接;
7、在建立連接后,所述媒體服務(wù)器向所述播放設(shè)備實(shí)時(shí)推送所述流媒體幀;
8、所述播放設(shè)備接收所述流媒體幀,將具有同一錄制時(shí)刻的所述流媒體幀同時(shí)播放,以同時(shí)播放同時(shí)錄制的所述視頻幀和所述音頻幀,并在播放的所述視頻幀上繪制對(duì)應(yīng)所述sei幀中的目標(biāo)檢測(cè)信息。
9、可選地,所述播放設(shè)備包括網(wǎng)絡(luò)緩存隊(duì)列、解碼緩存隊(duì)列和播放緩存隊(duì)列,且所述播放設(shè)備上部署有瀏覽器;
10、所述播放設(shè)備接收所述流媒體幀的步驟,包括:
11、所述瀏覽器對(duì)接收的所述流媒體幀進(jìn)行解析,按照預(yù)設(shè)的結(jié)構(gòu)體,將解析結(jié)果整理成解析數(shù)據(jù)幀,并將所述解析數(shù)據(jù)幀放入所述網(wǎng)絡(luò)緩存隊(duì)列;其中,所述解析結(jié)果包括播放時(shí)間,所述播放時(shí)間與所述流媒體幀的錄制時(shí)刻一致;
12、所述瀏覽器對(duì)所述網(wǎng)絡(luò)緩存隊(duì)列中的所述解析數(shù)據(jù)幀進(jìn)行循環(huán)讀取,并在讀取的所述解析數(shù)據(jù)幀滿足延時(shí)限制的情況下,將所述解析數(shù)據(jù)幀放入所述解碼緩存隊(duì)列;
13、所述瀏覽器對(duì)所述解碼緩存隊(duì)列中的所述解析數(shù)據(jù)幀循環(huán)解碼,得到所述流媒體幀,并按所述播放時(shí)間的順序,將各所述流媒體幀存放至所述播放緩存隊(duì)列。
14、可選地,所述瀏覽器對(duì)所述網(wǎng)絡(luò)緩存隊(duì)列中的所述解析數(shù)據(jù)幀進(jìn)行循環(huán)讀取,并在讀取的所述解析數(shù)據(jù)幀滿足延時(shí)限制的情況下,將所述解析數(shù)據(jù)幀放入所述解碼緩存隊(duì)列的步驟,包括:
15、所述瀏覽器從所述網(wǎng)絡(luò)緩存隊(duì)列中,選擇排序最前的所述解析數(shù)據(jù)幀作為第一目標(biāo)幀,并計(jì)算所述第一目標(biāo)幀的網(wǎng)絡(luò)延時(shí);
16、判斷所述第一目標(biāo)幀的網(wǎng)絡(luò)延時(shí)是否超過(guò)預(yù)設(shè)的最長(zhǎng)延時(shí);
17、若是,則將所述播放時(shí)間在當(dāng)前時(shí)刻之前的所述解析數(shù)據(jù)幀,作為待清空幀,將所述解碼緩存隊(duì)列中的各所述待清空幀刪除;
18、將所述網(wǎng)絡(luò)緩存隊(duì)列中,所述播放時(shí)間為當(dāng)前時(shí)刻的所述解析數(shù)據(jù)幀放入所述解碼緩存隊(duì)列,并返回執(zhí)行所述瀏覽器將所述網(wǎng)絡(luò)緩存隊(duì)列中的第一個(gè)解析數(shù)據(jù)幀作為第一目標(biāo)幀的步驟。
19、可選地,所述解析結(jié)果還包括sei標(biāo)識(shí);
20、所述瀏覽器對(duì)所述解碼緩存隊(duì)列中的所述解析數(shù)據(jù)幀循環(huán)解碼,得到所述流媒體幀,并按所述播放時(shí)間的順序,將各所述流媒體幀存放至所述播放緩存隊(duì)列的步驟,包括:
21、所述瀏覽器從所述解碼緩存隊(duì)列中,循環(huán)讀取排序最前的所述解析數(shù)據(jù)幀作為第二目標(biāo)幀;
22、針對(duì)每個(gè)所述第二目標(biāo)幀,判斷所述第二目標(biāo)幀的sei標(biāo)識(shí)是否為第一標(biāo)識(shí),若是,則按照所述播放時(shí)間的順序,將所述第二目標(biāo)幀放入所述播放緩存隊(duì)列,若否,則將所述第二目標(biāo)幀傳入預(yù)設(shè)的音視頻解碼器;其中,所述第一標(biāo)識(shí)指示為sei幀;
23、計(jì)算傳入所述音視頻解碼器的各所述第二目標(biāo)幀間的音頻時(shí)間差和視頻時(shí)間差;
24、當(dāng)所述音頻時(shí)間差或所述視頻時(shí)間差達(dá)到預(yù)設(shè)的最短延時(shí)時(shí),通過(guò)所述音視頻解碼器依次對(duì)傳入的所述第二目標(biāo)幀進(jìn)行解碼,得到流媒體幀;
25、按照所述播放時(shí)間的順序,將所述流媒體幀放入所述播放緩存隊(duì)列。
26、可選地,所述解析結(jié)果還包括播放類(lèi)型;
27、所述計(jì)算傳入所述音視頻解碼器的各所述第二目標(biāo)幀間的音頻時(shí)間差和視頻時(shí)間差的步驟,包括:
28、從傳入所述音視頻解碼器的各所述第二目標(biāo)幀中,選擇所述播放類(lèi)型為音頻的各所述第二目標(biāo)幀作為音頻組,選擇所述播放類(lèi)型為視頻的各所述第二目標(biāo)幀作為視頻組;
29、從所述音頻組中確定最早播放時(shí)間和最晚播放時(shí)間,將所述最早播放時(shí)間和所述最晚播放時(shí)間的時(shí)間差作為音頻時(shí)間差;
30、從所述視頻組中確定最早播放時(shí)間和最晚播放時(shí)間,將所述最早播放時(shí)間和所述最晚播放時(shí)間的時(shí)間差作為視頻時(shí)間差。
31、可選地,所述按照所述播放時(shí)間的順序,將所述第二目標(biāo)幀放入所述播放緩存隊(duì)列的步驟,包括:
32、采用二分法,從所述播放緩存隊(duì)列中,查找與所述第二目標(biāo)幀的播放時(shí)間最近的流媒體幀,作為關(guān)聯(lián)幀;
33、當(dāng)所述第二目標(biāo)幀的播放時(shí)間在所述關(guān)聯(lián)幀之后,或所述第二目標(biāo)幀和所述關(guān)聯(lián)幀的播放時(shí)間相同時(shí),將所述第二目標(biāo)幀放至所述關(guān)聯(lián)幀之后;
34、當(dāng)所述第二目標(biāo)幀的播放時(shí)間在所述關(guān)聯(lián)幀之前時(shí),將所述第二目標(biāo)幀放至所述關(guān)聯(lián)幀之前。
35、可選地,所述將具有同一錄制時(shí)刻的所述流媒體幀同時(shí)播放的步驟,包括:
36、從所述播放緩存隊(duì)列中,選擇排序最前的所述流媒體幀以及與該流媒體幀具有同一播放時(shí)間的流媒體幀和/或所述sei幀,作為待播組;
37、在畫(huà)布標(biāo)簽中展示所述待播組中的視頻幀,在音頻標(biāo)簽播放所述待播組中的音頻幀,并在所述畫(huà)布標(biāo)簽上繪制所述待播組中的目標(biāo)檢測(cè)信息。
38、第二方面,本發(fā)明提供一種直播流處理方法,應(yīng)用于錄制設(shè)備,所述方法包括:
39、實(shí)時(shí)對(duì)位于攝像范圍內(nèi)的區(qū)域進(jìn)行錄制,得到每個(gè)錄制時(shí)刻的音頻幀和視頻幀,并對(duì)所述視頻幀進(jìn)行目標(biāo)檢測(cè),根據(jù)檢測(cè)結(jié)果生成sei幀;
40、分別將所述音頻幀、所述視頻幀和所述sei幀編碼成流媒體幀,并實(shí)時(shí)將所述流媒體幀推送至媒體服務(wù)器,以實(shí)現(xiàn)如第一方面所述的直播流處理方法。
41、第三方面,本發(fā)明提供一種直播流處理方法,應(yīng)用于播放設(shè)備,所述播放設(shè)備與媒體服務(wù)器通信連接,所述方法包括:
42、當(dāng)檢測(cè)到直播播放事件被觸發(fā)后,向所述媒體服務(wù)器發(fā)起拉取請(qǐng)求,以與所述媒體服務(wù)器建立連接;
43、在建立連接后,接收所述媒體服務(wù)器推送的流媒體幀,將具有同一錄制時(shí)刻的所述流媒體幀同時(shí)播放,以同時(shí)播放同時(shí)錄制的所述視頻幀和所述音頻幀,并在播放的所述視頻幀上繪制對(duì)應(yīng)sei幀中的目標(biāo)檢測(cè)信息。
44、第四方面,本發(fā)明提供一種電子設(shè)備,包括處理器和存儲(chǔ)器,所述存儲(chǔ)器存儲(chǔ)有能夠被所述處理器執(zhí)行的計(jì)算機(jī)程序,所述處理器可執(zhí)行所述計(jì)算機(jī)程序以實(shí)現(xiàn)如第二方面或第三方面所述的直播流處理方法。
45、第五方面,本發(fā)明提供一種計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),其上存儲(chǔ)有計(jì)算機(jī)程序,所述計(jì)算機(jī)程序被處理器執(zhí)行時(shí)實(shí)現(xiàn)如第二方面或第三方面所述的直播流處理方法。
46、本發(fā)明實(shí)施例提供的直播流處理方法及電子設(shè)備,方法包括:錄制設(shè)備進(jìn)行實(shí)時(shí)錄制,得到每個(gè)錄制時(shí)刻的音頻幀和視頻幀,并對(duì)視頻幀進(jìn)行目標(biāo)檢測(cè),生成sei幀;錄制設(shè)備分別將音頻幀、視頻幀和sei幀編碼成流媒體幀,并實(shí)時(shí)將流媒體幀推送至媒體服務(wù)器;當(dāng)檢測(cè)到直播播放事件被觸發(fā)后,播放設(shè)備向媒體服務(wù)器發(fā)起拉取請(qǐng)求,以與媒體服務(wù)器建立連接;在建立連接后,媒體服務(wù)器向播放設(shè)備實(shí)時(shí)推送流媒體幀;播放設(shè)備接收流媒體幀,將具有同一錄制時(shí)刻的流媒體幀同時(shí)播放,以同時(shí)播放同時(shí)錄制的視頻幀和音頻幀,并在播放的視頻幀上繪制對(duì)應(yīng)sei幀中的目標(biāo)檢測(cè)信息。
47、如此,由錄制設(shè)備在錄制的同時(shí)完成對(duì)視頻幀的目標(biāo)檢測(cè),并將同時(shí)錄制的音頻幀、視頻幀及視頻幀的sei幀推送至媒體服務(wù)器,并由媒體服務(wù)器向建立連接的播放設(shè)備實(shí)時(shí)推送,實(shí)現(xiàn)同時(shí)錄制的音頻幀、視頻幀及視頻幀的sei幀的相鄰緊隨推送。故而,使播放設(shè)備近乎無(wú)延時(shí)地同時(shí)得到同一時(shí)刻的視頻幀、音頻幀和sei幀,以能同時(shí)顯示視頻幀和繪制視頻的sei幀中的目標(biāo)檢測(cè)信息。從而,降低甚至消除播放設(shè)備因目標(biāo)檢測(cè)導(dǎo)致的同步播放延時(shí),極大地提高了直播場(chǎng)景中的視頻和目標(biāo)檢測(cè)信息顯示的實(shí)時(shí)性和同步性。
48、為使本發(fā)明的上述目的、特征和優(yōu)點(diǎn)能更明顯易懂,下文特舉較佳實(shí)施例,并配合所附附圖,作詳細(xì)說(shuō)明如下。