國標GB28181協議國標流媒體平台EasyGBS設備錄像下載為PS文件如何轉換成MP4文件?


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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM