You need to enable JavaScript to run this app.
文档中心
企业直播

企业直播

复制全文
下载 pdf
Web 上传 SDK
集成 Web 上传 SDK
复制全文
下载 pdf
集成 Web 上传 SDK

通过 Web 上传 SDK,您可以上传本地视频或图片、管理视频封面,并创建和更新点播间,快速完成企业直播媒资接入。本文档介绍如何集成 Web 上传 SDK 并使用 Web 上传 SDK 完成上述功能。

前提条件

  • 您已开通尊享版套餐。详见计费说明
  • 由于 Web 上传 SDK 的 API 不支持跨域调用,在集成 Web 上传 SDK 前,您需参考Web SDK 配置将您使用的域名 URL 加入白名单。
  • 在火山引擎控制台获取账号 ID、Access Key ID (AK) 和 Secret Access Key (SK):
    1. 登录火山引擎控制台
    2. 在控制台页面,找到账号 ID 并点击复制按钮,保存账号 ID。
      Image
    3. 点击进入密钥管理页面
    4. 单击新建密钥,即可创建一对 AK 和 SK。

客户端集成上传 SDK

参考以下步骤,将上传 SDK 集成到您的 Web 应用中。

步骤一:引入 SDK

在您项目的 .html 文件中添加以下代码引入 SDK。

<script src="https://unpkg.byted-static.com/byted/byte-live-console-uploader/1.0.0/dist/index.min.js"></script>

步骤二:初始化 SDK

创建 uploader 实例,初始化 SDK。示例代码如下:

let uploader

document.getElementById('test').addEventListener('change', async function () {
    const fileList = this.files;
    // 从服务端获取用户 token
    const data = await (await fetch(`http://127.0.0.1:3000`, {
        mode: 'cors'
    })).json()

    // 创建 uploader 实例
    uploader = new ByteConsoleTools.Uploader({
        userId: "210020****",
        region: "cn-north-1",
        service: "iframeTest",
        videoConfig: {
            spaceName: "livesaas-new",
            processAction: [
                {
                    name: "GetMeta",
                },
            ]
        },
    // 包含 AccessKeyId 和 SecretAccessKey 的对象
        userToken: data.userToken,
    });
  // 上传前检查,详情参考下文
    uploader.initCheck({
        file: fileList,
        type: 'video',
    }).then(fileKey => {
        console.log(fileKey);
    }).catch(e => {
        console.log(e)
    })
});

创建 uploader 实例时,您需要设置以下参数:

名称

类型

是否必选

默认值

描述

userId

String

不适用

账号 ID。获取方式参考前提条件

region

String

不适用

上传地区。您需将此参数设为 cn-north-1

service

String

不适用

服务名称,仅用于标记。
企业直播技术支持会在配置白名单后,向您同步该参数值。

videoConfig

JSON

不适用

视频上传配置。当前仅支持以下参数:

  • spaceName: 用于储存上传文件的空间名。您需要将此参数设为 "livesaas-new"
  • processAction:用于视频上传后处理的 Action 对象数组,详见 processAction

userToken

JSON

不适用

用户 token。获取方式参考前提条件。示例如下所示:

{
  "AccessKeyId": "AKTPMzY4Y2Q5ZF*****",
  "SecretAccessKey": "Y2PtLnDJS/PrRe8V8ahl1y8KlvThYjTC4LJrZW*****"
}

processAction

用于视频上传后处理的 Action 对象数组,包含以下参数:

名称

描述

name

Action 名称。当前仅可设为 GetMeta,即获取上传视频的 Meta 信息。SDK 会返回 VideoMeta

步骤三:上传前检查

在上传文件前,调用 initCheck 检查以下内容:

  • 用户是否拥有可以访问企业直播媒资库的权限。
  • 待上传的视频或图片是否符合以下要求:
    • 视频必须为 MP4 格式,且大小不超过 20 GB。
    • 图片必须为 PNG 或 JPG 格式,且大小不超过 2 GB。
  • 企业直播媒资库的剩余空间是否足够。

说明

如果您希望在上传完成后自动创建点播间,也需要在 initCheck 中传入与点播间相关的参数。详见步骤五:创建点播间

上传视频或图片前检查的代码如下所示:

上传视频前进行检查的示例代码如下:

uploader.initCheck({
      file: fileList,
      type: 'video',
  }).then(fileKey => {
      console.log(fileKey);
  }).catch(e => {
      console.log(e)
  })

上传视频或图片前检查的相关参数如下表所示:

名称

类型

是否必选

默认值

描述

file

Array

不适用

待上传文件。每次仅可上传一个文件。

type

'video' | 'image'

待上传文件的类型。可设为:

  • 'video':上传视频。
  • 'image':上传图片。

vid

