旁路推流

  • C++

更新时间不可用

startRtmpStreamWithoutTranscoding

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

C++
virtual int startRtmpStreamWithoutTranscoding(const char* url) = 0;

声网推荐你使用更加完善的服务端推流功能,详见实现服务端旁路推流。 你可以调用该方法将音频或视频流推送到指定的 CDN 地址。该方法每次只能向一个 CDN 地址推送媒体流,如需推送到多个地址,请多次调用该方法。

注:

  • 请在加入频道后调用该方法。
  • 仅在 LIVE_BROADCASTING 模式下的主播角色可调用该方法。
  • 若推流失败后需要重试,请先调用 stopRtmpStream 停止推流,再调用该方法重新推流;否则,SDK 会返回与上次失败相同的错误码。

相关回调

成功调用该方法后,SDK 会触发 onRtmpStreamingStateChanged 回调报告推流状态。

参数

参数名描述
url

旁路推流地址,格式为 RTMP 或 RTMPS,字符长度不能超过 1024 字节。

注: 不支持中文等特殊字符。

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

返回值

  • 0:方法调用成功。

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

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

所属接口类

startRtmpStreamWithoutTranscodingEx

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

C++
virtual int startRtmpStreamWithoutTranscodingEx(const char* url, const RtcConnection& connection) = 0;

声网推荐你使用更加完善的服务端推流功能,详见实现服务端旁路推流。 你可以调用该方法将音频或视频流推送到指定的 CDN 地址。该方法一次只能向一个 CDN 地址推送媒体流。如需推送到多个地址,请多次调用该方法。调用该方法后,SDK 会在本地客户端触发 onRtmpStreamingStateChanged 回调报告推流状态。

注:

  • 请在加入频道后调用该方法。
  • 仅在 LIVE_BROADCASTING 频道场景中的主播角色可以调用该方法。
  • 如果推流失败后需要重试,请先调用 stopRtmpStream 停止推流,再调用该方法重试,否则 SDK 会返回与上次失败相同的错误码。

适用场景

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

相关回调

成功调用该方法后,SDK 会触发 onRtmpStreamingStateChanged 回调报告推流状态。

参数

参数名描述
url

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

connection

连接信息。详见 RtcConnection。

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

返回值

  • 0:方法调用成功。

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

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

所属接口类

startRtmpStreamWithTranscoding

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

C++
virtual int startRtmpStreamWithTranscoding(const char* url, const LiveTranscoding& transcoding) = 0;

声网推荐你使用更加完善的服务端推流功能,详见实现服务端旁路推流。 你可以调用该方法将实时音视频流推送到指定的 CDN 地址,并设置转码配置。该方法每次只能将媒体流推送到一个 CDN 地址。如果你需要推送到多个地址,请多次调用该方法。在同一个声网项目下,默认最多支持 200 个并发的媒体流推送任务。如果你需要更高的配额,请联系技术支持。

注:

  • 请在加入频道后调用该方法。
  • 只有在直播频道场景中的主播角色可以调用该方法。
  • 如果你想在推流失败后重试推流,请先调用 stopRtmpStream 停止推流,再调用该方法重试,否则 SDK 会返回与上次推流失败相同的错误码。

参数

参数名描述
url

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

transcoding

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

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

返回值

  • 0:方法调用成功。

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

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

所属接口类

startRtmpStreamWithTranscodingEx

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

C++
virtual int startRtmpStreamWithTranscodingEx(const char* url, const LiveTranscoding& transcoding, const RtcConnection& connection) = 0;

声网推荐你使用更加完善的服务端推流功能,详见实现服务端旁路推流。 你可以调用该方法将实时音视频流推送到指定的 CDN 地址,并设置转码配置。该方法每次只能将媒体流推送到一个 CDN 地址,如果需要推送到多个地址,请多次调用该方法。

