國標GB28181協議視頻平台可以進行設備錄像,設備錄像文件可以通過接口調用獲取(EasyGBS內通過接口調取設備錄像的下載文件)。

有用戶在下載EasyGBS設備錄像之后,發現下載的是ps文件。


由於ps文件的特殊性,很多播放器都不支持,所以需要將ps文件轉換成mp4文件。
我們可以添加如下代碼,利用ffmpeg將ps轉換為mp4:
if len(filenamehz) == 2 && filenamehz[1] == "ps" {
outFile := filepath.Join(utils.DataDir(), "downloads", fmt.Sprintf("%s.mp4", filenamehz[0]))
inFile := filepath.Join(utils.DataDir(), "downloads", filename)
if _, err := os.Stat(inFile); os.IsNotExist(err) {
c.AbortWithStatusJSON(http.StatusBadRequest, "錄像文件不存在或已過期")
return
}
ff.H264ToMP4(inFile, outFile)
header := c.Writer.Header()
header["Content-type"] = []string{"application/octet-stream"}
header["Content-Disposition"] = []string{"attachment; filename=" + strings.ReplaceAll(filename, ".ps", ".mp4")}
if !utils.Exist(outFile) {
c.AbortWithStatusJSON(404, "file not found")
return
}
c.File(outFile)
if err := os.Remove(outFile); err != nil {
log.Println(err)
}
if err := os.Remove(inFile); err != nil {
log.Println(err)
}
}
轉換過后頁面下載正常,並且普通播放器也能夠播放了。

國標GB28181視頻平台
EasyGBS國標視頻雲服務提供流轉發服務,可分發RTSP、RTMP、FLV、HLS多種格式,實現web瀏覽器、手機瀏覽器、微信、PC客戶端等各種終端無插件播放。

EasyGBS提供用戶管理及web可視化頁面管理,及錄像檢索、回放等功能,基於動態組網服務創建智能網絡,可按需選擇需要組網的網絡成員實現點點互聯,且對外提供服務器獲取狀態、信息,控制 HTTP API接口,可自由進行二次開發。
