设置单流不转码录制

更新时间不可用

了解云端录制中设置单流不转码录制相关内容的适用场景、配置步骤、实现要点和注意事项。

在仅录制音频的场景下,如果单流转码录制生成的文件无法满足你的需求,例如你需要调整音频编码属性或去除录制文件中的静音片段,则可以采用单流不转码录制。关于单流音频转码与不转码录制的区别,可参考单流音频转码与不转码对比。

本文介绍如何使用云端录制 RESTful API 进行单流音频不转码录制,并重点说明了相关参数的设置方法。

前提条件

开始前,请参考使用 RESTful API 开始云端录制进行一次完整的录制流程体验。

实现步骤

本节介绍如何在申请录制服务器资源后,开始单流不转码录制。

开始录制

调用 start 方法开始云端录制。

以下介绍开始单流音频不转码录制请求的关键配置,确保你进行正确设置以实现预期的录制效果。

  1. 在调用 start 方法时,将 mode 参数设置为 individual,开启单流录制模式。

    注意

    录制模式的设置必须在开始录制的时候完成,不支持在录制开始后切换模式。

  2. 设置 recordingConfig 中的如下参数:

    字段配置内容
    recordingConfig.streamTypes订阅媒体流类型,单流音频不转码录制设置为 0 (仅订阅音频)。
    recordingConfig.streamMode媒体流输出模式,单流音频不转码录制设置为 original(原始模式)。
    recordingConfig.subscribeUidGroup预估的订阅人数峰值。该字段在单流录制模式下必填;例如订阅人数为 1 到 2 个用户 ID 时,可设置为 0。更多取值说明可参考 云端录制存储参数参考。
    表格内容超出当前宽度,可横向滚动查看更多列。
  3. 参照快速开始配置 storageConfig 相关参数。

开启单流音频不转码录制的请求 Body 示例如下:

Shell
curl --location --request POST 'https://api.sd-rtn.com/v1/apps/<your_app_id>/cloud_recording/resourceid/<resourceId_returned>/mode/individual/start' \
--header 'Content-Type: application/json' \
--header 'Accept: application/json' \
--header 'Authorization: <http_basic_auth>' \
--data '{
  "cname": "show",
  "uid": "123",
  "clientRequest": {
    "token": "<your_token>",
    "recordingConfig": {
      "channelType": 1,
      "streamTypes": 0,
      "streamMode": "original",
      "subscribeUidGroup": 0,
    },
    "storageConfig": {
      "vendor": 2,
      "region": 3,
      "bucket": "<your_storage_bucket_name>",
      "accessKey": "<your_storage_access_key>",
      "secretKey": "<your_storage_secret_key>",
      "fileNamePrefix": [
        "quickstart"
      ]
    }
  }
}'

响应示例

JSON
{
    "cname": "show",
    "uid": "123",
    "resourceId": "SGXETXXX",
    "sid": "04a85XXX"
}

你需要复制 sid 以备后用。

进阶功能:延时混音

在单流音频不转码录制场景下,你可以通过 appsCollection 和 transcodeOptions 字段开启延时混音。录制服务会在录制结束后 24 小时内合并并转码指定频道内用户的录制文件,然后上传到指定的第三方云存储。

停止录制

录制完成后,调用 stop 方法离开频道,停止录制。录制停止后如需再次录制,必须再调用 acquire 方法请求一个新的 Resource ID。

请求示例

Shell
curl --location --request POST 'https://api.sd-rtn.com/v1/apps/{your_app_id}/cloud_recording/resourceid/<resourceId_returned>/sid/<sid_returned>/mode/individual/stop' \
--header 'Content-Type: application/json' \
--data '{
  "cname": "show",
  "uid": "123",
  "clientRequest": {
    "async_stop": false
  }
}'

响应示例

JSON
{
  "resourceId": "SGXETXXX",
  "sid": "04a85XXX",
  "serverResponse": {
    "fileListMode": "json",
    "fileList": [
      {
        "fileName": "xxxxxxx",
        "isPlayable": true,
        "mixedAllUser": false,
        "sliceStartTime": xxxxxxxxxx,
        "trackType": "audio",
        "uid": "xxx"
      }
    ],
    "uploadingStatus": "uploaded"
  },
  "cname": "show",
  "uid": "123"
}

uploadingStatus 字段表示录制文件上传状态,当值为 uploaded 时表示录制文件已上传至第三方云存储。

查看录制文件

单流不转码生成的录制文件示意图如下:

你可以参考第三方云存储的官方文档来查看存储在云端的录制文件。录制文件包含一个 M3U8 和多个 TS 文件,点击即可播放。如需了解文件详情,可参考录制文件介绍。如需将文件转换成 MP3、M4A、AAC 等格式,可参考转换录制文件格式对录制后的文件进行转换。

参考信息

常见问题

相关文档

在单流不转码录制过程中,你还可以参考如下文档: