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

视频拖拽

最近更新时间2023.08.09 10:04:29

首次发布时间2022.05.18 20:43:37

本文档介绍火山引擎内容分发网络提供的视频拖拽功能。

视频拖拽概述

视频拖拽功能常用于视频点播的场景中。在视频播放时,用户通过拖拽播放器的进度条控制视频播放的时间点。当用户将进度条拖拽到某个时间点时,如果该时间点的视频内容没有在本地缓存,视频播放器会重新向服务端发起视频内容请求,并通过请求中的 start 和 end 参数指定视频开始播放和结束播放的时间点。

比如视频播放器发出以下请求,请求的是 15~120秒的视频片段。

  • http://www.example.com/volcano.mp4?start=15&end=120

当用户拖拽进度条时,一般情况下请求中只有 start 参数,没有 end 参数,表示请求的视频是从 start 开始一直到视频末尾。但是也有可能有些视频服务商为了节省带宽,在用户拖拽进度条时,只加载比如 5 分钟的数据。这种情况下,start 和 end 参数就会同时出现。

内容分发网络对视频拖拽的支持

当您的业务接入内容分发网络后,缓存节点可以直接响应用户的视频拖拽操作。当前支持可拖拽的视频文件格式是 MP4 和 FLV。关于 start 和 end 参数的说明以及内容分发网络处理请求的方式,参见参数说明。

当视频播放器向内容分发网络发送一个带 start 和 end 的视频内容请求时,如果该视频文件没有缓存,缓存节点会向源站请求视频文件并缓存该文件。然后缓存节点根据用户请求的视频段,将相应的视频部分传输给用户。

在缓存该视频文件时,缓存节点会删除 start 和 end 参数。这样其他用户在请求该视频时,即使指定不同的 start 和 end 参数值,都能命中缓存。

操作步骤

  1. 登录 火山引擎内容分发网络控制台
  2. 在左侧导航栏,点击 域名管理
  3. 域名管理 页面,找到需要配置的域名。
  4. 操作 列,点击 管理
  5. 在域名页面上,点击 内容优化 标签页。
  6. 在页面右上方,点击 编辑配置
  7. 视频拖拽 下方,设置 状态开启
  8. 在页面右上方,点击 提交编辑
    alt

参数说明

  • start 和 end 参数区分大小写。比如请求是 http://www.example.com/volcano.mp4?Start=15。此时,Start 参数不会被识别为视频拖拽相关的参数。
  • 如果请求中没有 start 参数,表示从视频开头开始获取。如果没有 end 参数,表示获取到视频末尾。
  • MP4 和 FLV 文件格式的相关参数说明如下:
文件格式
Meta 信息
start 参数
end 参数
请求示例

MP4

源站视频的 metadata 信息必须放在文件头部。不支持 metadata 信息放在尾部的视频。

表示视频的开始时间。单位是秒,精确到毫秒,也就是小数点后 3 位。如果 start 参数表示的时间点不是关键帧,则获取参数表示的时间点的前一个关键帧。

表示视频的结束时间。单位是秒,精确到毫秒,也就是小数点后 3 位。如果 end 参数表示的时间点不是关键帧,则获取参数表示的时间点的前一个关键帧。

http://www.example.com/volcano.mp4?start=5.013
该示例表示从第 5.013 秒开始播放。

FLV

源站视频必须带有 metadata 信息。

表示视频开始位置的字节。如果该字节所在位置不是关键帧,则获取该字节所在位置的前一个关键帧。

表示视频结束位置的字节。如果该字节所在位置不是关键帧,则获取该字节所在位置的前一个关键帧。

http://www.example.com/volcano.flv?start=5
该示例表示从第 5 个字节开始播放。

什么是关键帧

关键帧是视频中用于存储图片的帧。关键帧定义了每个播放画面的开始时间点,其余帧都是通过计算关键帧的位置获得的。