帮助与文档

我们为你提供丰富、详尽的使用指南以及产品文档

附录

注:
    附录中例子,仅为源站资源转码,并不是指完整最终解决方案,
    如”动态自适应码率“,就是只对原视频进行转码,
    最终实现还需要客户端、各级CDN、流媒体服务器配合完成

场景举例


原视频多码率切片

hls多码率切片可以方便制作动态自适应码率
{
  "type": "codec",
  "input": {
    "bucket": "my-bucket",
    "key": "/my/origin/videos/video007-example.mp4"
  },
  "tasks": [
    {
      "output": {
        "bucket": "my-bucket",
        "key": "/my/videos/video007/"
      },
      "protocol": {
        "hls": {
          "prefix": "qingcloud.com/",
          "slice": 5,
          "display": [
            {
              "bitrate": 2000,
              "resolution": "1920x1080"
            },
            {
              "bitrate": 800,
              "resolution": "1280x720"
            },
            {
              "bitrate": 200,
              "resolution": "480x360"
            }
          ]
        }
      }
    }
  ]
}
模板解释:
将原视频转为多码率切片视频,可用于多码率点播,或动态自适应码率
该模板为codec模板,任务只有一个:protocol.hls
输入:
  my-bucket/videos/video007-example.mp4
输出:
  主m3u8:
  my-bucket/videos/video007/video007-example_mp4.m3u8

  各个码率m3u8与其ts切片目录:
  my-bucket/videos/video007/video007-example_mp4_1920x1080_2000/...
  my-bucket/videos/video007/video007-example_mp4_1920x1080_2000/...
  my-bucket/videos/video007/video007-example_mp4_1920x1080_2000/...

模板配置注意事项:
1) 如果没有display数组,则默认只做hls切片
2)多码率对应路径prefix为output.key,具体文件夹格式固定为:
  "%s_%s_%s_%d" % (filename, filefmt, size, bitrate)
3)主m3u8中,只有各个码率的子切片目录url
5)slice时长不要小于5s

原视频多码率不切片

将原视频转为多个码率:1080p30_2000k, 720p30_1200k, 720p25_800k, 360p25_400k
{
  "type": "codec",
  "input": {
    "bucket": "my-bucket",
    "key": "/my/origin/videos/video007-example.mp4"
  },
  "tasks": [
    {
      "output": {
        "bucket": "my-bucket",
        "key": "/videos/video007/video007-example_flv_1080p30_2000k.flv"
      },
      "transcode": {
        "video": {
          "height": 1080,
          "width": 1920,
          "bitrate": 2000,
          "fps": 30
        },
        "audio": {
          "bitrate": 192,
          "samplerate": 44100,
          "channels": 2
        }
      }
    },
    {
      "output": {
        "bucket": "my-bucket",
        "key": "/videos/video007/video007-example_flv_720p30_1200k.flv"
      },
      "transcode": {
        "video": {
          "height": 720,
          "width": 1280,
          "bitrate": 1200,
          "fps": 25
        },
        "audio": {
          "bitrate": 128,
          "samplerate": 44100,
          "channels": 2
        }
      },
    },
    {
      "output": {
        "bucket": "my-bucket",
        "key": "/videos/video007/video007-example_flv_720p25_800k.flv"
      },
      "transcode": {
        "video": {
          "height": 720,
          "width": 1280,
          "bitrate": 800,
          "fps": 25,
          "channels": 2
        },
        "audio": {
          "bitrate": 128,
          "samplerate": 32000,
        }
      },
    },
    {
      "output": {
        "bucket": "my-bucket",
        "key": "/videos/video007/video007-example_flv_360p20_400k.flv"
      },
      "transcode": {
        "video": {
          "height": 360,
          "width": 480,
          "bitrate": 400,
          "fps": 20
        },
        "audio": {
          "bitrate": 96,
          "samplerate": 22050,
          "channels": 2
        }
      }

    },
  ]
}
模板解释:
将原视频转为多码率多个视频,可用于点播多码率切换或适配不同终端场景
该模板为codec模板,有transcode task,分别对视频码率、帧数、分辨率,音频采样率、码率、声道做了配置
输入:
  my-bucket/my/origin/videos/video007-example.mp4
