直推 CDN

  • Unreal C++

更新时间不可用

setDirectCdnStreamingAudioConfiguration

设置主播端直接向 CDN 推流时的音频编码属性。

C++
virtual int setDirectCdnStreamingAudioConfiguration(AUDIO_PROFILE_TYPE profile) = 0;

详情

该方法仅对麦克风采集或自采集的音频有效,即对在 DirectCdnStreamingMediaOptions 中设置 publishMicrophoneTrack 或 publishCustomAudioTrack 为 true 时所采集的音频有效。

参数

参数名描述
profile

音频编码属性,包含采样率、码率、编码模式和声道数。详见 AUDIO_PROFILE_TYPE。

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

返回值

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

所属接口类

setDirectCdnStreamingVideoConfiguration

设置主播端直接向 CDN 推流时的视频编码属性。

C++
virtual
            int setDirectCdnStreamingVideoConfiguration(const VideoEncoderConfiguration& config)
            = 0;

详情

该方法仅对摄像头采集、屏幕共享或自采集的视频有效。即对在 DirectCdnStreamingMediaOptions 中设置 publishCameraTrack 或 publishCustomVideoTrack 为 true 时所采集的视频有效。

如果你设置的视频分辨率超出你的摄像头设备支持的范围,SDK 会根据你的设置进行自适应,取最接近、且长宽比与你设置的分辨率一致的值进行采集、编码、推流。你可以通过 onDirectCdnStreamingStats 回调了解推送的视频流的实际分辨率。

参数

参数名描述
config

视频编码参数配置。详见 VideoEncoderConfiguration。

注: 在直接向 CDN 推流时,SDK 目前仅支持将 ORIENTATION_MODE 设为横屏模式(ORIENTATION_MODE_FIXED_LANDSCAPE)或竖屏模式(ORIENTATION_MODE_FIXED_PORTRAIT)。

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

返回值

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

所属接口类

startDirectCdnStreaming

设置主播端开始直接向 CDN 推流。

C++
virtual int startDirectCdnStreaming(IDirectCdnStreamingEventHandler* eventHandler,
            const char* publishUrl, const DirectCdnStreamingMediaOptions& options) = 0;

详情

SDK 不支持同一时间向同一个 URL 重复推流。

媒体选项说明

SDK 不支持 publishCameraTrack 和 publishCustomVideoTrack 同时为 true,也不支持 publishMicrophoneTrack 和 publishCustomAudioTrack 同时为 true。你可以根据场景需求设置媒体选项 (DirectCdnStreamingMediaOptions)。示例如下:

如果你想推送主播端自定义采集的音视频流,请将媒体选项进行如下设置:

  • publishCustomAudioTrack 设为 true 并调用 pushAudioFrame
  • publishCustomVideoTrack 设为 true 并调用 pushVideoFrame
  • 确保 publishCameraTrack 为 false (默认值)
  • 确保 publishMicrophoneTrack 为 false (默认值)

自 v4.2.0 起,SDK 支持推送纯音频流。你可以在 DirectCdnStreamingMediaOptions 中将 publishCustomAudioTrack 或者 publishMicrophoneTrack 设为 true,并调用 pushAudioFrame 即可推送纯音频流。

注: 在向 CDN 直接推流时,SDK 目前仅支持推送一路音频流及视频流,或一路纯音频流。

参数

参数名描述
eventHandler
publishUrl

CDN 推流 URL。

options

主播端的媒体选项。详见 DirectCdnStreamingMediaOptions。

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

返回值

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

所属接口类

stopDirectCdnStreaming

设置主播端停止直接向 CDN 推流。

C++
virtual int stopDirectCdnStreaming() = 0;

返回值

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

所属接口类

onDirectCdnStreamingStateChanged

CDN 推流状态改变回调。

C++
virtual void onDirectCdnStreamingStateChanged(DIRECT_CDN_STREAMING_STATE state, DIRECT_CDN_STREAMING_REASON reason, const char* message)  {
  (void)state;
  (void)reason;
  (void)message;
};

详情

主播端直接向 CDN 推流后,当推流状态改变时,SDK 会触发该回调向你报告新的状态、错误码和信息。你可以据此排查问题。

参数

参数名描述
state

当前推流状态。详见 DIRECT_CDN_STREAMING_STATE。

reason

推流状态改变的原因。详见 DIRECT_CDN_STREAMING_REASON。

message

状态改变对应的信息。

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

所属接口类

onDirectCdnStreamingStats

CDN 推流统计数据回调。

C++
virtual void onDirectCdnStreamingStats(const DirectCdnStreamStats& stats)  {
  (void)stats;
};

详情

在主播直接向 CDN 推流的过程中,SDK 每隔 1 秒触发一次该回调。

参数

参数名描述
stats

当前推流的统计数据。详见 DirectCdnStreamingStats。

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

所属接口类