Agora 为 CDN 直播推流场景研发出低码高清服务,用于接收并处理你的 RTMP 流。经过 Agora 低码高清服务处理后,RTMP 流可以在同等视频清晰度下使用更低的视频码率,也可以在同等码率下提升视频画质。
CDN 直播推流时,你往往需要在推流工具或 API 中填写用于推流的 RTMP URL。联系 sales@agora.io 开通低码高清服务后,请参考如下步骤进行推流:
POST https://api.sd-rtn.com/v1/projects/<appId>/rtmp-pusher
或
POST https://api.sd-rtn.com/v1/projects/<appId>/rtmp-pusher?streamIp={streamIp}
参数 | 类型 | 含义 |
---|---|---|
appId |
路径参数(必填)。String 型。 | Agora 为每个开发者提供的 App ID。在 Agora 控制台创建一个项目后即可得到一个 App ID。 |
streamIp |
Query Parameter(可选)。String 型。 | 上行 RTMP 流的 IP 地址。必须为有效的 IPv4 地址。Agora 会根据该 IP 地址就近分配服务器以保障 Agora 低码高清服务的质量。 |
Content-Type
: application/json
X-Request-ID
: UUID(通用唯一识别码),标识本次请求。传入该字段后,Agora 服务器会在响应 Header 中返回该字段。Agora 推荐你对
X-Request-ID
赋值。如果你不赋值,Agora 服务器会自动生成一个 UUID 传入。
Authorization
。字段值请参考 HTTP Basic 认证说明。x-agora-token
: 项目 Token。x-agora-uid
: 整型的用户 ID。{
"rtmpUrl": "rtmp://{host}/{app}/{name}?{query_parameter}"
}
字段 | 类型 | 含义 |
---|---|---|
rtmpUrl |
必填。String 型。 | 当前用于推流的 RTMP URL(即原始 RTMP URL)。例如,rtmp://xxx.agora.io/live/test?auth_key=111 |
Note:为正常使用低码高清服务,请确保你的原始 RTMP URL 满足如下要求:
host
、app
和 name
这三个路径参数:host
: CDN 厂商的 host 地址。如 xxx.agora.io
。app
: RTMP 协议中的 app
字段。如 live
。name
: RTMP 协议中的 name
字段。name
字段需满足如下要求:name
值。name
的字符长度不得超过 31 位。X-Request-ID
: UUID(通用唯一识别码),标识本次请求。该值为本次请求 Header 中 X-Request-ID
。
如果响应的 HTTP 状态码为 200,请求成功。响应 Body 示例如下:
{
"rtmpUrl": "your new rtmp url"
}
字段 | 类型 | 含义 |
---|---|---|
rtmpUrl |
String 型。 | Agora 为你生成的新 RTMP URL。该 URL 标识一路已经经过低码高清服务处理的 RTMP 流。你需要该 RTMP URL 发起推流。 |
Note:收到 Agora 响应的 rtmpUrl
后,请在 15 分钟内使用该 URL 发起推流。如果超时使用,你将无法成功发起推流。此时,你需要重新向 Agora 发起 HTTP 请求,重新获取一个 Agora 为你生成的 rtmpUrl
。
如果响应的 HTTP 状态码不为 200,请求失败。Body 中包含 String 型的 message
字段,描述请求失败的具体原因。
{
"message": "Unauthorized"
}
X-Request-ID
和 message
字段排查问题。rtmpUrl
,并使用该 URL 重新发起推流。