火山引擎内容分发网络(CDN)提供了 "视频拖拽" 功能,可以处理特定场景下播放器发送的视频分片请求。参见 前提条件。
播放器播放的视频文件的格式是 MP4 或者 FLV。
播放器通过在请求 URL 中使用 start
和 end
查询参数来指定请求的视频分片。例如,以下请求 URL 表示播放器请求的是从第 15 秒开始,第 120 秒结束的视频分片。
http://www.example.com/4K_demo.mp4?start=15.000&end=120.000
登录 火山引擎内容分发网络控制台。
在左侧导航栏,点击 域名管理。
在 域名管理 页面,找到需要配置的域名。
在 操作 列,点击 管理。
在域名页面上,点击 内容优化 标签页。
在页面右上方,点击 编辑配置。
在 视频拖拽 下方,设置 状态 为启用。
在页面右上方,点击 提交编辑。
视频格式 | Metadata | start/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 |
start
和 end
参数名称区分大小写。例如,CDN 收到了一个请求 URL 是 http://www.example.com/sample.mp4?Start=15
的视频分片请求。由于 Start
参数的大小写不正确,CDN 返回的是完整的 sample.mp4
,而不是指定的视频分片。
如果 start
或 end
指定位置的视频帧不是关键帧,则 CDN 将从视频的早些时间中获取离 start
或 end
最近的关键帧作为实际的开始和结束时间。
视频拖拽是现代视频播放器普遍支持的功能。在视频播放时,用户可以拖动播放器中的进度条改变播放时间点。当用户拖动进度条到一个时间点时,播放器会向服务器请求从该时间点开始的一个视频分片,而不是请求完整的视频。这样,在用户观看视频时,无需等待完整视频文件的下载,而是在播放器获得视频分片后就可以从相应时间点开始观看视频了,用户体验好。
说明
当用户在播放器中首次打开一个视频时,播放器是向服务器请求从视频开头开始的一个视频分片。
在视频播放过程中,播放器会在当前视频分片播放结束前,提前向服务器请求下一个视频分片。
当您的场景满足 前提条件,并且您通过 CDN 来分发视频,CDN 会将播放器的视频分片请求处理成一个用户 Range 请求。基于缓存中的完整视频文件,CDN 可以准确返回播放器请求的视频分片。
在 CDN 收到播放器发送的视频分片请求时,如果 CDN 还未缓存完整的视频文件或者缓存的视频文件已过期,CDN 会先向源站请求完整的视频文件。因此,对于发送该视频分片请求的播放器,需要等待较长的时间才能收到 CDN 的响应。要避免这个问题,对于热门的视频,推荐您使用 CDN 提供的 预热 功能将这些视频文件提前缓存到 CDN 节点。
视频中任意一个平滑过渡是由两个关键帧定义的。这两个关键帧分别记录了该平滑过渡的开始状态和结束状态。对于 MP4 和 FLV 格式的视频文件,其元数据中指定了哪些视频帧是关键帧。
start
参数,也不包含 end
参数。start
参数,也不包含 end
参数。