增設超時處理機制,在預置時間后輸出包含段錯誤或死循環的異常上下文信息。
[0042]實施中,解碼所述下一分段數據流的步驟包括:
[0043]識別所述下一分段數據流是否存在異常視頻流;
[0044]若存在異常視頻流,則根據所述異常視頻流類型輸出相應的異常上下文信息,并保存所述下一分段視頻流。
[0045]實施中,所述的線上預存異常上下文信息的步驟還包括:
[0046]若會話老化或完成解碼仍未識別出異常視頻流,則刪除所述第一分段視頻流。
[0047]步驟102、若所述當前分段視頻流存在解碼異常現象,則獲取線上包含所述當前分段視頻流中解碼異常現象所處位置的異常上下文信息。
[0048]實施中,獲取線上包含所述當前分段視頻流中解碼異常現象所處位置的異常上下文信息包括,管理工具根據解碼分段視頻流時設置的路徑標記,從所加載的異常上下文信息中獲取當前分段視頻流中解碼異常現象所處位置的異常上下文信息。
[0049]具體實施中,不對獲取線上包含所述當前分段視頻流中解碼異常現象所處位置的異常上下文信息的具體方法進行限定,包括但不限于:當前分段視頻流存在解碼異常現象時,利用管理工具查看當前分段視頻流的解碼進展情況和視頻處理系統的狀態信息;根據當前分段視頻流中解碼異常現象所處位置,從所加載的線上異常上下文信息中獲取與所處位置相應的異常上下文信息,完成解碼異常現象的分析和定位,進而確認并實現異常復現。其中,管理工具實時查看的視頻處理系統的狀態信息至少包括CPU和內存的使用率、CPU溫度等其他資源的使用情況等,若內存使用率過高,則可能存在系統內存泄漏的異常現象;若CPU溫度超過預先設定的警戒值,則可能存在CPU過熱保護,導致CPU停止工作的異常現象,上述異常現象均會導致解碼異常現象。因此,當管理工具在進行實時監控,監控到由于上述視頻處理系統的狀態信息導致解碼異常現象時,精確定位解碼異常現象,進而完善現有視頻處理系統。
[0050]步驟103、根據獲取到的異常上下文信息復現線上所述當前分段視頻流中的異常視頻流。
[0051]有益效果:本發明通過會話重建上下文的方式僅保存第一分段視頻流和存在解碼異常現象的分段視頻流,極大地減少了異常視頻流存儲的空間開銷;通過線上和線下相結合的方式盡可能的還原了出現解碼異常現象的相關上下文信息,較大程度的提高了針對異常視頻流復現和分析的準確性,為完善現有視頻處理系統提供了更大的可能性。
[0052]為了便于本發明的實施,下面以單路會話實例進行說明。
[0053]圖2示出了本發明實施例中線上異常數據處理方法的流程示意圖,包括:
[0054]步驟201、開始;
[0055]步驟202、獲取會話的第一分段視頻流,重建所述會話上下文并捕獲第一分段視頻流;
[0056]步驟203、解碼第一分段數據流;
[0057]步驟204、利用異常數據識別、捕獲模塊識別第一分段數據流是否存在異常視頻流,若未識別出解碼異常現象,則進入步驟205,若識別出異常視頻流,則進入步驟209,根據異常視頻流類型輸出相應的異常上下文信息,并退出解碼;
[0058]步驟205、接收非第一分段視頻流;
[0059]步驟206、根據接收到的非第一分段視頻流,重建會話上下文并解碼當前分段數據流;
[0060]步驟207、利用異常數據識別、捕獲模塊識別第一分段數據流是否存在異常視頻流,若未識別出解碼異常現象,則進入步驟208,若識別出解碼異常現象,則輸出相應的異常上下文信息,捕獲當前下一分段視頻流,并退出解碼;
[0061]步驟208、若會話老化或完成解碼仍未識別出異常視頻流,則刪除第一分段視頻流;
[0062]步驟209、結束。
[0063]需要說明的是,本發明實施例的方案并不對異常數據識別、捕獲模塊的具體功能進行限定,包括但不限于:異常數據識別、捕獲模塊通過識別出異常視頻流及其類型,進行異常處理,第一類解碼異常是指解碼失敗,正常退出,針對此類解碼異常的處理方法是增加錯誤碼,使其覆蓋解碼過程中關鍵的退出返回路徑,并將相應的錯誤碼作為該異常數據識另IJ、捕獲模塊的輸出之一;第二類解碼異常是指解碼失敗,不能正常退出,如在解碼過程中發生段錯誤,或是解碼流程陷入某個死循環,針對此類解碼異常的處理方法是增加超時處理機制,使其主動退出返回。
[0064]當異常數據識別、捕獲模塊識別出解碼異常并完成異常處理后,保存當前解碼的分段視頻流,同時針對第一類解碼異常記錄錯誤碼,針對第二類解碼異常記錄段錯誤或死循環等,用于分析后續線下異常復現。其中,錯誤碼屬于線上保存的異常上下文信息的一部分。
[0065]基于同一發明構思,本發明實施例中還提供了一種異常數據處理裝置,由于這些設備解決問題的原理與一種基于分段視頻流的異常數據處理方法相似,因此這些設備的實施可以參見方法的實施,重復之處不再贅述。
[0066]圖3示出了本發明實施例中異常數據處理裝置的結構示意圖,裝置可以包括:
[0067]線下部分:
[0068]線下監測模塊311,用于對會話的分段視頻流進行線下解碼監測,判斷當前分段視頻流是否存在解碼異常現象。
[0069]實施中,線下監測模塊311具體包括:
[0070]線下加載模塊3111,用于管理工具加載線上預存的異常上下文信息。
[0071]線下解碼模塊3112,用于根據所述異常上下文信息,解碼所述異常上下文信息對應的分段視頻流,并實時監測解碼過程。
[0072]線下獲取模塊312,用于若所述當前分段視頻流存在解碼異常現象,則獲取線上包含所述當前分段視頻流中解碼異常現象所處位置的異常上下文信息。
[0073]實施中,獲取線上包含所述當前分段視頻流中解碼異常現象所處位置的異常上下文信息包括,管理工具根據解碼分段視頻流時設置的路徑標記,從所加載的異常上下文信息中獲取當前分段視頻流中解碼異常現象所處位置的異常上下文信息。
[0074]線下復現模塊313,用于根據獲取到的異常上下文信息復現線上所述當前分段視頻流中的異常視頻流。
[0075]線上部分:
[0076]線上獲取模塊321,用于獲取會話的第一分段視頻流,重建所述會話上下文并保存所述第一分段視頻流。
[0077]線上識別模塊322,用于解碼所述第一分段數據流,并識別所述第一分段數據流是否存在異常視頻流。
[0078]線上異常模塊323,用于若存在異常視頻流,則根據所述異常視頻流類型生成相應的異常上下文信息。
[0079]實施中,線上異常模塊323具體包括:
[0080]第一異常子模塊3231,用于若所述異常視頻流為解碼失敗,正常退出,則輸出包含錯誤碼信息的異常上下文信息。
[0081 ]第二異常子模塊3232,用于若所述異常視頻流為解碼失敗,發生段錯誤或死循環,則增設超時處理機制,在預置時間后輸出包含段錯誤或死循環的異常上下文信息。
[0082]線上解碼模塊324,用于若不存在異常視頻流,則獲取下一分段視頻流,重建所述會話上下文并解碼所述下一分段數據流。
[0083]實施中,線上解碼模塊具體包括:
[0084]異常子模塊3241,用于識別所述下一分段數據流是否存在異常視頻流。
[0085]保存子模塊3242,用于若存在異常視頻流,則根據所述異常視頻流類型輸出相應的異常上下文信息,并保存所述下一分段視頻流。
[0086]線上刪