本技術(shù)屬于瀏覽器,尤其涉及一種基于瀏覽器的聊天視頻轉(zhuǎn)碼方法、系統(tǒng)、設(shè)備和介質(zhì)。
背景技術(shù):
1、隨著互聯(lián)網(wǎng)技術(shù)的飛速發(fā)展,基于瀏覽器的實(shí)時(shí)聊天工具已成為社交媒體互動(dòng)、客戶服務(wù)響應(yīng)及高效團(tuán)隊(duì)協(xié)作不可或缺的一部分。這些實(shí)時(shí)聊天工具通過提供即時(shí)通訊功能,極大地促進(jìn)了信息的流通與共享,用戶能夠輕松地在平臺(tái)上發(fā)送包含文本、圖片、音頻及視頻在內(nèi)的多媒體內(nèi)容。
2、然而,在享受這種便捷性的同時(shí),視頻文件的傳輸與展示卻通常會(huì)面臨不同瀏覽器的兼容性問題。具體地,不同瀏覽器對(duì)視頻編碼格式的支持存在顯著差異,如mov格式視頻,作為一種較為專業(yè)的視頻封裝格式,其高質(zhì)量的編碼特性在部分專業(yè)應(yīng)用場(chǎng)合備受歡迎,但在普通用戶的瀏覽器環(huán)境中,往往因缺乏原生支持或解碼器不一致而導(dǎo)致視頻無法正常播放,甚至出現(xiàn)黑屏現(xiàn)象,嚴(yán)重影響了用戶體驗(yàn)。
3、為了緩解這一問題,現(xiàn)有技術(shù)通常采用服務(wù)器端視頻轉(zhuǎn)碼的方式,即在視頻文件上傳至服務(wù)器后,由服務(wù)器統(tǒng)一將mov格式視頻轉(zhuǎn)換為瀏覽器廣泛支持的mp4等格式,再分發(fā)給接收方。雖然這種方法在一定程度上解決了瀏覽器兼容性問題,但其固有的弊端也不容忽視:首先,服務(wù)器需要承擔(dān)額外的轉(zhuǎn)碼任務(wù),顯著增加了服務(wù)器的負(fù)載壓力;其次,轉(zhuǎn)碼過程需要一定時(shí)間,導(dǎo)致視頻傳輸存在明顯延遲,無法滿足實(shí)時(shí)聊天工具對(duì)即時(shí)性的嚴(yán)格要求;最后,大量的轉(zhuǎn)碼操作不僅消耗了寶貴的計(jì)算資源,還可能因頻繁讀寫磁盤而加劇硬件損耗,造成資源浪費(fèi)。綜上,現(xiàn)有技術(shù)的服務(wù)端視頻轉(zhuǎn)碼方法存在服務(wù)器負(fù)載高、延遲大、資源浪費(fèi)等問題,且無法滿足實(shí)時(shí)聊天工具對(duì)高效性和即時(shí)性的要求。
技術(shù)實(shí)現(xiàn)思路
1、本技術(shù)實(shí)施例提供了一種基于瀏覽器的聊天視頻轉(zhuǎn)碼方法、系統(tǒng)、設(shè)備和介質(zhì),可以解決上述現(xiàn)有技術(shù)問題之一。
2、第一方面,本技術(shù)實(shí)施例提供了一種基于瀏覽器的聊天視頻轉(zhuǎn)碼方法,包括:
3、獲取視頻文件的源視頻鏈接,構(gòu)造基于所述源視頻鏈接的視頻源數(shù)據(jù);
4、基于所述源視頻鏈接,對(duì)所述視頻文件進(jìn)行轉(zhuǎn)碼,獲得轉(zhuǎn)碼視頻數(shù)據(jù);
5、將所述轉(zhuǎn)碼視頻數(shù)據(jù)寫入回調(diào)隊(duì)列,通過調(diào)用所述回調(diào)隊(duì)列將所述轉(zhuǎn)碼視頻數(shù)據(jù)緩存至所述聊天頁面;
6、加載預(yù)訓(xùn)練的神經(jīng)網(wǎng)絡(luò)模型,所述神經(jīng)網(wǎng)絡(luò)模型用于對(duì)所述轉(zhuǎn)碼視頻數(shù)據(jù)進(jìn)行分析,使所述視頻文件播放;
7、根據(jù)瀏覽器的性能指標(biāo)和網(wǎng)絡(luò)環(huán)境參數(shù),構(gòu)建視頻播放策略庫(kù),其中,所述視頻播放策略庫(kù)包括多個(gè)視頻播放策略,通過動(dòng)態(tài)選擇視頻播放策略,動(dòng)態(tài)調(diào)整視頻播放質(zhì)量。
8、進(jìn)一步的,在獲取視頻文件的源視頻鏈接,構(gòu)造基于所述源視頻鏈接的視頻源數(shù)據(jù)之前,包括:
9、根據(jù)視頻文件的文件名稱,判斷所述視頻文件的視頻格式是否為預(yù)設(shè)格式;
10、若所述視頻文件的視頻格式為預(yù)設(shè)格式,則將所述視頻文件緩存至聊天頁面;
11、若所述視頻文件的視頻格式不是預(yù)設(shè)格式,則構(gòu)造視頻源數(shù)據(jù),將所述視頻源數(shù)據(jù)寫入存儲(chǔ)隊(duì)列,所述視頻源數(shù)據(jù)包括源視頻鏈接、回調(diào)隊(duì)列名和視頻來源標(biāo)記。
12、進(jìn)一步的,所述基于所述源視頻鏈接,對(duì)所述視頻文件進(jìn)行轉(zhuǎn)碼,獲得轉(zhuǎn)碼視頻數(shù)據(jù)包括:
13、通過源視頻鏈接獲得視頻數(shù)據(jù)流,根據(jù)預(yù)設(shè)的分割規(guī)則,將所述視頻數(shù)據(jù)流分割成多個(gè)第一數(shù)據(jù)塊,其中,每個(gè)所述第一數(shù)據(jù)塊包括預(yù)定時(shí)長(zhǎng)的視頻片段;
14、通過動(dòng)態(tài)調(diào)整編碼參數(shù)對(duì)每個(gè)所述第一數(shù)據(jù)塊進(jìn)行轉(zhuǎn)碼處理獲得第二數(shù)據(jù)塊,其中,所述第二數(shù)據(jù)塊包括轉(zhuǎn)碼視頻數(shù)據(jù)。
15、進(jìn)一步的,所述通過動(dòng)態(tài)調(diào)整編碼參數(shù)對(duì)每個(gè)所述第一數(shù)據(jù)塊進(jìn)行轉(zhuǎn)碼處理獲得第二數(shù)據(jù)塊,包括:
16、針對(duì)每個(gè)所述第一數(shù)據(jù)塊,提取所述第一數(shù)據(jù)塊的所有關(guān)鍵幀,計(jì)算相鄰的片段幀之間的相似度,獲得幀間相似度;
17、根據(jù)所述關(guān)鍵幀以及所述幀間相似度,判斷所述第一數(shù)據(jù)塊的內(nèi)容復(fù)雜程度;
18、若所述關(guān)鍵幀密集且?guī)g相似度低,則說明所述第一數(shù)據(jù)塊的內(nèi)容復(fù)雜;
19、若所述關(guān)鍵幀稀疏且?guī)g相似度高,則說明所述第一數(shù)據(jù)庫(kù)的內(nèi)容簡(jiǎn)單;
20、采用決策樹算法,以所述第一數(shù)據(jù)塊的內(nèi)容復(fù)雜程度作為判斷條件,動(dòng)態(tài)選擇合適的編碼參數(shù);
21、通過比較所述第一數(shù)據(jù)塊和所述第二數(shù)據(jù)塊之間的視頻質(zhì)量以及轉(zhuǎn)碼處理的時(shí)間,采用強(qiáng)化學(xué)習(xí)算法動(dòng)態(tài)優(yōu)化編碼參數(shù)選擇策略。
22、進(jìn)一步的,所述將所述轉(zhuǎn)碼視頻數(shù)據(jù)寫入回調(diào)隊(duì)列,通過調(diào)用所述回調(diào)隊(duì)列將所述轉(zhuǎn)碼視頻數(shù)據(jù)緩存至所述聊天頁面,包括:
23、將多個(gè)所述第二數(shù)據(jù)塊按照轉(zhuǎn)碼順序依次存儲(chǔ)至回調(diào)隊(duì)列,為每個(gè)所述第二數(shù)據(jù)塊建立回調(diào)信息,所述回調(diào)信息包括起始時(shí)間戳、持續(xù)時(shí)長(zhǎng)和視頻源數(shù)據(jù);
24、在調(diào)用所述回調(diào)隊(duì)列時(shí),通過所述回調(diào)信息,實(shí)時(shí)更新所述視頻文件的已緩存視頻時(shí)長(zhǎng);
25、基于所述已緩存視頻時(shí)長(zhǎng),獲得所述視頻文件的緩存進(jìn)度。
26、進(jìn)一步的,在通過調(diào)用所述回調(diào)隊(duì)列將所述轉(zhuǎn)碼視頻數(shù)據(jù)緩存至所述聊天頁面之后,包括:
27、獲取所述視頻文件的播放請(qǐng)求,根據(jù)所述播放請(qǐng)求,遍歷所述回調(diào)隊(duì)列,獲得所述視頻文件中的所有第二數(shù)據(jù)塊以及緩存進(jìn)度;
28、若所述視頻文件已轉(zhuǎn)碼完畢,則根據(jù)所述第二數(shù)據(jù)塊的轉(zhuǎn)碼視頻數(shù)據(jù),按照播放順序依次進(jìn)行播放;
29、若所述視頻文件存在未轉(zhuǎn)碼的第一數(shù)據(jù)塊,針對(duì)已轉(zhuǎn)碼的第一數(shù)據(jù)塊,獲得第二數(shù)據(jù)塊,根據(jù)所述第二數(shù)據(jù)塊的轉(zhuǎn)碼視頻數(shù)據(jù),播放相應(yīng)的視頻片段;
30、針對(duì)未轉(zhuǎn)碼的第一數(shù)據(jù)塊,根據(jù)所述第二數(shù)據(jù)塊的回調(diào)信息,獲得未轉(zhuǎn)碼的視頻片段的視頻源數(shù)據(jù),將所述視頻源數(shù)據(jù)輸入視頻轉(zhuǎn)碼器進(jìn)行實(shí)時(shí)轉(zhuǎn)碼。
31、進(jìn)一步的,所述加載預(yù)訓(xùn)練的神經(jīng)網(wǎng)絡(luò)模型,所述神經(jīng)網(wǎng)絡(luò)模型用于對(duì)所述轉(zhuǎn)碼視頻數(shù)據(jù)進(jìn)行分析,使所述視頻文件播放,包括:
32、對(duì)所述神經(jīng)網(wǎng)絡(luò)模型進(jìn)行編譯,將所述神經(jīng)網(wǎng)絡(luò)模型轉(zhuǎn)換為編譯模型;
33、創(chuàng)建webworker線程,將所述編譯模型加載至所述webworker中,進(jìn)行異步執(zhí)行;
34、獲取所述編譯模型的輸入要求數(shù)據(jù),根據(jù)所述輸入要求數(shù)據(jù)處理所述轉(zhuǎn)碼視頻數(shù)據(jù)對(duì)應(yīng)的視頻片段獲得標(biāo)準(zhǔn)輸入片段;
35、將所述標(biāo)準(zhǔn)輸入片段輸入所述編譯模型,播放相應(yīng)的視頻片段。
36、第二方面,本技術(shù)實(shí)施例提供了一種基于瀏覽器的聊天視頻轉(zhuǎn)碼系統(tǒng),包括:
37、第一處理模塊:用于獲取視頻文件的源視頻鏈接,構(gòu)造基于所述源視頻鏈接的視頻源數(shù)據(jù);
38、第二處理模塊:用于基于所述源視頻鏈接,對(duì)所述視頻文件進(jìn)行轉(zhuǎn)碼,獲得轉(zhuǎn)碼視頻數(shù)據(jù);
39、第三處理模塊:用于將所述轉(zhuǎn)碼視頻數(shù)據(jù)寫入回調(diào)隊(duì)列,通過調(diào)用所述回調(diào)隊(duì)列將所述轉(zhuǎn)碼視頻數(shù)據(jù)緩存至所述聊天頁面;
40、第四處理模塊:用于加載預(yù)訓(xùn)練的神經(jīng)網(wǎng)絡(luò)模型,所述神經(jīng)網(wǎng)絡(luò)模型用于對(duì)所述轉(zhuǎn)碼視頻數(shù)據(jù)進(jìn)行分析,使所述視頻文件播放;
41、第五處理模塊:用于根據(jù)瀏覽器的性能指標(biāo)和網(wǎng)絡(luò)環(huán)境參數(shù),構(gòu)建視頻播放策略庫(kù),其中,所述視頻播放策略庫(kù)包括多個(gè)視頻播放策略,通過動(dòng)態(tài)選擇視頻播放策略,動(dòng)態(tài)調(diào)整視頻播放質(zhì)量。
42、第三方面,本技術(shù)實(shí)施例提供了一種終端設(shè)備,包括存儲(chǔ)器、處理器以及存儲(chǔ)在所述存儲(chǔ)器中并可在所述處理器上運(yùn)行的計(jì)算機(jī)程序,所述處理器執(zhí)行所述計(jì)算機(jī)程序時(shí)實(shí)現(xiàn)上述基于瀏覽器的聊天視頻轉(zhuǎn)碼方法。
43、第四方面,本技術(shù)實(shí)施例提供了一種計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),包括所述計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)存儲(chǔ)有計(jì)算機(jī)程序,所述計(jì)算機(jī)程序被處理器執(zhí)行時(shí)實(shí)現(xiàn)上述所述基于瀏覽器的聊天視頻轉(zhuǎn)碼方法。
44、本技術(shù)實(shí)施例與現(xiàn)有技術(shù)相比存在的有益效果是:
45、本技術(shù)的一種基于瀏覽器的聊天視頻轉(zhuǎn)碼方法通過在瀏覽器端對(duì)視頻文件進(jìn)行轉(zhuǎn)碼,可以有效解決不同瀏覽器對(duì)不同視頻格式支持不一致的問題,避免視頻黑屏現(xiàn)象。同時(shí),為了避免了服務(wù)器端轉(zhuǎn)碼帶來的高負(fù)載和高延遲問題,本技術(shù)還設(shè)置了神經(jīng)網(wǎng)絡(luò)模型和視頻播放策略庫(kù),提高了瀏覽器的聊天工具視頻轉(zhuǎn)碼的效率和用戶體驗(yàn)。由此,本技術(shù)具有較好的擴(kuò)展性和兼容性,能夠適應(yīng)不同瀏覽器和版本的需求。