You need to enable JavaScript to run this app.
导航

CDN 加速视频

最近更新时间2024.01.31 10:43:30

首次发布时间2022.02.23 18:12:05

如果您的网站内容以视频点播内容为主,您可以使用火山引擎 CDN 为网站做加速,以提高用户观看视频的流畅度,同时可帮助网站增强对视频资源的保护。本文介绍使用 CDN 加速视频类网站推荐的方法。

一. 前提条件
  • 您已开通火山引擎 CDN 服务,如果未开通,请先前往 CDN 开通页 进行开通。
  • 您已经拥有稳定运行的业务服务器(即源站)和已备案的加速域名。
二. 业务场景
  • 加速域名:videos.example.com。
  • 业务内容:视频点播,音频内容为主。
  • 服务区域:中国内地。

业务诉求:

  • 减少回源流量消耗;
  • 提升视频的首播时间和流畅度。
  • 需要使用 HTTPS 加密服务保障访问数据安全。
  • 需要支持防盗链策略,防止资源被恶意盗链,流量被恶意盗刷。
三. 推荐配置

网站需要加速的内容如果除了音视频业务,如果有其他网页或者图片业务,可将业务进行拆分后再进入如下步骤,各使用一个域名选择不同业务的加速类型加速效果更佳,例如:

  • 音视频业务:videos.example.com
  • 图片业务:pics.example.com

域名操作入口:

  • 登录火山引擎 内容分发网络
  • 域名新增:在左侧导航栏,点击 域名管理
  • 在域名管理页面,点击 新增
  • 更多详情可前往 快速入门

域名新增完成后,可在左侧导航栏,点击 域名管理。在域名列表页,找到待配置的域名,在 操作 列上,点击 管理 进入域名配置页。然后点击 编辑,进入域名配置编辑页面。

alt

在配置页进行配置修改或开关开启、关闭操作后,您还必须点击右上方 提交编辑,配置才能生效。

域名支持多配置项同时修改,一次提交。下文为根据点播业务场景,推荐的配置项操作指南。

3.1 提高命中率,减少回源

在配置页,点击缓存配置,可通过以下维度提升文件在 CDN 的命中率,减少回源带宽。

3.1.1 配置缓存过期时间

  • 长期不更新的音视频资源,建议缓存30天以上,例如:mp3,mp4。
  • 若加速业务属于 m3u8 点播类,针对 ts 文件可根据实际业务更新频率设置缓存时间。
  • 常见的音视频类文件后缀有:
文件类型
文件格式
MPEG 视频
MP4mpegmpg3pg
微软视频
aviwmvasfasx
Real Player
rmrmvb
Media
ogg
Apple 视频
movm4v
其他视频
datmkvvobflvf4v
音频格式
wmamp3

配置示例
MP4,MP3 类文件缓存 1 年, jpg类文件缓存 30 天。其他文件缓存行为遵循源站响应中 Cache-Control 和 Expire 头部的指示。
alt

3.1.2 配置去问号参数缓存

在如下情况配置去问号参数缓存,可有效提高缓存命中率:

  • URL 中?后的参数作为鉴权用途
  • URL 中?后的参数变化与本身资源内容无关

配置示例
全部文件去问号参数缓存,带参数回源。
alt

3.1.3 开启 Range 回源

若源站支持 Range 请求,通过在 CDN 开启回源 Range,可有效降低回源带宽。

注意:当开启 Range 回源时,CDN 回源的请求是分片回源分片缓存。如果将 range 回源状态从开启调整为关闭时,无论本地是否已有部分 Range 的缓存,CDN 都会重新回源拉取完整文件,此时回源带宽将会增加。

配置示例
在配置页,点击 回源配置,开启 Range 回源。
alt

3.2 保障访问数据安全

配置 HTTPS 证书,将终端用户和 CDN 之间的通信进行加密,可保障访问数据安全。开启HTTPS的同时,火山 CDN 会默认帮您开启HTTP/2 来提升 web 性能,减少网络延迟。同时也会默认帮您开启 HTTP 和 HTTPS 共享缓存来减少回源,提升命中率。

配置操作

  • 在配置页,点击 HTTPS 配置,设置 状态开启,在 服务授权 处,点击 授权
    alt
  • 如果您的加速域名暂时无证书,可在 火山引擎证书中心申请或购买。
  • 如果您在证书中心已有可用证书,可以直接选择证书。
  • 如果您在证书中心无可用证书,可点击 上传证书,证书上传后,将会自动在证书中心托管。
    alt
  • 开启强制跳转 HTTPS :用户访问为 HTTP 请求时,会将其重定向为 HTTPS 请求,并进行后续响应。
    alt

3.3 防止恶意盗链

在配置页,点击访问控制,可配合客户端请求支持对 URL 鉴权的功能来防止资源被恶意盗链,流量被恶意盗刷的情况。火山引擎提供 5 种鉴权方式,可自行针对业务需求选择一种进行配置。

注意事项:

  • URL 鉴权在 CDN 节点侧进行,无需服务端进行改造;
  • 开启 URL 鉴权后,在用户端发起访问时,需要按约定携带签名信息,否则会导致无法访问;
  • 通过 CDN 鉴权校验的请求,在回源时会去掉域名鉴权相关的参数或加密路径。

3.3.1 A 类鉴权示例

访问示例:https://www.volcengine.com/product/cdn?sign=1620291453-RGjpOiCONz-0-a8054e3070d32f4c2ba92cf1e8afc66c
回源示例:https://www.volcengine.com/product/cdn
若域名下所有资源的访问为格式:scheme://host/path?sign=timestamp-rand-uid-md5hash(path-timestamp-rand-uid-key),回源格式:scheme://host/path,则可开启 A 类鉴权配置。