注:

  • 使用该方法前,请确保已启用旁路推流服务。
  • 请在加入频道后调用该方法。
  • 仅在直播场景下的主播角色可以调用该方法。
  • 如果推流失败后需要重试,请先调用 stopRtmpStreamEx 停止推流,再调用该方法重试,否则 SDK 会返回与上次失败相同的错误码。

适用场景

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

参数

参数名描述
url

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

transcoding

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

connection

连接信息。详见 RtcConnection。

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

返回值

  • 0:方法调用成功。

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

    • -2:URL 或转码配置无效,请检查 url 和转码配置。
    • -7:调用该方法前未初始化 SDK。
    • -19:旁路推流地址已被使用,请更换其他地址。

所属接口类

stopRtmpStream

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

C++
virtual int stopRtmpStream(const char* url) = 0;

声网推荐你使用更加完善的服务端推流功能,详见实现服务端旁路推流。 你可以调用该方法停止向指定 CDN 地址的直播推流。该方法每次只能停止一个地址的推流,如需停止多个地址的推流,请多次调用该方法。

相关回调

成功调用该方法后,SDK 会触发 onRtmpStreamingStateChanged 回调报告推流状态。

参数

参数名描述
url

旁路推流地址,格式为 RTMP 或 RTMPS。字符长度不能超过 1024 字节。

注: 不支持中文等特殊字符。

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

返回值

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

所属接口类

stopRtmpStreamEx

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

C++
virtual int stopRtmpStreamEx(const char* url, const RtcConnection& connection) = 0;

声网推荐你使用更加完善的服务端推流功能,详见实现服务端旁路推流。 你可以调用该方法停止向指定的 CDN 地址推送媒体流。该方法每次只能停止一个地址的推流,如需停止多个地址的推流,请多次调用该方法。

适用场景

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

相关回调

成功调用该方法后,SDK 会触发 onRtmpStreamingStateChanged 回调报告推流状态。

参数

参数名描述
url

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

connection

连接信息。详见 RtcConnection。

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

返回值

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

所属接口类

updateRtmpTranscoding

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

C++
virtual int updateRtmpTranscoding(const LiveTranscoding& transcoding) = 0;

声网推荐你使用更加完善的服务端推流功能,详见实现服务端旁路推流。 开始使用转码功能将媒体流推送到 CDN 后,你可以根据实际场景动态更新转码配置。更新配置后,SDK 会触发 onTranscodingUpdated 回调。

参数

参数名描述
transcoding

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

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

返回值

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

所属接口类

updateRtmpTranscodingEx

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

C++
virtual int updateRtmpTranscodingEx(const LiveTranscoding& transcoding, const RtcConnection& connection) = 0;

声网推荐你使用更加完善的服务端推流功能,详见实现服务端旁路推流。 开始使用转码功能将媒体流推送到 CDN 后,你可以根据实际场景动态更新转码配置。更新配置后,SDK 会触发 onTranscodingUpdated 回调。

适用场景

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

参数

参数名描述
transcoding

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

connection

连接信息。详见 RtcConnection。

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

返回值

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

所属接口类

onRtmpStreamingEvent

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

C++
virtual void onRtmpStreamingEvent(const char* url, RTMP_STREAMING_EVENT eventCode)

参数

参数名描述
url

旁路推流的地址。

eventCode

旁路推流的事件码,详见 RTMP_STREAMING_EVENT。

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

所属接口类

onRtmpStreamingStateChanged

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

C++
virtual void onRtmpStreamingStateChanged(const char* url, RTMP_STREAM_PUBLISH_STATE state, RTMP_STREAM_PUBLISH_REASON reason)

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

参数

参数名描述
url

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

state

当前的旁路推流状态,详见 RTMP_STREAM_PUBLISH_STATE。

reason

旁路推流状态变化的原因,详见 RTMP_STREAM_PUBLISH_REASON。

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

所属接口类

onTranscodingUpdated

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

C++
virtual void onTranscodingUpdated() {}

当你调用 startRtmpStreamWithTranscoding 方法并更新其中的 LiveTranscoding 配置时,SDK 会触发该回调以报告更新信息。

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

所属接口类