旁路推流
startRtmpStreamWithoutTranscoding
开始向 CDN 推送未经转码的媒体流。
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:旁路推流地址已被使用,请更换其他地址。
- -2:
startRtmpStreamWithoutTranscodingEx
开始向 CDN 推送未经转码的媒体流。
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
开始旁路推流并设置转码配置。
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:旁路推流地址已被使用,请更换地址。
- -2:URL 或转码配置不合法,请检查
startRtmpStreamWithTranscodingEx
开始旁路推流并设置转码配置。
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:旁路推流地址已被使用,请更换其他地址。
- -2:URL 或转码配置无效,请检查
stopRtmpStream
停止向指定 CDN 地址推送媒体流。
virtual int stopRtmpStream(const char* url) = 0;
声网推荐你使用更加完善的服务端推流功能,详见实现服务端旁路推流。 你可以调用该方法停止向指定 CDN 地址的直播推流。该方法每次只能停止一个地址的推流,如需停止多个地址的推流,请多次调用该方法。
相关回调
成功调用该方法后,SDK 会触发 onRtmpStreamingStateChanged 回调报告推流状态。
参数
- url
- 旁路推流地址,格式为 RTMP 或 RTMPS。字符长度不能超过 1024 字节。信息不支持中文等特殊字符。
返回值
- 0:方法调用成功。
- < 0:方法调用失败。详见错误码了解详情和解决建议。
stopRtmpStreamEx
停止向指定 CDN 地址推送媒体流。
virtual int stopRtmpStreamEx(const char* url, const RtcConnection& connection) = 0;
声网推荐你使用更加完善的服务端推流功能,详见实现服务端旁路推流。 你可以调用该方法停止向指定的 CDN 地址推送媒体流。该方法每次只能停止一个地址的推流,如需停止多个地址的推流,请多次调用该方法。
适用场景
该方法适用于多频道场景。
相关回调
成功调用该方法后,SDK 会触发 onRtmpStreamingStateChanged 回调报告推流状态。
参数
- url
- 旁路推流地址,格式为 RTMP 或 RTMPS。字符长度不能超过 1024 字节,不支持中文等特殊字符。
- connection
- 连接信息。详见 RtcConnection。
返回值
- 0:方法调用成功。
- < 0:方法调用失败。详见错误码了解详情和解决建议。
updateRtmpTranscoding
更新旁路推流的转码配置。
virtual int updateRtmpTranscoding(const LiveTranscoding& transcoding) = 0;
声网推荐你使用更加完善的服务端推流功能,详见实现服务端旁路推流。 开始使用转码功能将媒体流推送到 CDN 后,你可以根据实际场景动态更新转码配置。更新配置后,SDK 会触发 onTranscodingUpdated 回调。
参数
- transcoding
- 旁路推流的转码配置。详见 LiveTranscoding。
返回值
- 0:方法调用成功。
- < 0:方法调用失败。详见错误码了解详情和解决建议。
updateRtmpTranscodingEx
更新旁路推流的转码配置。
virtual int updateRtmpTranscodingEx(const LiveTranscoding& transcoding, const RtcConnection& connection) = 0;
声网推荐你使用更加完善的服务端推流功能,详见实现服务端旁路推流。 开始使用转码功能将媒体流推送到 CDN 后,你可以根据实际场景动态更新转码配置。更新配置后,SDK 会触发 onTranscodingUpdated 回调。
适用场景
该方法适用于多频道场景。
参数
- transcoding
- 旁路推流的转码配置。详见 LiveTranscoding。
- connection
- 连接信息。详见 RtcConnection。
返回值
- 0:方法调用成功。
- < 0:方法调用失败。详见错误码了解详情和解决建议。
onRtmpStreamingEvent
报告旁路推流过程中的事件。
virtual void onRtmpStreamingEvent(const char* url, RTMP_STREAMING_EVENT eventCode)
参数
- url
- 旁路推流的地址。
- eventCode
- 旁路推流的事件码,详见 RTMP_STREAMING_EVENT。
onRtmpStreamingStateChanged
旁路推流状态发生变化时触发的回调。
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
当发布端的云端转码设置更新时触发的回调。
virtual void onTranscodingUpdated() {}
当你调用 startRtmpStreamWithTranscoding 方法并更新其中的 LiveTranscoding 配置时,SDK 会触发该回调以报告更新信息。