一種基于媒體流編碼格式突變的處理方法
1. 背景說明
在音視頻監控應用場景,由于設備種類眾多,技術實現以及推出的媒體流也是參差不齊的。面對設備推出的媒體流,有些流是不符合標準的,作為承擔媒體流處理中間環節的流媒體服務會對設備推出的媒體流簡單處理和轉發。當設備推出的媒體流是不符合標準的,流媒體收到不符合標準的媒體流后也會進行簡單處理和轉發,客戶端從流媒體服務拉到該媒體流進行播放會出現異常。針對這種情況,常見的處理方法是將該媒體流的異常反饋給設備廠家,待設備廠家處理后,再繼續啟用該設備。 實際的情況是當客戶反饋該流異常,按照常見的處理方式,問題解決的及時性,是無法滿足重要應用領域特殊客戶的低時效要求的。實際應用中常遇到設備推出的媒體流編碼格式突變,按照常見的處理方式,很難滿足客戶的要求。因此需要流媒體服務對收到的非標流進行兼容處理來提高處理效率和提高流媒體服務的兼容性。
2. 詳細方案
本方法主要是基于監控場景下媒體流視頻編碼格式突變的處理。
實際的生產應用中,目前常見設備推出的媒體流主要是H264和H265兩種編碼格式突變,主要有兩種情況:
(1)設備推流前期設備推出的流還未上線視頻編碼格式發生突變;
(2)設備推流過程中設備推出的流已上線視頻編碼格式發生突變;
針對以上媒體流編碼格式突變的情況,具體技術方案和工作原理如下。
步驟1:流媒體視頻編碼格式檢測算法模塊
根據H264和H265本身的編碼格式標準(主要檢測容器內的視頻編碼格式和實際視頻流中的視頻編碼格式),檢測出當前流的編碼格式是否發生改變,若發生改變則進入步驟2,否則不做處理。
步驟2:流媒體檢測到突變視頻編碼格式兼容和上線
2.1.針對設備推流前期設備推出的流還未上線視頻編碼格式發生突變的情況,因為突變前視頻編碼格式的流并未上線,只需要對突變前的視頻編碼格式的流信息和初始化進行重置,直接以突變后的視頻編碼格式進行初始化上線。
2.2.針對在設備推流過程中設備推出的流已上線視頻編碼格式發生突變的情況;由于突變前編碼格式的流已經上線,因此需要停止該流的處理和轉發,再以突變后的視頻編碼格式的流進行初始化上線,同時增加信令通知客戶端用新上線的流進行重新拉流。
步驟3:流媒體通知客戶端拉流播放
經過步驟2的處理,已經完成了對媒體流編碼格式突變的流做了兼容處理和上線,此時客戶端拉到的流就能正常播放。
3. 結論和建議
本方法針對設備推出的媒體流編碼格式突變,流媒體服務器收流時增加視頻編碼格式突變檢測算法模塊,檢測到視頻編碼格式改變,兼容新的編碼格式復用原有的url及時上線,尤其是具備自動檢測識別并自動上線的既完成了流媒體對異常流的兼容,也解決了重要應用領域特殊客戶的問題處理時效久的問題