TSINGSEE青犀視頻團隊在最近一年內對大部分已經開發的視頻平臺做了一次大的調整和優化,諸如EasyDSS、EasyGBS等視頻平臺在界面、操作方式、功能上都有了不同程度的改變,EasyDSS視頻直播點播平臺開發簡單,提供編程語言無關化的RESTfulAPI介面,可以很便捷的進行二次開發和應用,在遠程教育、遠程醫療都具備優勢,

視頻平臺EasyDSS中如果在接入的設備過多的情況下,流媒體的處理系統偶爾會出現卡頓現象,此時如果頻繁的請求在線直播資訊的話,直播串列可能為空,導致直播串列資訊回傳為空,

因為一旦接入的數量過多,內核處理不過來,導致系統卡頓,這樣的應用層在請求流媒體服務的時候就會請求不到任何的資料,但此時之前的資料又被洗掉了,所以出現了一小段時間的資料空白期,
因此解決問題的時候,我們就可以在專案啟動的時候開啟定時任務,每隔一秒鐘對流媒體系統發送http的請求,將請求到的資料進行及時的更新,
if !gUpdateSession {
gUpdateSession = true
allInfos := make([]*SessionInfo, 0)
// 1. 更新本地資料
infos, err := getLiveSessions(consts.EmptyString)
if err != nil {
errorLogger.Error(err.Error())
} else {
allInfos = append(allInfos, *infos...)
}
// 2. 查看集群,如果有集群資料,則從集群中更新資料到全域中
servers := cluster.GetServerALL()
if servers != nil {
for _, server := range servers {
infos, err = getLiveSessions(fmt.Sprintf("%v:%v", server[consts.FieldNameIP], server[consts.FieldNameDSSHttpPort]))
if err != nil {
errorLogger.Error(err.Error())
} else {
allInfos = append(allInfos, *infos...)
}
}
}
// 更新所有資料
gLiveSessions.Update(allInfos)
gUpdateSession = false
}
}
更新后系統將會及時處理所有資料,避免空白段的情況出現,

該問題就此解決,如果大家比較關心我們前文提到的EasyDSS在實際專案中的運用,可以閱讀:遠程教育視頻直播點播解決方案如何實作教學直播+錄播+在線考試?
TSINGSEE青犀視頻云邊端架構產品還包括EasyGBS、EasyNVR、EasyCVR等優秀的視頻智能分析平臺,歡迎大家了解和測驗,
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/232103.html
標籤:其他
