# 旁路推流 (/zh-CN/api-reference/rtc/android/cloud-media-relay/media-push)

> For AI agents: see the complete documentation index at [llms.txt](/llms.txt).

<a id="toc_media_push"></a>

<a id="api_irtcengine_startrtmpstreamwithouttranscoding"></a>

<a id="ariaid-title2"></a>

## startRtmpStreamWithoutTranscoding [#startrtmpstreamwithouttranscoding]

开始向 CDN 推送音视频流（不进行转码）。

<a id="api_irtcengine_startrtmpstreamwithouttranscoding__prototype"></a>

```java
public abstract int startRtmpStreamWithoutTranscoding(String url);
```

<a id="api_irtcengine_startrtmpstreamwithouttranscoding__detailed_desc"></a>

声网推荐你使用更加完善的服务端推流功能，详见[实现服务端旁路推流](/zh-CN/realtime-media/media-push)。
你可以调用该方法将音频或视频流推送到指定的 CDN 地址。该方法每次只能向一个 CDN 地址推送媒体流，如果需要推送到多个地址，请多次调用该方法。

:::note
注：

- 请在加入频道后调用该方法。
- 只有在 `LIVE_BROADCASTING` 模式下的主播角色可以调用该方法。
- 如果推流失败后需要重试，请先调用 [stopRtmpStream](/zh-CN/api-reference/rtc/android/cloud-media-relay/media-push#api_irtcengine_stoprtmpstream) 停止推流，再调用该方法重新推流；否则，SDK 会返回与上次失败相同的错误码。
:::

<a id="api_irtcengine_startrtmpstreamwithouttranscoding__related"></a>

### 相关回调 [#相关回调]

成功调用该方法后，SDK 会触发 [onRtmpStreamingStateChanged](/zh-CN/api-reference/rtc/android/cloud-media-relay/media-push#callback_irtcengineeventhandler_onrtmpstreamingstatechanged) 回调报告推流状态。

<a id="api_irtcengine_startrtmpstreamwithouttranscoding__parameters"></a>

### 参数 [#参数]

<ParameterList>
<a id="url"></a>
<Parameter name="url">

推流地址，格式为 RTMP 或 RTMPS，长度不能超过 1024 字节。不支持中文等特殊字符。

</Parameter>
</ParameterList>

<a id="api_irtcengine_startrtmpstreamwithouttranscoding__return_values"></a>

### 返回值 [#返回值]

- 0：方法调用成功。
- &lt; 0：方法调用失败。详见[错误码](/zh-CN/api-reference/rtc/error-code)了解详情和解决建议。

  - -2：`url` 不合法。
  - -7：调用该方法前未初始化 SDK。
  - -19：推流地址已被使用，请更换地址。

### 所属接口类 [#所属接口类]

- [RtcEngine](/zh-CN/api-reference/rtc/android/rtc-interface-class#class_irtcengine)

<a id="api_irtcengineex_startrtmpstreamwithouttranscodingex"></a>

<a id="ariaid-title3"></a>

## startRtmpStreamWithoutTranscodingEx [#startrtmpstreamwithouttranscodingex]

开始向 CDN 推送未经转码的媒体流。

<a id="api_irtcengineex_startrtmpstreamwithouttranscodingex__prototype"></a>

```java
public abstract int startRtmpStreamWithoutTranscodingEx(String url, RtcConnection connection);
```

<a id="api_irtcengineex_startrtmpstreamwithouttranscodingex__detailed_desc"></a>

声网推荐你使用更加完善的服务端推流功能，详见[实现服务端旁路推流](/zh-CN/realtime-media/media-push)。
你可以调用该方法将音频或视频流推送到指定的 CDN 地址。该方法一次只能向一个 CDN 地址推送媒体流，如果需要推送到多个地址，请多次调用该方法。

:::note
注：

- 请在加入频道后调用该方法。
- 只有在频道场景为 `LIVE_BROADCASTING` 且角色为主播的用户才能调用该方法。
- 如果推流失败后需要重试，请先调用 [stopRtmpStream](/zh-CN/api-reference/rtc/android/cloud-media-relay/media-push#api_irtcengine_stoprtmpstream) 停止推流，再调用该方法重新推流；否则，SDK 会返回与上次失败相同的错误码。
:::

<a id="api_irtcengineex_startrtmpstreamwithouttranscodingex__scenario"></a>

### 适用场景 [#适用场景]

该方法适用于多频道场景。

<a id="api_irtcengineex_startrtmpstreamwithouttranscodingex__related"></a>

### 相关回调 [#相关回调-1]

成功调用该方法后，SDK 会触发 [onRtmpStreamingStateChanged](/zh-CN/api-reference/rtc/android/cloud-media-relay/media-push#callback_irtcengineeventhandler_onrtmpstreamingstatechanged) 回调报告推流状态。

<a id="api_irtcengineex_startrtmpstreamwithouttranscodingex__parameters"></a>

### 参数 [#参数-1]

<ParameterList>
<a id="url-1"></a>
<Parameter name="url">

旁路推流地址。格式为 RTMP 或 RTMPS，长度不能超过 1024 字节。不支持中文等特殊字符。

</Parameter>
<a id="connection"></a>
<Parameter name="connection">

连接信息。详见 [RtcConnection](/zh-CN/api-reference/rtc/android/class-rtcconnection)。

</Parameter>
</ParameterList>

<a id="api_irtcengineex_startrtmpstreamwithouttranscodingex__return_values"></a>

### 返回值 [#返回值-1]

- 0：方法调用成功。
- &lt; 0：方法调用失败。详见[错误码](/zh-CN/api-reference/rtc/error-code)了解详情和解决建议。

  - -2：URL 或转码配置不合法，请检查 URL 和转码配置。
  - -7：调用该方法前未初始化 SDK。
  - -19：旁路推流地址已被使用，请更换地址。

### 所属接口类 [#所属接口类-1]

- [RtcEngineEx](/zh-CN/api-reference/rtc/android/rtc-interface-class#class_irtcengineex)

<a id="api_irtcengine_startrtmpstreamwithtranscoding"></a>

<a id="ariaid-title4"></a>

## startRtmpStreamWithTranscoding [#startrtmpstreamwithtranscoding]

开始旁路推流并设置转码配置。

<a id="api_irtcengine_startrtmpstreamwithtranscoding__prototype"></a>

```java
public abstract int startRtmpStreamWithTranscoding(String url, LiveTranscoding transcoding);
```

<a id="api_irtcengine_startrtmpstreamwithtranscoding__detailed_desc"></a>

声网推荐你使用更加完善的服务端推流功能，详见[实现服务端旁路推流](/zh-CN/realtime-media/media-push)。
你可以调用该方法将实时音视频流推送到指定的 CDN 地址，并设置转码配置。该方法每次只能将媒体流推送到一个 CDN 地址。如果需要推送到多个地址，请多次调用该方法。在一个声网项目下，默认最多可同时进行 200 个媒体流推送任务。如需更高配额，请[联系技术支持](https://ticket.shengwang.cn/)。

:::note
注：

- 请在加入频道后调用该方法。
- 仅在直播频道场景中，主播角色可以调用该方法。
- 如果推流失败后需要重试，请先调用 [stopRtmpStream](/zh-CN/api-reference/rtc/android/cloud-media-relay/media-push#api_irtcengine_stoprtmpstream) 停止推流，再调用该方法重新推流；否则，SDK 会返回与上次失败相同的错误码。
:::

<a id="api_irtcengine_startrtmpstreamwithtranscoding__related"></a>

### 相关回调 [#相关回调-2]

成功调用该方法后，SDK 会触发 [onRtmpStreamingStateChanged](/zh-CN/api-reference/rtc/android/cloud-media-relay/media-push#callback_irtcengineeventhandler_onrtmpstreamingstatechanged) 回调报告推流状态。

<a id="api_irtcengine_startrtmpstreamwithtranscoding__parameters"></a>

### 参数 [#参数-2]

<ParameterList>
<a id="url-2"></a>
<Parameter name="url">

旁路推流地址，格式为 RTMP 或 RTMPS，字符长度不能超过 1024 字节。不支持中文等特殊字符。

</Parameter>
<a id="transcoding"></a>
<Parameter name="transcoding">

旁路推流的转码配置，详见 [LiveTranscoding](/zh-CN/api-reference/rtc/android/class-livetranscoding)。

</Parameter>
</ParameterList>

<a id="api_irtcengine_startrtmpstreamwithtranscoding__return_values"></a>

### 返回值 [#返回值-2]

- 0：方法调用成功。
- &lt; 0：方法调用失败。详见[错误码](/zh-CN/api-reference/rtc/error-code)了解详情和解决建议。

  - -2：`url` 或转码配置不合法，请检查 `url` 和转码配置。
  - -7：调用该方法前未初始化 SDK。
  - -19：旁路推流地址已被使用，请更换其他地址。

### 所属接口类 [#所属接口类-2]

- [RtcEngine](/zh-CN/api-reference/rtc/android/rtc-interface-class#class_irtcengine)

<a id="api_irtcengineex_startrtmpstreamwithtranscodingex"></a>

<a id="ariaid-title5"></a>

## startRtmpStreamWithTranscodingEx [#startrtmpstreamwithtranscodingex]

开始旁路推流并设置转码配置。

<a id="api_irtcengineex_startrtmpstreamwithtranscodingex__prototype"></a>

```java
public abstract int startRtmpStreamWithTranscodingEx(String url, LiveTranscoding transcoding, RtcConnection connection);
```

<a id="api_irtcengineex_startrtmpstreamwithtranscodingex__detailed_desc"></a>

声网推荐你使用更加完善的服务端推流功能，详见[实现服务端旁路推流](/zh-CN/realtime-media/media-push)。
你可以调用该方法将音视频直播流推送到指定的 CDN 地址，并设置转码配置。该方法每次只能将媒体流推送到一个 CDN 地址，如果需要推送到多个地址，请多次调用该方法。

:::note
注：

- 使用该方法前，请确保已启用旁路推流服务。
- 请在加入频道后调用该方法。
- 仅在直播场景（`LIVE_BROADCASTING`）中的主播可以调用该方法。
- 如果推流失败后需要重试，请先调用 [stopRtmpStreamEx](/zh-CN/api-reference/rtc/android/cloud-media-relay/media-push#api_irtcengineex_stoprtmpstreamex) 停止推流，再调用该方法重试，否则 SDK 会返回与上次失败相同的错误码。
:::

<a id="api_irtcengineex_startrtmpstreamwithtranscodingex__scenario"></a>

### 适用场景 [#适用场景-1]

该方法适用于多频道场景。

<a id="api_irtcengineex_startrtmpstreamwithtranscodingex__parameters"></a>

### 参数 [#参数-3]

<ParameterList>
<a id="url-3"></a>
<Parameter name="url">

旁路推流地址。格式为 RTMP 或 RTMPS，字符长度不能超过 1024 字节。不支持中文等特殊字符。

</Parameter>
<a id="transcoding-1"></a>
<Parameter name="transcoding">

旁路推流的转码配置。详见 [LiveTranscoding](/zh-CN/api-reference/rtc/android/class-livetranscoding)。

</Parameter>
<a id="connection-1"></a>
<Parameter name="connection">

连接信息。详见 [RtcConnection](/zh-CN/api-reference/rtc/android/class-rtcconnection)。

</Parameter>
</ParameterList>

<a id="api_irtcengineex_startrtmpstreamwithtranscodingex__return_values"></a>

### 返回值 [#返回值-3]

- 0：方法调用成功。
- &lt; 0：方法调用失败。详见[错误码](/zh-CN/api-reference/rtc/error-code)了解详情和解决建议。

  - -2：URL 或转码配置不合法，请检查 `url` 和 `transcoding` 参数。
  - -7：调用该方法前未初始化 SDK。
  - -19：旁路推流地址已被使用，请更换地址。

### 所属接口类 [#所属接口类-3]

- [RtcEngineEx](/zh-CN/api-reference/rtc/android/rtc-interface-class#class_irtcengineex)

<a id="api_irtcengine_stoprtmpstream"></a>

<a id="ariaid-title6"></a>

## stopRtmpStream [#stoprtmpstream]

停止向指定 CDN 地址推送媒体流。

<a id="api_irtcengine_stoprtmpstream__prototype"></a>

```java
public abstract int stopRtmpStream(String url);
```

<a id="api_irtcengine_stoprtmpstream__detailed_desc"></a>

声网推荐你使用更加完善的服务端推流功能，详见[实现服务端旁路推流](/zh-CN/realtime-media/media-push)。
你可以调用该方法停止向指定的 CDN 地址推送媒体流。该方法每次只能停止一个地址的推流，如需停止多个地址的推流，请多次调用该方法。

<a id="api_irtcengine_stoprtmpstream__parameters"></a>

### 参数 [#参数-4]

<ParameterList>
<a id="url-4"></a>
<Parameter name="url">

旁路推流地址，格式为 RTMP 或 RTMPS，字符长度不能超过 1024 字节。不支持中文等特殊字符。

</Parameter>
</ParameterList>

<a id="api_irtcengine_stoprtmpstream__return_values"></a>

### 返回值 [#返回值-4]

- 0：方法调用成功。
- &lt; 0：方法调用失败。详见[错误码](/zh-CN/api-reference/rtc/error-code)了解详情和解决建议。

### 所属接口类 [#所属接口类-4]

- [RtcEngine](/zh-CN/api-reference/rtc/android/rtc-interface-class#class_irtcengine)

<a id="api_irtcengineex_stoprtmpstreamex"></a>

<a id="ariaid-title7"></a>

## stopRtmpStreamEx [#stoprtmpstreamex]

停止向指定 CDN 地址推送媒体流。

<a id="api_irtcengineex_stoprtmpstreamex__prototype"></a>

```java
public abstract int stopRtmpStreamEx(String url, RtcConnection connection);
```

<a id="api_irtcengineex_stoprtmpstreamex__detailed_desc"></a>

声网推荐你使用更加完善的服务端推流功能，详见[实现服务端旁路推流](/zh-CN/realtime-media/media-push)。
你可以调用该方法停止向指定 CDN 地址的直播推流。该方法每次只能停止向一个 CDN 地址推流，如果需要停止多个地址的推流，请多次调用该方法。

<a id="api_irtcengineex_stoprtmpstreamex__scenario"></a>

### 适用场景 [#适用场景-2]

该方法适用于多频道场景。

<a id="api_irtcengineex_stoprtmpstreamex__related"></a>

### 相关回调 [#相关回调-3]

成功调用该方法后，SDK 会触发 [onRtmpStreamingStateChanged](/zh-CN/api-reference/rtc/android/cloud-media-relay/media-push#callback_irtcengineeventhandler_onrtmpstreamingstatechanged) 回调报告推流状态。

<a id="api_irtcengineex_stoprtmpstreamex__parameters"></a>

### 参数 [#参数-5]

<ParameterList>
<a id="url-5"></a>
<Parameter name="url">

旁路推流地址。格式为 RTMP 或 RTMPS，长度不能超过 1024 字节。不支持中文等特殊字符。

</Parameter>
<a id="connection-2"></a>
<Parameter name="connection">

连接信息。详见 [RtcConnection](/zh-CN/api-reference/rtc/android/class-rtcconnection)。

</Parameter>
</ParameterList>

<a id="api_irtcengineex_stoprtmpstreamex__return_values"></a>

### 返回值 [#返回值-5]

- 0：方法调用成功。
- &lt; 0：方法调用失败。详见[错误码](/zh-CN/api-reference/rtc/error-code)了解详情和解决建议。

### 所属接口类 [#所属接口类-5]

- [RtcEngineEx](/zh-CN/api-reference/rtc/android/rtc-interface-class#class_irtcengineex)

<a id="api_irtcengine_updatertmptranscoding"></a>

<a id="ariaid-title8"></a>

## updateRtmpTranscoding [#updatertmptranscoding]

更新旁路推流的转码配置。

<a id="api_irtcengine_updatertmptranscoding__prototype"></a>

```java
public abstract int updateRtmpTranscoding(LiveTranscoding transcoding);
```

<a id="api_irtcengine_updatertmptranscoding__detailed_desc"></a>

声网推荐你使用更加完善的服务端推流功能，详见[实现服务端旁路推流](/zh-CN/realtime-media/media-push)。

<a id="api_irtcengine_updatertmptranscoding__parameters"></a>

### 参数 [#参数-6]

<ParameterList>
<a id="transcoding-2"></a>
<Parameter name="transcoding">

旁路推流的转码配置。详见 [LiveTranscoding](/zh-CN/api-reference/rtc/android/class-livetranscoding)。

</Parameter>
</ParameterList>

<a id="api_irtcengine_updatertmptranscoding__return_values"></a>

### 返回值 [#返回值-6]

- 0：方法调用成功。
- &lt; 0：方法调用失败。详见[错误码](/zh-CN/api-reference/rtc/error-code)了解详情和解决建议。

### 所属接口类 [#所属接口类-6]

- [RtcEngine](/zh-CN/api-reference/rtc/android/rtc-interface-class#class_irtcengine)

<a id="api_irtcengineex_updatertmptranscodingex"></a>

<a id="ariaid-title9"></a>

## updateRtmpTranscodingEx [#updatertmptranscodingex]

更新旁路推流的转码配置。

<a id="api_irtcengineex_updatertmptranscodingex__prototype"></a>

```java
public abstract int updateRtmpTranscodingEx(LiveTranscoding transcoding, RtcConnection connection);
```

<a id="api_irtcengineex_updatertmptranscodingex__detailed_desc"></a>

声网推荐你使用更加完善的服务端推流功能，详见[实现服务端旁路推流](/zh-CN/realtime-media/media-push)。
开始使用转码功能将媒体流推送到 CDN 后，你可以根据场景动态更新转码配置。更新配置后，SDK 会触发 [onTranscodingUpdated](/zh-CN/api-reference/rtc/android/cloud-media-relay/media-push#callback_irtcengineeventhandler_ontranscodingupdated) 回调。

<a id="api_irtcengineex_updatertmptranscodingex__scenario"></a>

### 适用场景 [#适用场景-3]

该方法适用于多频道场景。

<a id="api_irtcengineex_updatertmptranscodingex__parameters"></a>

### 参数 [#参数-7]

<ParameterList>
<a id="transcoding-3"></a>
<Parameter name="transcoding">

旁路推流的转码配置。详见 [LiveTranscoding](/zh-CN/api-reference/rtc/android/class-livetranscoding)。

</Parameter>
<a id="connection-3"></a>
<Parameter name="connection">

连接信息。详见 [RtcConnection](/zh-CN/api-reference/rtc/android/class-rtcconnection)。

</Parameter>
</ParameterList>

<a id="api_irtcengineex_updatertmptranscodingex__return_values"></a>

### 返回值 [#返回值-7]

- 0：方法调用成功。
- &lt; 0：方法调用失败。详见[错误码](/zh-CN/api-reference/rtc/error-code)了解详情和解决建议。

### 所属接口类 [#所属接口类-7]

- [RtcEngineEx](/zh-CN/api-reference/rtc/android/rtc-interface-class#class_irtcengineex)

<a id="callback_irtcengineeventhandler_onrtmpstreamingevent"></a>

<a id="ariaid-title10"></a>

## onRtmpStreamingEvent [#onrtmpstreamingevent]

旁路推流事件回调。

<a id="callback_irtcengineeventhandler_onrtmpstreamingevent__prototype"></a>

```java
public void onRtmpStreamingEvent(String url, int event)
```

<a id="callback_irtcengineeventhandler_onrtmpstreamingevent__detailed_desc"></a>

:::info[自从]
自 v3.1.0 版本新增。
:::

<a id="callback_irtcengineeventhandler_onrtmpstreamingevent__parameters"></a>

### 参数 [#参数-8]

<ParameterList>
<a id="url-6"></a>
<Parameter name="url">

旁路推流的地址。

</Parameter>
<a id="event"></a>
<Parameter name="event">

旁路推流的事件码：

- `RTMP_STREAMING_EVENT_FAILED_LOAD_IMAGE`（1）：添加背景图或水印图时发生错误。
- `RTMP_STREAMING_EVENT_URL_ALREADY_IN_USE`（2）：该推流地址已被用于旁路推流。如需开启新的推流，请使用新的推流地址。
- `RTMP_STREAMING_EVENT_ADVANCED_FEATURE_NOT_SUPPORT`（3）：该功能不支持。
- `RTMP_STREAMING_EVENT_REQUEST_TOO_OFTEN`（4）：保留参数。

</Parameter>
</ParameterList>

### 所属接口类 [#所属接口类-8]

- [IRtcEngineEventHandler](/zh-CN/api-reference/rtc/android/rtc-interface-class#class_irtcengineeventhandler)

<a id="callback_irtcengineeventhandler_onrtmpstreamingstatechanged"></a>

<a id="ariaid-title11"></a>

## onRtmpStreamingStateChanged [#onrtmpstreamingstatechanged]

旁路推流状态发生变化回调。

<a id="callback_irtcengineeventhandler_onrtmpstreamingstatechanged__prototype"></a>

```java
public void onRtmpStreamingStateChanged(String url, int state, int reason)
```

<a id="callback_irtcengineeventhandler_onrtmpstreamingstatechanged__detailed_desc"></a>

该回调用于指示旁路推流的状态。当旁路推流状态发生变化时，SDK 会触发该回调，并返回对应的 URL 地址和当前的推流状态。当出现异常时，你可以参考错误码参数中的详细错误信息进行排查。

<a id="callback_irtcengineeventhandler_onrtmpstreamingstatechanged__timing"></a>

### 触发时机 [#触发时机]

该回调在旁路推流状态发生变化时被触发。

<a id="callback_irtcengineeventhandler_onrtmpstreamingstatechanged__parameters"></a>

### 参数 [#参数-9]

<ParameterList>
<a id="url-7"></a>
<Parameter name="url">

发生状态变化的旁路推流地址。

</Parameter>
<a id="state"></a>
<Parameter name="state">

当前旁路推流的状态：

- `RTMP_STREAM_PUBLISH_STATE_IDLE`(0)：旁路推流尚未开始或已结束。
- `RTMP_STREAM_PUBLISH_STATE_CONNECTING`(1)：正在连接推流服务器和 CDN 服务器。
- `RTMP_STREAM_PUBLISH_STATE_RUNNING`(2)：正在推流。SDK 成功推送 RTMP 或 RTMPS 流并返回该状态。
- `RTMP_STREAM_PUBLISH_STATE_RECOVERING`(3)：正在恢复推流。当 CDN 出现异常或旁路推流中断时，SDK 会尝试恢复推流并返回该状态。

  - 如果 SDK 成功恢复推流，则返回 `RTMP_STREAM_PUBLISH_STATE_RUNNING`(2)。
  - 如果在 60 秒内未恢复推流或服务器发生错误，则返回 `RTMP_STREAM_PUBLISH_STATE_FAILURE`(4)。你也可以通过调用 [startRtmpStreamWithTranscoding](/zh-CN/api-reference/rtc/android/cloud-media-relay/media-push#api_irtcengine_startrtmpstreamwithtranscoding)、[startRtmpStreamWithoutTranscoding](/zh-CN/api-reference/rtc/android/cloud-media-relay/media-push#api_irtcengine_startrtmpstreamwithouttranscoding) 和 [stopRtmpStream](/zh-CN/api-reference/rtc/android/cloud-media-relay/media-push#api_irtcengine_stoprtmpstream) 方法重新连接服务器。
- `RTMP_STREAM_PUBLISH_STATE_FAILURE`(4)：推流失败。你可以参考错误码参数中的详细错误信息进行排查，也可以尝试重新推流。
- `RTMP_STREAM_PUBLISH_STATE_DISCONNECTING`(5)：SDK 正在断开与声网旁路推流服务器和 CDN 服务器的连接。当你调用 [stopRtmpStream](/zh-CN/api-reference/rtc/android/cloud-media-relay/media-push#api_irtcengine_stoprtmpstream) 正常停止旁路推流时，SDK 会依次返回 `RTMP_STREAM_PUBLISH_STATE_DISCONNECTING` 和 `RTMP_STREAM_PUBLISH_STATE_IDLE` 状态。

</Parameter>
<a id="reason"></a>
<Parameter name="reason">

旁路推流状态变化的原因：

- `RTMP_STREAM_PUBLISH_REASON_OK`(0)：推流成功。
- `RTMP_STREAM_PUBLISH_REASON_INVALID_ARGUMENT`(1)：参数无效。请检查参数设置。
- `RTMP_STREAM_PUBLISH_REASON_ENCRYPTED_STREAM_NOT_ALLOWED`(2)：加密流无法推送。
- `RTMP_STREAM_PUBLISH_REASON_CONNECTION_TIMEOUT`(3)：推流超时。你可以尝试重新推流。
- `RTMP_STREAM_PUBLISH_REASON_INTERNAL_SERVER_ERROR`(4)：声网推流服务器内部错误。你可以尝试重新推流。
- `RTMP_STREAM_PUBLISH_REASON_RTMP_SERVER_ERROR`(5)：CDN 服务器错误。
- `RTMP_STREAM_PUBLISH_REASON_TOO_OFTEN`(6)：保留参数。
- `RTMP_STREAM_PUBLISH_REASON_REACH_LIMIT`(7)：主播推送的 URL 超过 10 个。你可以停止向不必要的 URL 推流。
- `RTMP_STREAM_PUBLISH_REASON_NOT_AUTHORIZED`(8)：主播操作了其他主播的 URL，例如更新或停止其他主播的流。请检查你的应用逻辑。
- `RTMP_STREAM_PUBLISH_REASON_STREAM_NOT_FOUND`(9)：声网服务器未找到旁路推流的媒体流。
- `RTMP_STREAM_PUBLISH_REASON_FORMAT_NOT_SUPPORTED`(10)：旁路推流地址格式不支持。请检查 URL 格式是否正确。
- `RTMP_STREAM_PUBLISH_REASON_NOT_BROADCASTER`(11)：用户角色不是主播，无法使用旁路推流功能。请检查你的应用代码逻辑。
- `RTMP_STREAM_PUBLISH_REASON_TRANSCODING_NO_MIX_STREAM`(13)：在无转码的旁路推流场景中调用了 [updateRtmpTranscoding](/zh-CN/api-reference/rtc/android/cloud-media-relay/media-push#api_irtcengine_updatertmptranscoding) 方法更新转码配置。请检查你的应用代码逻辑。
- `RTMP_STREAM_PUBLISH_REASON_NET_DOWN`(14)：主播端网络异常。
- `RTMP_STREAM_PUBLISH_REASON_INVALID_PRIVILEGE`(16)：项目无权限使用旁路推流服务。
- `RTMP_STREAM_UNPUBLISH_REASON_OK`(100)：已正常停止旁路推流。调用 [stopRtmpStream](/zh-CN/api-reference/rtc/android/cloud-media-relay/media-push#api_irtcengine_stoprtmpstream) 停止推流后，SDK 返回该值。

</Parameter>
</ParameterList>

### 所属接口类 [#所属接口类-9]

- [IRtcEngineEventHandler](/zh-CN/api-reference/rtc/android/rtc-interface-class#class_irtcengineeventhandler)

<a id="callback_irtcengineeventhandler_ontranscodingupdated"></a>

<a id="ariaid-title12"></a>

## onTranscodingUpdated [#ontranscodingupdated]

发布端云端转码配置更新回调。

<a id="callback_irtcengineeventhandler_ontranscodingupdated__prototype"></a>

```java
public void onTranscodingUpdated() {}
```

<a id="callback_irtcengineeventhandler_ontranscodingupdated__detailed_desc"></a>

当调用 [startRtmpStreamWithTranscoding](/zh-CN/api-reference/rtc/android/cloud-media-relay/media-push#api_irtcengine_startrtmpstreamwithtranscoding) 更新 [LiveTranscoding](/zh-CN/api-reference/rtc/android/class-livetranscoding) 配置时，SDK 会触发该回调以报告更新信息。

:::note
注： 如果首次调用 [startRtmpStreamWithTranscoding](/zh-CN/api-reference/rtc/android/cloud-media-relay/media-push#api_irtcengine_startrtmpstreamwithtranscoding) 设置 [LiveTranscoding](/zh-CN/api-reference/rtc/android/class-livetranscoding) 配置，SDK 不会触发该回调。
:::

<a id="callback_irtcengineeventhandler_ontranscodingupdated__timing"></a>

### 触发时机 [#触发时机-1]

该回调在发布端的云端转码配置发生更新时被触发。

### 所属接口类 [#所属接口类-10]

- [IRtcEngineEventHandler](/zh-CN/api-reference/rtc/android/rtc-interface-class#class_irtcengineeventhandler)
