阿里oss视频流出流量计算

阿里oss视频流出流量计算
  这个需求源于前几天老板问我:在阿里oss上,1080p高清视频,播放1分钟,存储和下载的价格分别是多少。因为之后要推广系统使用用户人数,所以就很关心流量费用。存储费用相对便宜很多,本文只讲下行流出流量算法。
  同一个问题我问了阿里客服两次,都说无法预估。同时,我找了阿里第三方服务商问,他们的回复是:
如果按照1080p的视频,时长一分钟来算。1个视频存储大概需要100M的空间。观看一次大概需要27M的流量。   

  问他们清晰度和流量关系换算,找了个类似这样的对照表给我

   当我以为这样就可以交差的时候,老板直接丢了个51.12MB的视频去验证

视频具体信息如下:

 

  早前我们买了个1T下行流量包,打完折是4090元/1024GB,折算下来3.99元/GB。然后他用这个视频大小,用着我听不太懂的一些换算,按10000个播放终端,每个终端播放2次,竟然算下来需要花费差不多2千块。可能觉得心里还是没底,最后叫我丢个视频到oss,看看具体消费情况。

  今天为止,我算是搞清楚具体的算法(开启我的第三次问阿里客服,想着有视频大小,有账单,问题肯定够具体,应该能回我)

纯粹给大家科普~~~

1、测试过程:

(1)oss建一个bucket,只放这个51.12MB的mp4视频

(2)在浏览器上播放该视频(用oss生成的地址),直到6分多钟完全播完。

2、具体算法

 

 他们给出的算法是

实际的计费流量用的是oss访问日志统计里的流量,下行流量统计不算http请求头只算body大小,可以根据日志中的响应统response_body_length计流量大小 

 这个response_body_length 的值需要开启oss的实时日志,通过sql去查

 

 具体sql如下:

* and bucket: {你的bucket名字} and GetObject | select COUNT(1) as df, sum("response_body_length") as result

 

 

这个result的单位是B,除以3个1024就是账单里的 0.0504GB ,也就是

54127075/1024/1024/1024= 0.0504GB

账单里的付费金额,要根据闲时和忙时计费去算。

 我们用的是oss的标准存储,但是我测试的时候是下午3~4点,也就是忙时的0.50元/GB:

 

   所以费用就是: 0.0504 GB * 0.5元/GB = 0.0252 元了

  回到上面的问题,假如10000个终端,每个终端播放2次这个51.12MB的视频,则实际流量是:0.0504 * 10000 * 2 = 1008G;费用是 1008 * 0.5 = 504元。

  特别要注意:每次播放外网流出用量不一定相等!

  我第一次测试的时候(那会不知道算法,没开oss的日志服务,所以验证不了阿里给的换算公式,害我需要再播放一次),这个51.12MB的视频播放完,用了0.05654GB,第二次反而少了。怎么说呢,既然每次都不一样,其实还真的只能预估。想想阿里反复给我说无法预估,确实也没有骗我。估计跟用户网络情况、视频所在的环境网络有点关系。

  除此,阿里给的那条查询sql,底层对我们用户来说是未知的,所以也只能说是估算了~

 

 

posted @ 2023-02-03 21:47  windysai  阅读(833)  评论(0编辑  收藏  举报