搜索本产品文档关键词
设置视频拖拽
所有文档
menu
没有找到结果,请重新输入

内容分发网络 CDN

设置视频拖拽

百度云支持对flv与mp4伪流视频的拖拽功能——视频进度条拖拽,开启拖拽可降低回源率,提升速度。本接口用于设置视频拖拽的参数。(注意:此接口为全量接口,设置时需要将已有的设置一并写入,否则原有配置会被覆盖。)

原理简介

  • MP4

    百度智能云CDN支持MP4文件的伪流(pseudo-streaming)播放,通常这些文件拓展名为.mp4,.m4v,.m4a。

    在一个典型的Flash播放器中(不同播放器可能不同),如果用户拖动进度条,播放器会发送一个HTTP(S)请求,并在该请求的查询参数中带有指定时间的参数(通常参数名为start,单位为秒),服务器响应以该时间开始的视频流。例如:http://example.com/elephants_dream.mp4?start=238.88。 类似的,您还可以指定结束时间(通常参数名为end,单位为秒),服务器会响应从start到end指定范围内的视频内容。例如:http://example.com/elephants_dream.mp4?start=238.88&end=555.55

    这使得您的Flash播放器可以依靠服务器实现进度条拖动功能。

  • FLV

    百度智能云CDN同样支持Flash Video(FLV)文件的伪流(pseudo-streaming)播放,通常这些文件拓展名为.flv。

    FLV文件的伪流模式与MP4有所不同:FLV文件是通过文件字节偏移进行拖动的。

    通常情况下(不同播放器可能不同),用户在FLash播放器中播放一个FLV文件,当用户拖动进度条时,播放器会发送一个HTTPS(S)请求,并在该请求的查询参数中携带指定文件字节偏移的参数(通常参数名为start,单位为字节),服务器根据配置会响应以两种不同的内容:

    • byte模式:服务器响应以原始FLV文件从start指定字节开始的文件内容
    • byteav模式:服务器在原始FLV文件以start指定字节开始的内容前添加上第一个Video Tag和Audio Tag(通常为Metadata)作为响应,该模式由于包含Metadata使得播放器的解码参数得以重设。
      即byteav模式比byte模式要多响应两个Tag(Metadata)。
Method Path 说明
PUT /v2/domain/{domain}/config?mediaDrag 设置视频拖拽的参数

domain:CDN加速域名

请求体(Request Body)

参数 可选 类型 说明
mediaDragConf 必选 MediaDragConf 视频拖拽的设置

MediaDragConf:

参数 可选 类型 说明
mp4 可选 MediaDrag mp4类型伪流的拖拽设置,如果是取消设置,请不要带上这个字段
flv 可选 MediaDrag flv类型伪流的拖拽设置,如果是取消设置,请不要带上这个字段

MediaDrag:

参数 可选 类型 说明
fileSuffix 可选 list类型,元素类型为String 百度智能云CDN支持MP4文件的伪流(pseudo-streaming)播放,通常这些文件拓展名为.mp4,.m4v,.m4a,因此这个fileSuffix值为文件拓展名集合,如: ["mp4", "m4v", "m4a"],type为mp4,fileSuffix默认值为["mp4"];type为flv,fileSuffix默认值为["flv"]
startArgName 可选 String start参数名称,默认为“start”,您可以自定义参数名称,但是要求不能和endArgName相同
endArgName 可选 String end参数名称,默认为“end”,您可以自定义参数名称,但是要求不能和startArgName相同
dragMode 必选 string mp4类型按秒进行拖拽,flv类型按字节进行拖拽。type为flv可选择的模式为“byteAV”或”byte”;type为mp4只能是"second"模式

响应码 (Http Status Code)

HTTP Status Code 说明
200 成功
400 更新失败,参数错误等

请求示例1

PUT /v2/domain/myself.baidu.com/config?mediaDrag HTTP/1.1
Host: cdn.baidubce.com
Content-Length: 130
Content-Type: application/json

{
    "mediaDragConf":{
        "mp4":{
            "fileSuffix":[
                "mp4",
                "m4a"
            ],
            "startArgName":"startIndex",
            "dragMode":"second"
        },
        "flv":{
            "dragMode":"byteAV"
        }
    }
}

响应示例

HTTP/1.1 200 OK
Content-Type: application/json; charset=utf-8
Transfer-Encoding: chunked

{
    "status":"RUNNING"
}

请求示例2 取消flv类型伪流的拖拽设置,保持mp4类型伪流的拖拽设置不变 此时请求体中不加flv参数,但是为保持mp4类型伪流的拖拽设置不变,请求体中的mp4参数一定要为当前该domain的mp4参数值一致(当前该domain的mp4参数值可以通过查询视频拖拽接口获取)。

PUT /v2/domain/myself.baidu.com/config?mediaDrag HTTP/1.1
Host: cdn.baidubce.com
Content-Length: 130
Content-Type: application/json

{
    "mediaDragConf": {
        "mp4": {
            "fileSuffix": [
                "mp4",
                "m4a"
            ],
            "startArgName": "startIndex",
            "dragMode": "second"
        }
    }
}

响应示例

HTTP/1.1 200 OK
Content-Type: application/json; charset=utf-8
Transfer-Encoding: chunked

{
    "status":"RUNNING"
}

请求示例3 修改mp4类型伪流的拖拽设置的dragMode设置项,保持flv类型伪流的拖拽设置不变 此时请求体中mp4参数的dragMode设置为目标值,mp4的其余参数保持和当前该domain的对应参数一致,否值会被覆盖为默认值。请求体中的flv参数一定要为当前该domain的mp4参数值一致)。

PUT /v2/domain/myself.baidu.com/config?mediaDrag HTTP/1.1
Host: cdn.baidubce.com
Content-Length: 130
Content-Type: application/json

{
    "mediaDragConf":{
        "mp4":{
            "fileSuffix":[
                "mp4",
                "m4a"
            ],
            "startArgName":"startIndex",
            "dragMode":"second"
            "dragMode":"--目标值---"
        },
        "flv":{
            "dragMode":"byteAV"
        }
    }
}

响应示例

HTTP/1.1 200 OK
Content-Type: application/json; charset=utf-8
Transfer-Encoding: chunked

{
    "status":"RUNNING"
}
上一篇
查询SEO开关属性
下一篇
查询视频拖拽