本申請涉及計算機,特別是涉及一種直播流錄制方法和裝置、一種電子設備和一種存儲介質。
背景技術:
1、隨著富媒體和直播行業的蓬勃發展,觀眾對音視頻內容的喜愛和依賴程度日益加深。特別是在在線教育、體育賽事、娛樂直播、視頻會議等場景中,觀眾不僅熱衷于實時觀看,還期望在直播或會議結束后能夠隨時回看錄像。
2、在相關技術中,網頁錄制存在諸多挑戰。例如,錄制過程需要等待流結束,在此之前數據必須暫存于內存中,這導致瀏覽器內存開銷劇增,極易引發崩潰。另一種方案是定期進行分片錄制,但這種方式會導致文件碎片化,并且一旦遭遇意外刷新或關閉標簽頁等情況,錄制數據便可能丟失,影響觀看體驗。
技術實現思路
1、本申請實施例提供了一種直播流錄制方法,以解決或至少部分地解決上述問題。
2、相應的,本申請實施例還提供了一種直播流錄制裝置、一種電子設備以及一種存儲介質,用以保證上述方法的實現及應用。
3、為了解決上述問題,本申請實施例公開了一種直播流錄制方法,應用于用戶側,所述用戶側與服務側通信連接,所述方法包括:
4、獲取所述直播流;
5、根據所述直播流生成內存數據;
6、向所述服務側發送針對所述直播流的錄制請求;
7、當所述錄制請求被響應時,將所述內存數據寫入目標音視頻數據;
8、將所述目標音視頻數據轉發至所述服務側;
9、接收所述服務側發送的所述錄制請求的請求響應,所述請求響應中包括根據所述目標音視頻數據生成的目標錄制文件。
10、在本申請的一種可選的實施例中,在所述獲取所述直播流之前,所述方法還包括:
11、初始化第一對象與第二對象;所述第一對象包括第一端點與第二端點;所述第二對象包括可讀流與可寫流;
12、保存所述第一端點與所述可寫流;
13、向所述服務側傳遞所述第二端點與所述可寫流。
14、在本申請的一種可選的實施例中,所述向所述服務側發送針對所述直播流的錄制請求,包括:
15、采用所述第一端點,向所述第二端點發送所述錄制請求。
16、在本申請的一種可選的實施例中,所述當所述錄制請求被響應時,將所述內存數據寫入目標音視頻數據,包括:
17、采用所述可寫流,將所述內存數據寫入所述目標音視頻數據;
18、所述將所述目標音視頻數據轉發至所述服務側,包括:
19、通過所述可寫流,將所述目標音視頻數據轉發至所述可讀流。
20、在本申請的一種可選的實施例中,所述可寫流包括停止錄制接口,所述方法還包括:
21、當停止錄制所述直播流時,調用所述停止錄制接口;
22、通知所述服務側釋放所述第二端點和所述可讀流。
23、本申請實施例還公開了另一種直播流錄制方法,應用于服務側,所述服務側與用戶側通信連接,所述方法包括:
24、接收所述用戶側發送的針對所述直播流的錄制請求;所述直播流存在由用戶側保存的內存數據;
25、響應于所述錄制請求,接收所述用戶側轉發的目標音視頻數據;所述目標音視頻數據為所述用戶側根據所述內存數據寫入的數據;
26、向所述用戶側返回所述錄制請求的請求響應,所述請求響應中包括根據所述目標音視頻數據生成的目標錄制文件。
27、本申請實施例還公開了一種直播流錄制裝置,應用于用戶側,所述用戶側與服務側通信連接,所述裝置包括:
28、直播流獲取模塊,用于獲取所述直播流;
29、內存生成模塊,用于根據所述直播流生成內存數據;
30、請求發送模塊,用于向所述服務側發送針對所述直播流的錄制請求;
31、數據寫入模塊,用于當所述錄制請求被響應時,將所述內存數據寫入目標音視頻數據;
32、數據轉發模塊,用于將所述目標音視頻數據轉發至所述服務側;
33、目標文件接收模塊,用于接收所述服務側發送的所述錄制請求的請求響應,所述請求響應中包括根據所述目標音視頻數據生成的目標錄制文件。
34、本申請實施例還公開了另一種直播流錄制裝置,應用于服務側,所述服務側與用戶側通信連接,所述裝置包括:
35、請求接收模塊,用于接收所述用戶側發送的針對所述直播流的錄制請求;所述直播流存在由用戶側保存的內存數據;
36、數據接收模塊,用于響應于所述錄制請求,接收所述用戶側轉發的目標音視頻數據;所述目標音視頻數據為所述用戶側根據所述內存數據寫入的數據;
37、響應返回模塊,用于向所述用戶側返回所述錄制請求的請求響應,所述請求響應中包括根據所述目標音視頻數據生成的目標錄制文件。
38、本申請實施例還公開了一種電子設備,包括:處理器;和存儲器,其上存儲有可執行代碼,當所述可執行代碼被執行時,使得所述處理器執行如本申請實施例中一個或多個所述的直播流錄制方法。
39、本申請實施例還公開了一個或多個機器可讀介質,其上存儲有可執行代碼,當所述可執行代碼被執行時,使得處理器執行如本申請實施例中一個或多個所述的直播流錄制方法。
40、與現有技術相比,本申請實施例包括以下優點:
41、在本申請實施例中,獲取直播流;根據直播流生成內存數據;向服務側發送針對直播流的錄制請求;當錄制請求被響應時,將內存數據寫入目標音視頻數據;將目標音視頻數據轉發至服務側;接收服務側發送的錄制請求的請求響應,請求響應中包括根據目標音視頻數據生成的目標錄制文件。本申請實施例通過將直播流對應的內存數據以流的形式保存至目標錄制文件,采用流式錄制完整文件的方式,錄制動作無需等待流結束,支持長時間錄制而不會造成內存溢出,也不必進行分片錄制,從而減少了碎片文件的產生。此外,本申請實施例還能有效避免因意外刷新、關閉標簽頁等原因導致的錄制數據缺失問題,因此,用戶可以在網頁中一邊觀看直播或參與視頻會議,一邊將音視頻內容流式錄制到本地錄制文件,用于后續回看,而無需從服務器二次下載錄制文件,不僅節約了帶寬,還顯著增加了錄制的靈活性。
1.一種直播流錄制方法,其特征在于,應用于用戶側,所述用戶側與服務側通信連接,所述方法包括:
2.根據權利要求1所述的方法,其特征在于,在所述獲取所述直播流之前,所述方法還包括:
3.根據權利要求2所述的方法,其特征在于,所述向所述服務側發送針對所述直播流的錄制請求,包括:
4.根據權利要求2所述的方法,其特征在于,所述當所述錄制請求被響應時,將所述內存數據寫入目標音視頻數據,包括:
5.根據權利要求2所述的方法,其特征在于,所述可寫流包括停止錄制接口,所述方法還包括:
6.一種直播流錄制方法,其特征在于,應用于服務側,所述服務側與用戶側通信連接,所述方法包括:
7.一種直播流錄制裝置,其特征在于,應用于用戶側,所述用戶側與服務側通信連接,所述裝置包括:
8.一種直播流錄制裝置,其特征在于,應用于服務側,所述服務側與用戶側通信連接,所述裝置包括:
9.一種電子設備,其特征在于,包括:處理器;和
10.一個或多個機器可讀介質,其上存儲有可執行代碼,當所述可執行代碼被執行時,使得處理器執行如權利要求1-6中一個或多個所述的直播流錄制方法。