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

TSINGSEE青犀视频团队完成了EasyDSS录像下载功能,但高访问量可能导致服务器CPU过高。为解决此问题,提出了缓存策略,预先生成MP4文件并存储在缓存中,避免重复转码,从而减轻服务器压力。通过这种方式,EasyDSS的性能得到了优化,更好地满足了用户需求和项目场景的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

经过一段时间的攻克,目前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接口,可以很简单地进行二次开发和应用。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值