國標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接口,可自由進行二次開發。