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

国标GB28181协议国标流媒体平台EasyGBS设备录像下载为PS文件如何转换成MP4文件?

国标GB28181协议视频平台可以进行设备录像,设备录像文件可以通过接口调用获取(EasyGBS内通过接口调取设备录像的下载文件)。

有用户在下载EasyGBS设备录像之后,发现下载的是ps文件。

由于ps文件的特殊性,很多播放器都不支持,所以需要将ps文件转换成mp4文件。

我们可以添加如下代码,利用ffmpeg将ps转换为mp4:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
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接口,可自由进行二次开发。

posted on   EasyGBS  阅读(640)  评论(0编辑  收藏  举报
编辑推荐:
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
阅读排行:
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 提示词工程——AI应用必不可少的技术
· 字符编码:从基础到乱码解决
· 地球OL攻略 —— 某应届生求职总结
< 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

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