字段说明:

  • scheme: 请求协议;
  • host:用户访问的加速域名;
  • path:请求路径,从发起的请求中截取,以 "/" 开头;
  • timestamp:请求时间,十进制 UNIX 时间;
  • rand:随机字符串,由 1 ~ 100 位大小写字母与数字组成;
  • uid:默认为 0;
  • key:与 CDN 服务端约定的秘钥,主 KEY 与备 KEY 均可;
  • sign:请求鉴权的参数,可自定义参数名。

开启 A 类型后,需要配置的内容如下:
alt

3.3.2 B 类鉴权示例

访问示例:https://www.volcengine.com/202105061700/2a76bb4719ab4beb77b4746b9c984a1d/product/cdn?dfrfr=gtgbnh&abc=45gbg
回源示例:https://www.volcengine.com/product/cdn?dfrfr=gtgbnh&abc=45gbg
若域名下所有资源的访问为格式:scheme://host/timestamp/md5(key + timestamp + path)/path(?query),回源格式为:scheme://host/path(?query),则可开启 B 类鉴权配置。

字段说明 :

  • scheme: 请求协议;
  • host:用户访问的加速域名;
  • timestamp :请求时间,格式为 YYYYMMDDHHMM,如 202107281500;
  • key :与 CDN 服务端约定的秘钥,主 KEY 与备 KEY 均可;
  • path :请求路径,从发起的请求中截取,以 "/" 开头;
  • sign:请求鉴权的参数,可自定义参数名。

开启 B 类型后,需要配置的内容如下:
alt

3.3.3 C 类鉴权示例

访问示例:https://www.volcengine.com/b1725c0a6120092863001cd8004c4adb/6093AF7D/product/cdn?dfrfr=gtgbnh&abc=45gbg
回源示例:https://www.volcengine.com/product/cdn?dfrfr=gtgbnh&abc=45gbg
若域名下所有资源的访问为格式:scheme://host/md5(key + path + timestamp)/timestamp/path(?query),回源格式为:scheme://host/path(?query),则可开启 C 类鉴权配置。

字段说明 :

  • scheme: 请求协议;
  • host:用户访问的加速域名;
  • timestamp :请求时间,格式为 YYYYMMDDHHMM,如 202107281500;
  • key :与 CDN 服务端约定的秘钥,主 KEY 与备 KEY 均可;
  • path :请求路径,从发起的请求中截取,以 "/" 开头;
  • sign:请求鉴权的参数,可自定义参数名。

开启 C 类型后,需要配置的内容如下:
alt

3.3.4 D 类鉴权示例

访问示例:https://www.volcengine.com/product/cdn?sign=e954e253c33634b510443af72406600f&t=1620291453&dfrfr=gtgbnh&abc=45gbg
回源示例:https://www.volcengine.com/product/cdn?dfrfr=gtgbnh&abc=45gbg
若域名下所有资源的访问为格式:scheme://host/path?sign=md5(key+path+timestamp)&t=timestamp&query,回源格式为:scheme://host/path(?query),则可开启 D 类鉴权配置。

字段说明 :

  • scheme: 请求协议;
  • host:用户访问的加速域名;
  • timestamp :请求时间,格式为 YYYYMMDDHHMM,如 202107281500;
  • key :与 CDN 服务端约定的秘钥,主 KEY 与备 KEY 均可;
  • path :请求路径,从发起的请求中截取,以 "/" 开头;
  • sign:请求鉴权的参数,可自定义参数名。

开启 D 类型后,需要配置的内容如下:
alt

3.3.5 E 类鉴权示例

访问示例:https://www.volcengine.com/product/20210905/epcII9CC/922kb/hls/index.m3u8?wsSecret=86ffc1ab4e2c3f1e4e265e2354d1a250&wsTime=1669104515&abc=xFRVFg
回源示例:https://www.volcengine.com/product/20210905/epcII9CC/922kb/hls/index.m3u8?abc=xFRVFg
若域名下所有资源的访问为格式:scheme://host/path?sign=md5(key+path+timestamp+IP+UA)&t=timestamp&query,回源格式为:scheme://host/path(?query),则可开启 E 类鉴权配置。

字段说明 :

  • scheme: 请求协议;
  • host:用户访问的加速域名;
  • timestamp:请求时间,格式为 YYYYMMDDHHMM,如 202107281500;
  • key:与 CDN 服务端约定的秘钥,主 KEY 与备 KEY 均可;
  • path:请求路径,从发起的请求中截取,以 "/" 开头;
  • sign:请求鉴权的参数,可自定义参数名。

开启 E 类型后,需要配置的内容如下:
alt

3.4. 提升视频首播和流畅度

3.4.1 断点续传

视频传输过程中支持断点续传,可提升视频传输的速度。CDN 通过默认支持客户端 Range 请求的方式支持续传功能。

3.4.2 资源预热

域名配置完成后,可将新的资源通过预热操作提前将源站得文件预分发到 CDN 上,提升视频的首播时间和流畅度。

预热操作

  • 登录火山引擎 内容分发网络
  • 域名新增:在左侧导航栏,点击 刷新预热,进入文件预热。

预热可以选择手动输入 URL 和上传文件两种,单账号每日可提交的 URL 预热额度 1000 个。预热的URL需要通过换行符进行分隔。将需要预热的资源链接填充入对应位置,提交即可。如果域名有配置 URL 鉴权,在预热时提交的资源链接需要是解密后的 URL 。
image.png

在操作记录页面,可筛选历史提交的预热任务进行查看:

  • 执行中:提交的任务仍在处理中,请耐心等待
  • 已完成:任务已完成,全网已生效
  • 执行失败:任务执行遇到问题,若为预热任务,可能为源站响应异常导致,请检查源站是否能正常响应内容。

image.png