You need to enable JavaScript to run this app.
导航
视频拖拽
最近更新时间:2024.09.18 16:27:22首次发布时间:2022.05.18 20:43:37

火山引擎内容分发网络(CDN)提供了 "视频拖拽" 功能,可以处理特定场景下播放器发送的视频分片请求。参见 前提条件

前提条件

  • 播放器播放的视频文件的格式是 MP4 或者 FLV。

  • 播放器通过在请求 URL 中使用 startend 查询参数来指定请求的视频分片。例如,以下请求 URL 表示播放器请求的是从第 15 秒开始,第 120 秒结束的视频分片。

    • http://www.example.com/4K_demo.mp4?start=15.000&end=120.000

操作步骤

  1. 登录 火山引擎内容分发网络控制台

  2. 在左侧导航栏,点击 域名管理

  3. 域名管理 页面,找到需要配置的域名。

  4. 操作 列,点击 管理

  5. 在域名页面上,点击 内容优化 标签页。

  6. 在页面右上方,点击 编辑配置

  7. 视频拖拽 下方,设置 状态 为启用。

  8. 在页面右上方,点击 提交编辑

alt

start/end 参数说明和视频文件的 Metadata 要求

视频格式Metadatastart/end 参数请求 URL 示例
MP4在源站上,MP4 视频文件必须包含 Metadata,并且 Metadata 必须出现在文件的开头。表示视频的开始和结束时间,单位是秒,精确到毫秒。http://www.example.com/volcano.mp4?start=5.013&end=12.123
FLV在源站上,FLV 视频文件必须包含 Metadata。表示开始和结束位置所对应视频文件中的字节。http://www.example.com/volcano.flv?start=5&end=145
  • startend 参数名称区分大小写。例如,CDN 收到了一个请求 URL 是 http://www.example.com/sample.mp4?Start=15 的视频分片请求。由于 Start参数的大小写不正确,CDN 返回的是完整的 sample.mp4,而不是指定的视频分片。

  • 如果 startend 指定位置的视频帧不是关键帧,则 CDN 将从视频的早些时间中获取离 startend 最近的关键帧作为实际的开始和结束时间。

更多信息

视频拖拽概述

视频拖拽是现代视频播放器普遍支持的功能。在视频播放时,用户可以拖动播放器中的进度条改变播放时间点。当用户拖动进度条到一个时间点时,播放器会向服务器请求从该时间点开始的一个视频分片,而不是请求完整的视频。这样,在用户观看视频时,无需等待完整视频文件的下载,而是在播放器获得视频分片后就可以从相应时间点开始观看视频了,用户体验好。

说明

  • 当用户在播放器中首次打开一个视频时,播放器是向服务器请求从视频开头开始的一个视频分片。

  • 在视频播放过程中,播放器会在当前视频分片播放结束前,提前向服务器请求下一个视频分片。

CDN 如何处理播放器的视频分片请求

当您的场景满足 前提条件,并且您通过 CDN 来分发视频,CDN 会将播放器的视频分片请求处理成一个用户 Range 请求。基于缓存中的完整视频文件,CDN 可以准确返回播放器请求的视频分片。

在 CDN 收到播放器发送的视频分片请求时,如果 CDN 还未缓存完整的视频文件或者缓存的视频文件已过期,CDN 会先向源站请求完整的视频文件。因此,对于发送该视频分片请求的播放器,需要等待较长的时间才能收到 CDN 的响应。要避免这个问题,对于热门的视频,推荐您使用 CDN 提供的 预热 功能将这些视频文件提前缓存到 CDN 节点。

什么是关键帧

视频中任意一个平滑过渡是由两个关键帧定义的。这两个关键帧分别记录了该平滑过渡的开始状态和结束状态。对于 MP4 和 FLV 格式的视频文件,其元数据中指定了哪些视频帧是关键帧。

其他信息

  • 在 CDN 缓存视频文件时,文件的缓存键中既不包含 start 参数,也不包含 end 参数。
  • 在 CDN 向源站请求完整视频文件时,回源请求中既不包含 start 参数,也不包含 end 参数。