3月28日、29日,B站、爱奇艺即将先后完成IPO。爱奇艺的招股书显示,爱奇艺依然处于亏损状态。2015 年、2016 年、2017 年三年合计亏损约 94 亿元。高昂的版权费是造成视频网站亏损的重要原因,在版权费之外,带宽费用也是一笔不菲的开支。

在优质 IP 稀缺的情况下,版权费高昂的现象一时间无法缓解。但通过技术的升级,视频网站的带宽成本能够被大幅节省。

视频边下边播场景的成本分析

我们都知道通过采用更加先进的视频编码格式,比如 H.265 ,或者使用 CDN 降低源站带宽等方式,可以实现节省带宽成本的目的。

那么除了上述的常规操作之外,还有其他方法可以降低带宽成本吗?下面我们将问题具化到边下边播的视频点播场景中一步步探究。

在边下边播的视频点播场景里,终端用户普遍具有挑选心理,不会完整观看一个视频,打开一个视频观看一段时间后,不喜欢就会关闭,继续看下一个视频,这样之前预下载的那部分视频其实是被浪费的。

如果在终端用户选择这个视频时不限速的话,一打开视频,终端设备、客户端就开始疯狂的下载视频,带宽有多大就下载多少数据。这样固然保证了终端客户的体验,但在用户切换视频的过程中,也会产生大量的额外带宽成本。因此对视频限速是一种控制带宽成本的有效方式。

码率适配限速——高效视频点播限速方式

在不影响用户体验的情况下,限制视频文件的下载速度,节省带宽成本,做到这点就可以有效减少视频点播的带宽成本。

举例来说某视频码率为 1337 Kbps,正常情况下一打开就会以超过码率十倍的速度进行下载。当视频下载 3 秒之后,我们可以对它进行码率限速,按照 1.1 倍码率进行限速,即(1337/8)*1.1 = 183 KB/s。

又拍云 CDN 平台目前视频点播文件已支持码率适配限速功能,可以自动智能分析当前视频文件传输的码率,获取视频文件的码率之后,将视频文件的下载速度控制在视频码率的 N 倍,做到节省流量成本,防止高峰期时带宽占用。(这里的 N 也即限速因子,推荐值为 1.1)

当一个视频播放时,我们可以在视频播放开始选择不限速,当播放时长超过 3 秒后,进行 1.1 倍码率限速,根据限速因子的数值不同,可以节省 20% ~ 30% 不等的流量成本。

△ 码率适配限速开启前后对比

开启码率适配限速功能

登陆又拍云控制台,依次进入:服务管理 > 功能配置 > 性能优化 > 码率适配限速,再点击“管理”按钮,进入功能配置界面即可。

添加规则

进入配置界面后依次进行如下操作:

1.滑动开关:将配置界面左上角的开关由关闭状态调整为开启状态;

2.添加规则:点击配置界面右上角的“添加规则”按钮即可添加码率适配限速规则,配置界面如下图。

