• 如何尽量避免网页直播点播视频平台EasyDSS下载录像转码出现cpu过高的问题?


    经过一段时间的攻克,目前TSINGSEE青犀视频研发团队已经将市面上可靠稳定的视频网页直播点播平台EasyDSS的录像下载功能研发完毕,实现方式可以参考:EasyDSS录像文件下载功能的实现

    在下载录像文件转码的时候,有可能会导致服务器cpu过高,然后整个服务变得异常卡顿,甚至崩溃。那么在使用该功能时,如何尽量避免EasyDSS下载录像转码出现cpu过高的问题是我们下一个要优化的点。

    实际这种问题还是和请求的数量有关。如果一旦访问量过大,然后很多个请求都去下载或者播放指定时间段的录像,此时需要实现将ts文件转成MP4文件,用到的是ffmpeg去进行转码技术,但是请求多了也就是转码多了,cpu就会暴涨。

    因为每次都会将下载或者播放的MP4文件放到缓存文件夹中,所以我们可以将缓存清除的时间设置成永久,然后调用接口先将MP4文件生成好放在缓存中,下一次再来请求则直接在缓存中拿。这样在一定程度上可以避免cpu过高的问题。

    recordCachePath := conf2.GetConf().DirCache
    mp4Path := filepath.Join(recordCachePath, fmt.Sprintf(`%s.mp4`, videoID))
    if efile.Exisit(mp4Path) {
       //存在直接返回
       global.RecordCacheTime.Set(videoID, &global.RecordCacheTimeStruct{
          Time: time.Now(),
          Path: mp4Path})
       r.operFile(c, operate, mp4Path, videoID)
       return
    }
    

    在一步步的优化当中,EasyDSS变得越来越符合大家的使用习惯,其功能也日益丰富,满足了大多数项目场景的使用需求。EasyDSS也是支持二次开发,我们提供编程语言无关化的RESTfulAPI接口,可以很简单地进行二次开发和应用。

  • 相关阅读:
    Django入门
    html语言
    elasticsearch基本接口使用
    linux随笔
    mysql基础操作
    mysql存储引擎
    MySQL字符集
    并发编程之多进程
    异常处理
    socket编程
  • 原文地址:https://www.cnblogs.com/easydss/p/14659005.html
Copyright © 2020-2023  润新知