在以前的博文中,我們爲大家介紹過TSINGSEE青犀視頻雲-邊-端產品的演示平臺(EasyGBS平臺如何開啓“演示”模式),在演示模式下,用戶可以隨意切換界面,但是不能做添加或刪除等設置操作。
在EasyGBS演示模式下出現一個問題,就是點擊播放,分發出的視頻流,除RTSP協議外的都能在vlc正常播放,單RTSP協議視頻流無法播放。
可以看到VLC播放器一直在報錯“您的輸入無法被打開”,我們通過拆分rtsp地址發現無法播放是因爲在播放地址後面添加了token參數,去除後才能夠正常播放。
我們檢查代碼發現分發的播放地址在演示模式下都是添加了token參數的:
func wrapURLWithLiveToken(rawURL string, c *gin.Context) (wrapURL string) {
wrapURL = rawURL
if rawURL == "" {
return
}
demo := conf.GetIniConf().Demo
if !demo {
return
}
_url, err := url.Parse(rawURL)
if err != nil {
return
}
q := _url.Query()
token := utils.MD5(sessions.Default(c).ID() + rawURL)
q.Set("token", token)
_url.RawQuery = q.Encode()
wrapURL = _url.String()
liveTokenCache.SetDefault(token, wrapURL)
return
}
因此我們需要修改返回的播放地址,將裏面的token全部去除。
data["RTSP"] = global.ReplaceHostIP(rtspURL, strings.Split(c.Request.Host, ":")[0])
修改過後返回正常:
EasyGBS國標視頻平臺可以提供RTSP、RTMP、FLV、HLS四種格式的視頻流進行播放,實現web瀏覽器、手機瀏覽器、微信、PC客戶端等各種終端無插件直播,並且對外提供服務器獲取狀態、信息,控制 HTTP API接口,用戶可以根據自身項目需求自由進行二次開發。
TSINGSEE青犀視頻雲邊端架構視頻平臺均提供試用版本,歡迎大家聯繫我們獲取測試賬號進行測試。