输出:
  my-bucket/videos/video007/video007-example_flv_1080p30_2000k.flv
  my-bucket/videos/video007/video007-example_flv_720p30_1200k.flv
  my-bucket/videos/video007/video007-example_flv_720p25_800k.flv
  my-bucket/videos/video007/video007-example_flv_360p20_400k.flv

视频缩略图

对源视频在第5秒截屏作为视频缩略图
截图分辨率为:原分辨率、720p、360p的缩略图,格式为:jpg
{
  "type": "codec",
  "input": {
    "bucket": "my-bucket",
    "key": "/my/origin/videos/video007-example.mp4"
  },
  "tasks": [
    {
      "output": {
        "bucket": "my-bucket",
        "key": "/my/videos/previews/video007_origin/"
      },
      "posterizetime": {
        "format": "jpg",
        "time": 5
      }
    },
    {
      "output": {
        "bucket": self.config.bucket_out,
        "key": "/my/videos/previews/video007_720p/“
      },
      "posterizetime": {
        "format": "jpg",
        "time": 5,
        "resolution": "1280x720"
      }
    },
    {
      "output": {
        "bucket": self.config.bucket_out,
        "key": "/my/videos/previews/video007_360p/"
      },
      "posterizetime": {
        "format": "jpg",
        "time": 5,
        "resolution": "480x360"
      }
    }
  ]
}
模板解释:
该模板为一个codec模板,共有三个任务,分别在第5秒截图并存为不同分辨率
输入:my-bucket/my/origin/videos/video007-example.mp4
输出:
  my-bucket/videos/previews/video007_origin/pstrztime/video007_mp4-00000001.jpg
  my-bucket/videos/previews/video007_720p/pstrztime/video007_mp4-00000001.jpg
  my-bucket/videos/previews/video007_360p/pstrztime/video007_mp4-00000001.jpg

模板配置注意事项:
  1)posterizetime输出为文件夹,所以output.key应该以"/"结尾
  1) 截图路径中: .../pstrztime/... 的pstrztime是自动添加的

截图语法规则参考:posterizetime


转码全任务举例

{
  "type": "codec",
  "input": {
    "bucket": "test",
    "key": "obj"
  },
  "tasks": [
    {
      "output": {
        "bucket": "test",
        "key": "obj2"
      },
      "container": {
        "outformat": "flv"
      },
      "transcode": {
        "video": {
          "width": 320,
          "height": 240,
          "bitrate": 1000,
          "fps": 24,
          "transpose": "270"
        },
        "audio": {
          "bitrate": 256,
          "samplerate": 44100,
          "channels": 2
        }
      },
      "clip": {
        "start": 10,
        "end": 20
      },
      "watermarks": [
        {
          "input": {
            "bucket": "test",
            "key": "img"
          },
          "dx": 5,
          "dy": 5
        },
      ],
      "separate": {
        "option": "video-audio"
      },
      "posterizetime": {
        "interval": 20
      },
      "metadata": {
        "title": "transcoder test",
        "comment": "this is for test",
        "copyright": "Qing Cloud",
        "description": "TRANSCODE TEST INFORMATION"
      },
      "protocol": {
        "hls" : {
          "slice": 5,
          "display": [
            {
              "bitrate": 1200,
              "resolution": "1920x1080"
            },
            {
              "bitrate": 800,
              "resolution": "1280x720"
            },
            {
              "bitrate": 600,
              "resolution": "800x600"
            }
          ]
        }
      }
    },
  ]
}

音视频转码举例

{
  "type": "codec",
  "input": {
    "bucket": "test",
    "key": "obj"
  },
  "tasks": [
    {
      "output": {
        "bucket": "test",
        "key": "obj2"
      },
      "transcode": {
        "video": {
          "bitrate": 1200,
          "fps": 29,
          "height": 1080,
          "width": 1920,
          "transpose": "180"
        },
        "audio": {
          "bitrate": 341,
          "samplerate": 44800,
          "channels": 2
        }
      }
    }
  ]
}