String

如果您将 type 设为 'image',即上传本地图片,需要设置 vid 指定此图片作为哪个视频的封面。

说明

仅当 type 取值为 'image' 时,该参数生效且必填。

检查通过后,SDK 会返回上传任务 ID fileKey,例如 'file_149544227xxxx_xxxxxx'

步骤四:控制上传任务

您可调用以下方法控制上传任务:

  • 调用 start 启动上传任务。示例代码如下:

    uploader.start();
    
  • 调用 pause 暂停上传任务。SDK 会暂存当前文件的上传信息。

    uploader.pause();
    
  • 调用 restart 重启上传任务。SDK 会从暂停位置重新开始上传。

    uploader.restart();
    
  • 调用 cancel 取消上传任务,并删除当前文件的上传信息。

    uploader.cancel();
    

步骤五:创建点播间

如果您希望在本地视频上传完成后自动创建点播间,您需要在 initCheck 中传入与点播间相关的参数。相关参数如下表所示。

名称

类型

是否必选

默认值

描述

newVideoRoomName

string

点播间名称。传入该参数后,SDK 可在本地视频上传完成后自动创建点播间。

file

Array

不适用

待上传的视频文件。每次仅可上传一个文件。

type

'video' | 'image'

待上传文件的类型。在当前创建点播间场景下,固定取值为 'video',表示上传视频。

示例代码如下所示。SDK 会先进行上传前检查,之后上传视频:

  • 检查通过后,SDK 会返回上传任务 ID fileKey,例如 'file_149544227xxxx_xxxxxx'
  • 本地视频上传成功后,SDK 会创建点播间。
uploader.initCheck({
  newVideoRoomName: '<点播间名称>',
  file: fileList,   // 每次仅可上传一个文件。
  type: 'video',
});

uploader.start();

步骤六:更新点播间

调用 updateVideoRoom,通过传入视频 ID、或上传本地视频的方式,更新点播间。

名称

类型

是否必选

默认值

描述

videoRoomId

string

点播间 ID。可通过监听 video_room_created_result 事件获取点播间 ID。详见文档末尾。

file

Array

待上传的视频文件。每次仅可上传一个文件。

说明

filevids 参数至少需传入一个。若都传,则先上传本地视频,后上传 vids 中指定的视频。

type

'video' | 'image'

待上传文件的类型。在当前创建点播间场景下,固定取值为 'video',表示上传视频。

说明

如果您传入了 file 参数,则必须将 type 参数设置为 'video'

vids

Array

传入视频的 ID。

说明

filevids 参数至少需传入一个。若都传,则先上传本地视频,后上传 vids 中指定的视频。

isAppend

bool

false

是否追加视频。

  • true:表示保留点播间内已有视频,追加新视频。
  • false:表示不保留点播间内已有视频,直接更新为当前视频列表。

以下示例代码展示了同时处理本地视频上传和 vids 指定视频上传的场景:SDK 会先上传本地视频文件,再上传 vids 中指定的视频。

uploader.updateVideoRoom({
  videoRoomId: '<点播间id>',  // 可通过监听 video_room_created_result 事件获取点播间 ID。详见文档末尾。
  file: fileList, // 每次仅可上传一个文件。
  type: 'video', // 固定取值为 `video`。
  vids: ['<vid1>', '<vid2>'],  // 传入视频的 ID。
  isAppend: true  // 保留点播间内已有视频,追加新视频。
});

步骤七:监听事件

监听上传任务事件

您可以参考以下示例代码监听上传任务的事件。

uploader.on('event_name', function(data) {
    console.log('event_name', data);
});

下表列出上传任务生命周期中 SDK 可能触发的事件。

事件名称

描述

crc32

SDK 进行视频切片后触发。上传视频时,SDK 会将视频切分成多个片段。该事件返回 CRC-32 信息数组和每个片段的长度。

progress

返回上传任务的进度 (%)。

fileMerge

所有视频分片上传成功并合并后触发。

complete

上传任务完成时触发。SDK 触发 complete 事件即表示上传任务进度为100%。该事件的 data 参数中包含 uploadResult 参数。在 uploadResult 参数中您可以获取到 vid,即企业直播媒资库中视频文件的唯一标识符。

error

提示错误信息。

监听点播间创建结果事件

video_room_created_result 用于监听点播间创建结果。示例代码如下:

uploader.on('video_room_created_result', result => {
  console.log(result);  // result.VideoRoomId
});

无论创建成功还是失败,SDK 都会触发该事件:

  • 若点播间创建成功,将返回 VideoRoomId,即点播间 ID;
  • 若创建失败,将返回具体错误信息。
最近更新时间:2026.06.11 11:40:43
这个页面对您有帮助吗?
有用
有用
无用
无用