内容分发网络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"
    }
    上一篇
    查询页面优化
    下一篇
    查询视频拖拽