旁路推流
- macOS
更新时间不可用
startRtmpStreamWithoutTranscoding:
开始向 CDN 推流(不进行转码)。
- (int)startRtmpStreamWithoutTranscoding:(NSString* _Nonnull)url NS_SWIFT_NAME(startRtmpStreamWithoutTranscoding(_:));声网推荐你使用更加完善的服务端推流功能,详见实现服务端旁路推流。 你可以调用该方法将音频或视频流推送到指定的 CDN 地址。该方法每次只能向一个 CDN 地址推流,如果需要推送到多个地址,请多次调用该方法。
注:
- 请在加入频道后调用该方法。
- 只有在
LIVE_BROADCASTING频道场景中的主播可以调用该方法。 - 如果推流失败后需要重试,必须先调用 stopRtmpStream: 停止推流,再调用该方法重新推流;否则,SDK 会返回与上次失败相同的错误码。
相关回调
成功调用该方法后,SDK 会触发 rtcEngine:rtmpStreamingChangedToState:state:reason: 回调报告推流状态。
参数
返回值
-
0:方法调用成功。
-
< 0:方法调用失败。详见错误码了解详情和解决建议。
- -2:URL 或转码配置不合法。请检查 URL 和转码配置。
- -7:调用该方法前未初始化 SDK。
- -19:旁路推流地址已被使用。请更换其他地址。
所属接口类
startRtmpStreamWithoutTranscodingEx:connection:
开始向 CDN 推送未经转码的媒体流。
- (int)startRtmpStreamWithoutTranscodingEx:(NSString* _Nonnull)url
connection:(AgoraRtcConnection * _Nonnull)connection NS_SWIFT_NAME(startRtmpStreamWithoutTranscodingEx(_:connection:));声网推荐你使用更加完善的服务端推流功能,详见实现服务端旁路推流。 你可以调用该方法将音频或视频流推送到指定的 CDN 地址。该方法每次只能推送到一个 CDN 地址,如果需要推送到多个地址,请多次调用该方法。
注:
- 请在加入频道后调用该方法。
- 只有在
LIVE_BROADCASTING频道场景中的主播可以调用该方法。 - 如果推流失败后需要重试,请先调用 stopRtmpStream: 停止推流,再调用该方法重新推流;否则,SDK 会返回与上次失败相同的错误码。
适用场景
该方法适用于多频道场景。
相关回调
成功调用该方法后,SDK 会触发 rtcEngine:rtmpStreamingChangedToState:state:reason: 回调报告推流状态。
参数
| 参数名 | 描述 |
|---|---|
url | |
connection | 连接信息。详见 AgoraRtcConnection。 |
返回值
-
0:方法调用成功。
-
< 0:方法调用失败。详见错误码了解详情和解决建议。
- -2:URL 或转码配置不合法,请检查 URL 和转码配置。
- -7:调用该方法前未初始化 SDK。
- -19:旁路推流地址已被使用,请更换地址。
所属接口类
startRtmpStreamWithTranscoding:transcoding:
开始旁路推流并设置转码配置。
- (int)startRtmpStreamWithTranscoding:(NSString* _Nonnull)url transcoding:(AgoraLiveTranscoding* _Nullable)transcoding NS_SWIFT_NAME(startRtmpStream(withTranscoding:transcoding:));声网推荐你使用更加完善的服务端推流功能,详见实现服务端旁路推流。 你可以调用该方法将音视频流推送到指定的 CDN 地址,并设置转码配置。该方法每次只能推送到一个 CDN 地址,如需推送到多个地址,请多次调用该方法。在一个声网项目下,默认最多支持 200 个并发的旁路推流任务。如需更高配额,请联系技术支持。
注:
- 请在加入频道后调用该方法。
- 只有在
LIVE_BROADCASTING频道场景中的主播角色可以调用该方法。 - 如果你在推流失败后需要重试,请先调用 stopRtmpStream: 停止推流,再调用该方法重新推流;否则,SDK 会返回与上次失败相同的错误码。
相关回调
成功调用该方法后,SDK 会触发 rtcEngine:rtmpStreamingChangedToState:state:reason: 回调报告推流状态。
参数
| 参数名 | 描述 |
|---|---|
url | |
transcoding | 旁路推流的转码配置,详见 AgoraLiveTranscoding。 |
返回值
-
0:方法调用成功。
-
< 0:方法调用失败。详见错误码了解详情和解决建议。
- -2:URL 或转码配置不合法;请检查
url和transcoding。 - -7:调用该方法前未初始化 SDK。
- -19:旁路推流地址已被使用,请更换地址。
- -2:URL 或转码配置不合法;请检查
所属接口类
startRtmpStreamWithTranscodingEx:transcoding:connection:
开始旁路推流并设置转码配置。
- (int)startRtmpStreamWithTranscodingEx:(NSString* _Nonnull)url
transcoding:(AgoraLiveTranscoding* _Nullable)transcoding
connection:(AgoraRtcConnection * _Nonnull)connection NS_SWIFT_NAME(startRtmpStreamWithTranscodingEx(_:transcoding:connection:));声网推荐你使用更加完善的服务端推流功能,详见实现服务端旁路推流。 你可以调用该方法将音视频流推送到指定的 CDN 地址,并设置转码配置。该方法每次只能推送到一个 CDN 地址,如需推送到多个地址,请多次调用该方法。
注: 在使用该方法前,请确保已启用旁路推流服务。
请在加入频道后调用该方法。
仅在直播场景下的主播角色可调用该方法。
如果推流失败后需要重试,请先调用 stopRtmpStreamEx 停止推流,再调用该方法重试,否则 SDK 会返回与上次失败相同的错误码。
适用场景
该方法适用于多频道场景。
相关回调
成功调用该方法后,SDK 会触发 rtcEngine:rtmpStreamingChangedToState:state:reason: 回调报告推流状态。
参数
| 参数名 | 描述 |
|---|---|
url | |
transcoding | 旁路推流的转码配置。详见 AgoraLiveTranscoding。 |
connection | 连接信息。详见 AgoraRtcConnection。 |
返回值
-
0:方法调用成功。
-
< 0:方法调用失败。详见错误码了解详情和解决建议。
- -2:URL 或转码配置不合法,请检查 URL 和转码配置。
- -7:调用该方法前未初始化 SDK。
- -19:旁路推流地址已被使用,请更换地址。
所属接口类
stopRtmpStream:
停止向 CDN 推送媒体流。
- (int)stopRtmpStream:(NSString* _Nonnull)url NS_SWIFT_NAME(stopRtmpStream(_:));声网推荐你使用更加完善的服务端推流功能,详见实现服务端旁路推流。 你可以调用该方法停止向指定的 CDN 地址推送直播流。该方法每次只能停止向一个 CDN 地址推送媒体流。如果需要停止多个地址的推流,请多次调用该方法。
相关回调
成功调用该方法后,SDK 会触发 rtcEngine:rtmpStreamingChangedToState:state:reason: 回调报告推流状态。
参数
返回值
- 0:方法调用成功。
- < 0:方法调用失败。详见错误码了解详情和解决建议。
所属接口类
stopRtmpStreamEx:connection:
停止向指定 CDN 地址推送媒体流。
- (int)stopRtmpStreamEx:(NSString* _Nonnull)url
connection:(AgoraRtcConnection * _Nonnull)connection NS_SWIFT_NAME(stopRtmpStreamEx(_:connection:));声网推荐你使用更加完善的服务端推流功能,详见实现服务端旁路推流。 你可以调用该方法停止向指定的 CDN 地址进行直播推流。该方法每次只能停止向一个 CDN 地址推送媒体流,如果需要停止多个地址的推流,请多次调用该方法。
适用场景
该方法适用于多频道场景。
相关回调
成功调用该方法后,SDK 会触发 rtcEngine:rtmpStreamingChangedToState:state:reason: 回调报告推流状态。
参数
| 参数名 | 描述 |
|---|---|
url | |
connection | 连接信息。详见 AgoraRtcConnection。 |
返回值
- 0:方法调用成功。
- < 0:方法调用失败。详见错误码了解详情和解决建议。
所属接口类
updateRtmpTranscoding:
更新旁路推流的转码配置。
- (int)updateRtmpTranscoding:(AgoraLiveTranscoding* _Nullable)transcoding NS_SWIFT_NAME(updateRtmpTranscoding(_:));声网推荐你使用更加完善的服务端推流功能,详见实现服务端旁路推流。 你可以在开启带转码的旁路推流后,根据场景动态更新转码配置。
参数
| 参数名 | 描述 |
|---|---|
transcoding | 旁路推流的转码配置。详见 AgoraLiveTranscoding。 |
返回值
- 0:方法调用成功。
- < 0:方法调用失败。详见错误码了解详情和解决建议。
所属接口类
updateRtmpTranscodingEx:connection:
更新旁路推流的转码配置。
- (int)updateRtmpTranscodingEx:(AgoraLiveTranscoding* _Nullable)transcoding
connection:(AgoraRtcConnection * _Nonnull)connection NS_SWIFT_NAME(updateRtmpTranscodingEx(_:connection:));声网推荐你使用更加完善的服务端推流功能,详见实现服务端旁路推流。 你可以在开启带转码的 CDN 推流后,根据场景动态更新转码配置。
适用场景
该方法适用于多频道场景。
参数
| 参数名 | 描述 |
|---|---|
transcoding | 旁路推流的转码配置。详见 AgoraLiveTranscoding。 |
connection | 连接信息。详见 AgoraRtcConnection。 |
返回值
- 0:方法调用成功。
- < 0:方法调用失败。详见错误码了解详情和解决建议。
所属接口类
rtcEngine:rtmpStreamingEventWithUrl:eventCode:
报告旁路推流过程中的事件。
- (void)rtcEngine:(AgoraRtcEngineKit* _Nonnull)engine rtmpStreamingEventWithUrl:(NSString* _Nonnull)url eventCode:(AgoraRtmpStreamingEvent)eventCode NS_SWIFT_NAME(rtcEngine(_:rtmpStreamingEventWithUrl:eventCode:));自从
自 v3.1.0 版本新增。
触发时机
该回调在旁路推流过程中发生事件时被触发。
参数
| 参数名 | 描述 |
|---|---|
engine | 引擎对象。详见 AgoraRtcEngineKit。 |
url | |
eventCode | 旁路推流的事件码。详见 AgoraRtmpStreamingEvent。 |
所属接口类
rtcEngine:rtmpStreamingChangedToState:state:reason:
RTMP 或 RTMPS 推流状态发生变化时触发的回调。
- (void)rtcEngine:(AgoraRtcEngineKit* _Nonnull)engine rtmpStreamingChangedToState:(NSString* _Nonnull)url state:(AgoraRtmpStreamingState)state reason:(AgoraRtmpStreamingReason)reason NS_SWIFT_NAME(rtcEngine(_:rtmpStreamingChangedToState:state:reason:));当 RTMP 或 RTMPS 推流状态发生变化时,SDK 会触发该回调,用于报告你调用 addPublishStreamUrl 或 removePublishStreamUrl 的结果。该回调返回推流地址及其当前的推流状态。当出现异常时,你可以通过 reason 参数中的详细错误信息进行排查。
触发时机
该回调在你调用 addPublishStreamUrl 或 removePublishStreamUrl 方法后,推流状态发生变化时被触发。
参数
| 参数名 | 描述 |
|---|---|
engine | |
url | |
state | RTMP 或 RTMPS 推流状态,详见 AgoraRtmpStreamingState。 |
reason | 推流的详细错误信息,详见 AgoraRtmpStreamingReason。 |
所属接口类
rtcEngineTranscodingUpdated:
发布端的云端转码设置更新时触发的回调。
- (void)rtcEngineTranscodingUpdated:(AgoraRtcEngineKit * _Nonnull)engine NS_SWIFT_NAME(rtcEngineTranscodingUpdated(_:));当你在 startRtmpStreamWithTranscoding:transcoding: 方法中更新 AgoraLiveTranscoding 时,SDK 会触发该回调以报告更新信息。
注: 如果你首次调用 startRtmpStreamWithTranscoding:transcoding: 方法设置 AgoraLiveTranscoding,SDK 不会触发该回调。
触发时机
当发布端的云端转码设置更新时触发。
参数
| 参数名 | 描述 |
|---|---|
engine |