天天看點

EasyGBS倍數播放錄像視訊時出現崩潰是什麼原因?該如何解決?

EasyGBS是基于GB28181協定的視訊平台,擁有視訊直播、錄像、存儲、檢索與回放、雲台控制、告警上報、語音對講、平台級聯等功能。我們在此前的文章中分享過關于EasyGBS如何實作标準裝置錄像的倍速功能,感興趣的使用者可以翻閱往期的文章進行了解。

EasyGBS倍數播放錄像視訊時出現崩潰是什麼原因?該如何解決?

我們在項目現場發現,EasyGBS在錄像回放倍數播放時,點選下方播放倍數,平台出現了崩潰現象,并出現報錯:“panic: runtime error: invalid memory address or nil pointer dereference”,這段報錯表示一個空指針。

EasyGBS倍數播放錄像視訊時出現崩潰是什麼原因?該如何解決?
EasyGBS倍數播放錄像視訊時出現崩潰是什麼原因?該如何解決?

針對該情況,我們立即進行了排查。

1)找到EasyGBS對應的代碼,如下:

EasyGBS倍數播放錄像視訊時出現崩潰是什麼原因?該如何解決?

2)隻有Server沒有初始化,即表示為空指針,是以導緻程式崩潰。

3)進一步分析得知,此錯誤代表的是下級用戶端,不需要sip的服務,是以此處肯定是nil。

4)找到錯誤碼中的“handle_info.go”的57行,将其注釋掉。

EasyGBS倍數播放錄像視訊時出現崩潰是什麼原因?該如何解決?

5)但是注釋掉會出現設定成功沒有回複sip消息,是以還需要在回放倍數加上sip消息的回複。

6)注釋下級用戶端的回放控制代碼,如圖:

EasyGBS倍數播放錄像視訊時出現崩潰是什麼原因?該如何解決?

7)加上sip消息的回複,添加回放倍數的控制,如圖:

EasyGBS倍數播放錄像視訊時出現崩潰是什麼原因?該如何解決?

繼續閱讀