旁路推流
startRtmpStreamWithoutTranscoding:
开始向 CDN 推流(不进行转码)。
- (int)startRtmpStreamWithoutTranscoding:(NSString* _Nonnull)url NS_SWIFT_NAME(startRtmpStreamWithoutTranscoding(_:));
声网推荐你使用更加完善的服务端推流功能,详见实现服务端旁路推流。 你可以调用该方法将音频或视频流推送到指定的 CDN 地址。该方法每次只能向一个 CDN 地址推流,如果需要推送到多个地址,请多次调用该方法。
- 请在加入频道后调用该方法。
- 只有在
LIVE_BROADCASTING频道场景中的主播可以调用该方法。 - 如果推流失败后需要重试,必须先调用 stopRtmpStream: 停止推流,再调用该方法重新推流;否则,SDK 会返回与上次失败相同的错误码。
相关回调
成功调用该方法后,SDK 会触发 rtcEngine:rtmpStreamingChangedToState:state:reason: 回调报告推流状态。
参数
- url
- 旁路推流地址。格式为 RTMP 或 RTMPS,字符长度不能超过 1024 字节。不支持中文等特殊字符。
返回值
- 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
- 旁路推流地址。格式为 RTMP 或 RTMPS,长度不能超过 1024 字节。不支持中文等特殊字符。
- 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
- 旁路推流地址,格式为 RTMP 或 RTMPS。地址长度不能超过 1024 字节,不支持中文等特殊字符。
- 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
- 旁路推流地址,格式为 RTMP 或 RTMPS。地址长度不能超过 1024 字节,不支持中文等特殊字符。
- 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: 回调报告推流状态。
参数
- url
- 旁路推流地址。格式为 RTMP 或 RTMPS。字符串长度不能超过 1024 字节。不支持中文等特殊字符。
返回值
- 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
- 旁路推流地址。格式为 RTMP 或 RTMPS。字符长度不能超过 1024 字节。不支持中文等特殊字符。
- 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:));
触发时机
该回调在旁路推流过程中发生事件时被触发。
参数
- engine
- 引擎对象。详见 AgoraRtcEngineKit。
- url
- 旁路推流的 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
- CDN 推流地址。
- state
- RTMP 或 RTMPS 推流状态,详见 AgoraRtmpStreamingState。
- reason
- 推流的详细错误信息,详见 AgoraRtmpStreamingReason。
rtcEngineTranscodingUpdated:
发布端的云端转码设置更新时触发的回调。
- (void)rtcEngineTranscodingUpdated:(AgoraRtcEngineKit * _Nonnull)engine NS_SWIFT_NAME(rtcEngineTranscodingUpdated(_:));
当你在 startRtmpStreamWithTranscoding:transcoding: 方法中更新 AgoraLiveTranscoding 时,SDK 会触发该回调以报告更新信息。
触发时机
当发布端的云端转码设置更新时触发。
参数
- engine