旁路推流

  • macOS

更新时间不可用

startRtmpStreamWithoutTranscoding:

开始向 CDN 推流(不进行转码)。

Objective-C
- (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 推送未经转码的媒体流。

Objective-C
- (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:

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

Objective-C
- (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:旁路推流地址已被使用,请更换地址。

所属接口类

startRtmpStreamWithTranscodingEx:transcoding:connection:

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

Objective-C
- (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 推送媒体流。

Objective-C
- (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 地址推送媒体流。

Objective-C
- (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:

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

Objective-C
- (int)updateRtmpTranscoding:(AgoraLiveTranscoding* _Nullable)transcoding NS_SWIFT_NAME(updateRtmpTranscoding(_:));

声网推荐你使用更加完善的服务端推流功能,详见实现服务端旁路推流。 你可以在开启带转码的旁路推流后,根据场景动态更新转码配置。

参数

参数名描述
transcoding

旁路推流的转码配置。详见 AgoraLiveTranscoding。

表格内容超出当前宽度,可横向滚动查看更多列。

返回值

  • 0:方法调用成功。
  • < 0:方法调用失败。详见错误码了解详情和解决建议。

所属接口类

updateRtmpTranscodingEx:connection:

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

Objective-C
- (int)updateRtmpTranscodingEx:(AgoraLiveTranscoding* _Nullable)transcoding
                    connection:(AgoraRtcConnection * _Nonnull)connection NS_SWIFT_NAME(updateRtmpTranscodingEx(_:connection:));

声网推荐你使用更加完善的服务端推流功能,详见实现服务端旁路推流。 你可以在开启带转码的 CDN 推流后,根据场景动态更新转码配置。

适用场景

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

参数

参数名描述
transcoding

旁路推流的转码配置。详见 AgoraLiveTranscoding。

connection

连接信息。详见 AgoraRtcConnection。

表格内容超出当前宽度,可横向滚动查看更多列。

返回值

  • 0:方法调用成功。
  • < 0:方法调用失败。详见错误码了解详情和解决建议。

所属接口类

rtcEngine:rtmpStreamingEventWithUrl:eventCode:

报告旁路推流过程中的事件。

Objective-C
- (void)rtcEngine:(AgoraRtcEngineKit* _Nonnull)engine rtmpStreamingEventWithUrl:(NSString* _Nonnull)url eventCode:(AgoraRtmpStreamingEvent)eventCode NS_SWIFT_NAME(rtcEngine(_:rtmpStreamingEventWithUrl:eventCode:));

自从

自 v3.1.0 版本新增。

触发时机

该回调在旁路推流过程中发生事件时被触发。

参数

参数名描述
engine

引擎对象。详见 AgoraRtcEngineKit。

url

旁路推流的 URL。

eventCode

旁路推流的事件码。详见 AgoraRtmpStreamingEvent。

表格内容超出当前宽度,可横向滚动查看更多列。

所属接口类

rtcEngine:rtmpStreamingChangedToState:state:reason:

RTMP 或 RTMPS 推流状态发生变化时触发的回调。

Objective-C
- (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:

发布端的云端转码设置更新时触发的回调。

Objective-C
- (void)rtcEngineTranscodingUpdated:(AgoraRtcEngineKit * _Nonnull)engine NS_SWIFT_NAME(rtcEngineTranscodingUpdated(_:));

当你在 startRtmpStreamWithTranscoding:transcoding: 方法中更新 AgoraLiveTranscoding 时,SDK 会触发该回调以报告更新信息。

注: 如果你首次调用 startRtmpStreamWithTranscoding:transcoding: 方法设置 AgoraLiveTranscoding,SDK 不会触发该回调。

触发时机

当发布端的云端转码设置更新时触发。

参数

参数名描述
engine
表格内容超出当前宽度,可横向滚动查看更多列。

所属接口类