前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >城市智慧化视频监控图像分析平台EasyCVR视频通道停止播放后还会占用带宽吗?

城市智慧化视频监控图像分析平台EasyCVR视频通道停止播放后还会占用带宽吗?

原创
作者头像
TSINGSEE青犀视频
修改2021-04-02 14:25:50
9560
修改2021-04-02 14:25:50
举报
文章被收录于专栏:TSINGSEE青犀视频

所有了解视频类应用的人都知道,视频网站的带宽才是重中之重。在线视频播放网站每天都会产生巨额的流量,每个客户都会占据非常大的带宽。如果带宽不够就会出现用户播放卡顿,甚至网站崩溃掉线的情况,而带宽过大则会造成非常高额的成本浪费。为了让用户更直观便捷确认视频播放时所占用的带宽,我们在EasyCVR视频平台的首页添加了带宽占用率的显示。

有时EasyCVR播放视频时会出现当用户停止播放的时候,页面带宽还是显示占用的情况。

播放前的带宽占用如下:

页面点击播放的时候带宽占用如下,可以看到带宽明显消耗许多:

当用户停止播放的时候带宽仍然没有降下来:

通过抓包分析我们发现,当用户不在播放的时候,调用的停止接口并没有生效,因此实际服务后台仍在进行视频传输。

添加如下代码,调用停流接口

代码语言:javascript
复制
if len(urlarr) >= 2 {
       namearr := strings.Split(urlarr[1], ".")
       if streamType == "playback" {
              streamurl := fmt.Sprintf("playback:%s:%s:%s", sipDev.DeviceID, gbchannels[0].ToSIPChannel().DeviceID, namearr[0])
              locker := gbchannels[0].Lock()
              if locker == nil {
                     err = fmt.Errorf("channel[%s:%s] is busy", gbchannels[0].DeviceID, gbchannels[0].ID)
                     return
              }
              defer locker.Unlock()
              uas.StreamStop(streamurl)

再次抓包分析,当用户停止播放过后,平台会主动发起停止播放接口,如此就不会再占用带宽了。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档