随笔 - 936  文章 - 0  评论 - 3  阅读 - 30万

国标GB28181视频平台EasyGBS设备录像下载文件为ps格式,如何改为MP4格式?

EasyGBS是基于国标GB/T28181协议的视频云服务平台,不仅支持无缝、完整接入内网或者公网的国标设备,在输出上,提供RTSP、RTMP、FLV、HLS、WebRTC等多种格式视频流的分发服务,实现全平台、全终端输出。

 

 

有用户反馈,在使用EasyGBS设备录像时,发现下载的是ps文件,正常应该下载的是MP4文件。针对该反馈,我们立即进行了排查。

 

 

 

 

因为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)
        }
}

添加过后,设备录像的页面下载正常,并且普通播放器也能够播放录像视频了。

 

 

EasyGBS凭借优秀的视频资源接入与处理能力,可实现视频的实时监控直播、录像、检索与回看、语音对讲、云存储、告警、平台级联等功能。平台既可以作为业务平台直接使用,也能作为视频能力层平台进行调用,并且已经在很多项目场景中落地应用,如:明厨亮灶、智慧工地、雪亮工程、平安乡村等等。感兴趣的用户可以前往演示平台进行体验或部署测试。

posted on   EasyGBS  阅读(260)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 提示词工程——AI应用必不可少的技术
· 字符编码:从基础到乱码解决
· 地球OL攻略 —— 某应届生求职总结
历史上的今天:
2021-10-12 新内核EasyGBS存储空间不足如何实现录像文件最大程度消除?
2021-10-12 EasyGBS如何配置播放webrtc协议?
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

点击右上角即可分享
微信分享提示