在规则配置界面,依次需要进行资源路径、限速策略、限速因子的配置。

  • 资源路径:也即对请求的 URI 进行匹配,匹配成功则进入限速逻辑,支持 * 通配符,例如:/mnt/download/*.mp4;
  • 限速策略:表示从某个时刻(下载时间,不是播放时间)开始执行限速策略,支持秒和分钟配置,默认推荐 3 秒;
  • 限速因子:用来控制 mp4 文件下载限速的因子,指定下载速度为视频码率的多少倍,推荐值为 1.1。

编辑、删除规则

当需要对规则进行编辑或者删除时,可以在操作区域点击【编辑】、【删除】按钮即可编辑和删除规则。

了解详情:码率适配限速

推荐阅读:

如何通过又拍云WebP兼容方案来减少图片体积?

 

"码率适配限速”,如何使带宽成本减少30%?的更多相关文章

  1. 【原】一张图片优化5K的带宽成本

    上周,我参加了公司的一门课程<网站性能优化>,讲师提出了一个问题:一张图片优化后减少5K,1年内可以大概省下多少宽带成本呢?非常好奇,仔细听完讲师分析,计算出来的数据让小伙伴们都惊呆了,仅 ...

  2. 一张图片优化5k带来的带宽成本及其前端页面的优化方法

    上周,我参加了公司的一门课程<网站性能优化>,讲师提出了一个问题:一张图片优化后减少5K,1年内可以大概省下多少宽带成本呢?非常好奇,仔细听完讲师分析,计算出来的数据让小伙伴们都惊呆了,仅 ...

  3. 怎样使java程序减少内存占用(转载)

    本文收集网上关于减少java程序占用的一些小知识点 (1)别用new Boolean(). 在很多场景中Boolean类型是必须的,比如JDBC中boolean类型的set与get都是通过Boolea ...

  4. ASP渲染下拉框使时间依次减少

    <%    x=year(now())    y=year(now())-1    Do While  y>2002%><li><a href="#201 ...

  5. ROS-PCQ基于IP的限速(总带宽上下行5M)

    /ip firewall mangle add chain=forward src-address=192.168.0.0/16 \ action=mark-connection new-connec ...

  6. 又拍云张聪:OpenResty 动态流控的几种姿势

    2019 年 1 月 12 日,由又拍云.OpenResty 中国社区主办的 OpenResty × Open Talk 全国巡回沙龙·深圳站圆满结束,又拍云首席架构师张聪在活动上做了< Ope ...

  7. 第一次亲密接触——二狗子初识 CDN

    二狗子是国内知名XXX大学的在校学生,作为一名编程爱好者,他利用业余时间搭建了一个网站,把平时的学习心得和技术分享全都 PO 在自己的网站上.渐渐地,二狗子的网站因为文章质量高,技术分享全面,受到了很 ...

  8. 阿里云朱照远: AI打开新视界 8K时代已来!

    2018年4月11-12日,2018亚太CDN峰会在北京隆重召开,大会由亚太CDN领袖论坛.电视云论坛.短视频论坛.视频云论坛.新技术论坛.运营商论坛.国际云论坛等7大部分组成.在亚太CDN领袖峰会上 ...

  9. 【省带宽、压成本专题】深入解析 H.265 编码模式,带你了解 Apple 全面推进 H.265 的原因

    过去几年,又拍云一直在点播.直播等视频应用方面潜心钻研,取得了不俗的成果.我们结合点播.直播.短视频等业务中的用户场景,推出了"省带宽.压成本"系列文章,从编码技术.网络架构等角度 ...

随机推荐

  1. uva 1583

    枚举1~100000把所有数的最小generators记录下来,直接查表即可. AC代码: #include<cstdio> #include<cstring> #includ ...

  2. Luogu P1092 虫食算

    题目描述 所谓虫食算,就是原先的算式中有一部分被虫子啃掉了,需要我们根据剩下的数字来判定被啃掉的字母.来看一个简单的例子: 43#9865#045 +8468#6633 44445509678 其中# ...

  3. swap分区的扩展

    Linux中Swap(即:交换分区),类似于Windows的虚拟内存,就是当内存不足的时候,把一部分硬盘空间虚拟成内存使用,从而解决内存容量不足的情况.swap分区在非高内存的服务器上必不可少,但是s ...

  4. linux 邮件服务器

    邮件通信系统协议及概念:软件角色:MUA:邮件客户端MTA:邮件服务端MDA:邮件服务端模块邮件客户端:Mail User Agent,邮件用户代理邮件服务端:Mail Transfer Agent, ...

  5. 创建基于MailKit和MimeKit的.NET基础邮件服务

    邮件服务是一般的系统都会拥有和需要的功能,但是对于.NET项目来说,邮件服务的创建和使用会较为的麻烦..NET对于邮件功能提供了System.Net.Mail用于创建邮件服务,该基础服务提供邮件的基础 ...

  6. Error Code: 1414. OUT or INOUT argument 2 for routine company.new_procedure is not a variable or NEW

    1.错误描述 16:27:36 call new_procedure(20150112,1) Error Code: 1414. OUT or INOUT argument 2 for routine ...

  7. freemarker之数组

    freemarker之数组 1.设计思路 (1)声明一个数组 (2)打印数组中的元素 2.设计源码 <#--freemarker数组--> <#assign nums=[12,34, ...

  8. linux2.6硬盘扇区直接读写程序

    下面的程序可以在linux2.6内核直接读写硬盘的指定扇区,也是根据网上一个朋友的做法做了修改的: 有两个不是很明白的地方就是:1.bd_claim函数的使用,这个是个递归函数,像是匹配内存指针和设备 ...

  9. sea.js介绍

    网址:http://seajs.org/docs/ SeaJS是一个遵循CommonJS规范的JavaScript模块加载框架,可以实现JavaScript的模块化开发及加载机制.与jQuery等Ja ...

  10. Caused by: java.lang.NoClassDefFoundError: org/hibernate/cfg/Configuration

    1.错误描述 usage: java org.apache.catalina.startup.Catalina [ -config {pathname} ] [ -nonaming ] { -help ...