设置转码推流

更新时间不可用

了解旁路推流中设置转码推流相关内容的适用场景、配置步骤、实现要点和注意事项。

本文介绍如何设置转码推流。

在 Create 请求创建 Converter 开启推流时,通过 transcodeOptions 设置推流的转码配置,你需要设置如下字段:

  • rtcChannel:必填。声网频道名称。
  • audioOptions:可选。Converter 的音频转码配置。
  • videoOptions:可选。Converter 的视频转码配置。

rtcChannel

该字段为 Converter 处理的流所属频道的名称。

audioOptions

该字段仅需在有音频的场景下设置。如果有音频但是无需自定义音频配置,那么将该字段设为空,即 "audioOptions": {}。

该字段可用于设置 Converter 输出的音频编解码器规格,音频码率,音频声道数,混音音量等配置。混音和混音音量的设置详见设置混音音量。

videoOptions

该字段仅需在有视频的场景下设置。并且在音视频场景下,该字段不能为空。

该字段可用于设置 Converter 输出的视频编解码规格,视频码率,视频分辨率,视频帧率,视频垂直布局或自定义布局,SEI(Supplemental Enhancement Information)信息等配置。

设置自定义布局

自定义布局是转码推流时用户视频画面布局的一种样式。相比垂直布局,自定义布局更加灵活,但是需要你填写的字段较多。设置自定义布局时,你需要调用 Create 方法并设置 canvas、layout 字段。

  • canvas 为 Object 类型,支持配置视频画布的配置。
  • layout 为 Object Array 类型,支持配置用户的视频画面布局,也支持配置图片(例如水印)的布局。

如下示例展示将 show68 频道内用户使用自定义布局进行合图后推到 CDN:

JSON
{
  "converter": {
    "name": "show68_vertical",
    "transcodeOptions": {
      "rtcChannel": "show68",
      "audioOptions": {
      },
      "videoOptions": {
        "canvas": {
          "width": 360,
          "height": 640,
          "color": 0
        },
        "layout": [
          {
            "rtcStreamUid": 201,
            "region": {
              "xPos": 0,
              "yPos": 0,
              "zIndex": 1,
              "width": 360,
              "height": 320
            },
            "fillMode": "fill",
            "placeholderImageUrl": "http://example.agora.io/host_placeholder.jpg"
          },
          {
            "rtcStreamUid": 202,
            "region": {
              "xPos": 0,
              "yPos": 320,
              "zIndex": 1,
              "width": 360,
              "height": 320
            }
          },
          {
            "imageUrl": "http://example.agora.io/watchmark.jpg",
            "region": {
              "xPos": 0,
              "yPos": 0,
              "zIndex": 2,
              "width": 36,
              "height": 64
            },
            "fillMode": "fit"
          }
        ],
        "codec": "H.264",
        "codecProfile": "high",
        "frameRate": 15,
        "gop": 30,
        "bitrate": 400,
        "seiOptions": {
          "source": {
            "metadata": true,
            "datastream": true,
            "customized": {
              "payload": "example"
            }
          },
          "sink": {
            "type": 100
          }
        }
      }
    },
    "rtmpUrl": "rtmp://example/live/show68",
    "idleTimeout": 300
  }
}

更多设置

API 参考

你可以参考 Create 方法了解字段详情。