视频处理

在音视频点播场景下,ESA的视频处理功能可以通过识别播放位置的最近前一个关键帧,以加载用户希望播放的视频片段,从而实现无缝切换的播放体验。

前提条件

  • 源站服务器支持HTTP Range请求。

  • 查询字符串需要设置为全部保留

新增视频处理规则

  1. ESA控制台,选择站点管理,在站点列单击目标站点。

  2. 在左侧导航栏,选择规则 > 内容优化规则

  3. 选择视频处理页签,单击新增规则,填写规则名称

  4. 当请求匹配以下规则时...区域设置要匹配的用户请求特征,具体配置规则请参见规则表达式的组成

  5. 拖拽播放区域,单击配置,打开状态开关,根据业务需求填入对应的参数。

    image

    例如:FLV文件的URL请求为www.aliyun.com/test.flv?start=10,服务端会响应从第10字节前一个关键帧的数据。 拖拽播放功能支持的文件和URL格式如下表所示。

    文件格式

    Meta信息

    参数

    举例

    MP4

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

    start参数表示时间(秒),最多支持三位小数。例如start=1.01,表示1.01秒开始播放。

    • start不是关键帧,ESA会自动定位到前一个关键帧。

    • start是关键帧,ESA会自动定位到当前关键帧。

    自定义MP4参数说明:

    1. 开始参数默认为start,结束参数默认为end

    2. 自定义参数只能使用大小写字母、数字及下划线_。例如:123、aabbAABB、aa_BB123。

    URL请求为domain/video.mp4?start=10,表示从第10秒开始播放视频。

    FLV

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

    start参数表示字节,不支持小数,虽然参数可以写小数,但是拖拽模块会向下取整把小数转为正整数。

    FLV按时间拖拽:则开始和结束参数的单位为秒。

    按字节拖拽:按字节寻址适合用于精确的数据处理或处理原始视频数据,而按秒寻址则通过直接跳转到请求的精确秒数提供用户友好的体验。

    • start不是关键帧,ESA会自动定位到前一个关键帧。

    • start是关键帧,ESA会自动定位到当前关键帧。

    拖拽播放自定义参数说明:

    1. 开始参数默认为start,结束参数默认为end

    2. 自定义参数只能使用大小写字母、数字及下划线_。例如:123、aabbAABB、aa_BB123。

    URL请求为domain/video.flv?start=10,表示从第10字节的前一个关键帧开始播放视频。

拖拽参数处理说明

以时间拖拽为例,拖拽参数为默认的startend参数,参数取值在不同场景下处理逻辑说明如下:

MP4文件请求

start/end取值

示例

拖拽处理逻辑

无效start,无效end

start=foo&end=bar

忽略拖拽参数,响应完整视频。

有效start,无效end

start=10

拖拽处理10文件时长。

无效start,有效end

end=10

拖拽处理0-10

有效start,有效end

start=0&end=10

拖拽处理0-10

startend同时为0

start=0&end=0

忽略拖拽参数,响应完整视频。

start大于end

start=10&end=0

拖拽处理10文件时长。

start等于end

start=10&end=10

拖拽处理10文件时长。

start大于视频时长

start大于视频时长

返回400

FLV文件请求

start/end取值

示例

拖拽处理逻辑

无效start,无效end

start=foo&end=bar

忽略拖拽参数,响应完整视频。

有效start,无效end

start=10

拖拽处理10文件时长。

无效start,有效end

end=10

拖拽处理0-10

有效start,有效end

start=0&end=10

拖拽处理0-10

startend同时为0

start=0&end=0

忽略拖拽参数,响应完整视频。

start大于end

start=10&end=0

拖拽处理10文件长度。

start等于end

start=10&end=10

拖拽处理10文件长度。

start大于视频时长

start大于视频时长

返回完整视频。