2024/06/28 15:54:22
设置转码推流
本文介绍如何设置转码推流。
在 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
方法了解字段详情。