You need to enable JavaScript to run this app.
导航
服务端上传
最近更新时间:2025.05.21 19:21:10首次发布时间:2021.02.23 10:42:37
我的收藏
有用
有用
无用
无用

服务端上传,是指通过应用服务端(App Server)将视频文件上传到视频点播服务,一般用于自动化上传或视频迁移。本文为您介绍服务端上传方式、上传流程和接入指引。

服务端上传方式

视频点播目前支持以下两种服务端上传方式。

直接上传

直接上传是指通过 OpenAPI 和服务端 SDK 直接将应用服务器上的视频上传到视频点播服务。具体流程如下图所示:
Image
流程说明如下:

  1. 应用服务端调用 ApplyUploadInfo 接口获取上传地址和凭证。
  2. 视频点播返回上传地址和凭证。
  3. 应用服务端将媒资上传至视频点播服务。
  4. 应用服务端调用 CommitUploadInfo 接口确认上传。
  5. 视频点播返回上传结果,包括 Vid、Mid、FileName 等关键字段。

    说明

    视频点播服务会为上传的媒资自动创建一个媒资 ID。根据媒资的类型不同,这个 ID 有不同的称呼:

    • 对于音视频,这个 ID 被称为视频 ID(Video ID),简称为 Vid。
    • 对于素材,这个 ID 被称为素材 ID(Material ID),简称为 Mid。

    此外,对于习惯使用标准对象存储的用户,视频点播还提供 DirectUrl 模式,以文件路径 FileName 作为媒资对象在点播存储桶中的唯一标识。更多信息,请见 Vid 模式与 DirectUrl 模式的全链路说明

  6. (可选)如您配置了媒资上传完成事件,视频上传完成后,视频点播会发送回调给应用服务器。

URL 批量拉取上传

URL 批量拉取上传是指将存储在第三方服务的媒体文件离线拉取上传到视频点播服务。您只需要将 URL 列表发送给视频点播,视频点播服务端会自动触发拉取 URL 并上传。这种方式可以免去先将文件下载到本地服务器后再上传到视频点播的过程,主要适用于离线搬站场景。

说明

URL 批量拉取上传是异步任务,不保证时效性。一般提交后会在数小时内完成上传。如果对时效性要求较高,建议使用其他上传方式。

具体流程如下图所示:
Image
流程说明如下:

  1. 应用服务端从原存储服务中获取视频 URL。
  2. 原存储服务返回视频 URL。
  3. 应用服务端调用 UploadMediaByUrl 接口提交 URL 批量拉取上传任务。
  4. 请求提交后,视频点播服务不会即刻返回上传结果,而是返回任务提交结果。如果任务提交成功,视频点播还返回任务信息,包含本次上传的任务 ID。

    说明

    任务 ID 只在视频点播服务端存储 7 天。

  5. 视频点播服务通过 URL 从原存储服务拉取视频文件。
  6. (可选)如果您配置了 URL 批量拉取上传完成事件,每个 URL 拉取完成后,视频点播会发送回调给应用服务器。
  7. (可选)应用服务端也可主动调用 QueryUploadTaskInfo 接口获取 URL 批量上传结果。

接入指引

为方便您的使用,视频点播提供服务端 SDK,封装了获取上传地址和凭证、分片上传等逻辑。您只需设置 AK/SK 并进行简单配置,即可开始上传媒资。推荐你创建 IAM 子账号,使用子账号的 AK/SK 访问视频点播服务。各语言服务端 SDK 的媒资上传示例代码请见以下文档:

URL 拉取上传 HLS 协议视频规则

在通过 URL 批量拉取方式将 HLS 协议视频上传至视频点播服务时,您需要先上传 M3U8 文件,视频点播服务再根据这个 M3U8 文件中记录的 TS 分片的文件路径,将这些 TS 分片也拉取至点播存储中。本文为您介绍 M3U8 文件在点播存储中的文件路径M3U8 文件中记录的 TS 分片的文件路径以及 TS 分片在点播存储中的实际路径这三者的关系。

说明

本文所述规则仅适用于 URL 批量拉取上传,不适用于本地上传。

规则说明

M3U8 文件和 TS 文件在点播存储中的路径首先取决于您在上传 M3U8 文件时是否指定 M3U8 文件的文件路径。具体说明如下:

未指定 M3U8 文件的 FileName

如果您在上传 M3U8 文件时没有指定 FileName,视频点播服务会将 M3U8 文件和拉取的 TS 分片存储在同一个文件夹下。文件夹以 32 位随机字符串命名。假设您上传了一个名为 main.m3u8 的文件,则:

  • M3U8 文件的路径为: /{32位随机字符串}/main.m3u8
  • TS 分片文件的路径为:/{和m3u8相同的32位随机字符串}/1.ts/{和m3u8相同的32位随机字符串}/2.ts 等。

指定了 M3U8 文件的 FileName

如果您在上传 M3U8 文件时指定了 FileName,视频点播服务将根据此 M3U8 文件中记录的 TS 分片的文件路径存储 TS 文件。具体可分为以下三种情况:

M3U8 文件中的 TS 分片路径

示例

相对路径

假设:

  • 上传 M3U8 文件时,指定 FileName 为 a/b/123.m3u8
  • M3U8 中的 TS 分片的路径为 c/1.ts

则 TS 分片在点播存储中的文件路径为 a/b/c/1.ts

根目录

假设:

  • 上传 M3U8 文件时,指定 FileName 为 a/123.m3u8
  • M3U8 中的 TS 分片的路径为 /b/1.ts

则 TS 分片在点播存储中的文件路径为 b/1.ts

绝对路径

假设:

  • 上传 M3U8 文件时,指定 FileName 为a/b/123.m3u8
  • M3U8 中的 TS 分片的路径为 http://www.test.com/c/1.ts

则 TS 分片在点播存储中的文件路径为 a/b/c/1.ts

注意事项

DirectUrl 模式下上传 HLS 协议视频存在以下限制:

  • 对于 M3U8 中记录的 TS 文件,如果名称为中文(例如 测试.ts)或者文件路径为根目录(例如 /a/b/c/0.ts) ,视频文件不支持播放。
  • 仅当 M3U8 中 TS 分片的路径为绝对路径和相对路径时,才支持抽取 Meta 信息;为根目录时,不支持抽取 Meta 信息。