设置单流不转码录制
在仅录制音频的场景下,如果单流转码录制生成的文件无法满足你的需求,例如你需要调整音频编码属性或去除录制文件中的静音片段,则可以采用单流不转码录制。关于单流音频转码与不转码录制的区别,可参考单流音频转码与不转码对比。
本文介绍如何使用云端录制 RESTful API 进行单流音频不转码录制,并重点说明了相关参数的设置方法。
前提条件
开始前,请参考使用 RESTful API 开始云端录制进行一次完整的录制流程体验。
实现步骤
本节介绍如何在申请录制服务器资源后,开始单流不转码录制。
开始录制
调用 start 方法开始云端录制。
以下介绍开始单流音频不转码录制请求的关键配置,确保你进行正确设置以实现预期的录制效果。
- 
在调用
start方法时,将mode参数设置为individual,开启单流录制模式。注意录制模式的设置必须在开始录制的时候完成,不支持在录制开始后切换模式。
 - 
设置
recordingConfig中的如下参数:字段 配置内容 recordingConfig.streamTypes订阅媒体流类型,单流音频不转码录制设置为 0(仅订阅音频)。recordingConfig.streamMode媒体流输出模式,单流音频不转码录制设置为 original(原始模式)。 - 
参照快速开始配置
storageConfig相关参数。 
开启单流音频不转码录制的请求 Body 示例如下:
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",
    },
    "storageConfig": {
      "vendor": 2,
      "region": 3,
      "bucket": "<your_storage_bucket_name>",
      "accessKey": "<your_storage_access_key>",
      "secretKey": "<your_storage_secret_key>",
      "fileNamePrefix": [
        "quickstart"
      ]
    }
  }
}'
响应示例
{
    "cname": "show",
    "uid": "123",
    "resourceId": "SGXETXXX",
    "sid": "04a85XXX"
}
你需要复制 sid 以备后用。
停止录制
录制完成后,调用 stop 方法离开频道,停止录制。录制停止后如需再次录制,必须再调用 acquire 方法请求一个新的 Resource ID。
请求示例
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
  }
}'
响应示例
{
  "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 等格式,可参考转换录制文件格式对录制后的文件进行转换。
参考信息
常见问题
- 应用崩溃后对云端录制有什么影响?
 - 如何选择云存储 bucket 区域及处理跨区上传问题?
 - 为什么无法通过浏览器调用云端录制 RESTful API?
 - 为什么第三方云储存中没有录制文件?
 - 如何获取 M3U8 文件地址?
 - 云端录制如何处理服务器断网、进程被杀问题?
 
相关文档
在单流不转码录制过程中,你还可以参考如下文档: