推流

如果登录房间时选择了主播或者互动身份,需要进行推流操作,其他人才能看到直播画面。

即将自己的视频画面通过调用推流方法推送到服务端,观看者通过从服务端拉流,才可以看到推流者的视频画面。

步骤

1、设置推流配置

(1)设置推流视频配置:

推流前需要设置推流视频配置ChuangVideoConfig,设置推流的分辨率、比特率、帧率等数据,一定要在推流前设置,推流后设置或者修改不会生效。如果需要修改配置,需要停止推流,修改配置后,重新发起推流新的配置才会生效。

m_cEngine->setVideoConfig(videoConfig,MAIN);

方法参数说明:

参数 类型 是否必传 描述
videoConfig ChuangVideoConfig 必传 设置推流配置
MAIN ChuangPublishChannel 非必传 设置推流的通道

推流参数众多,具体可参考demo代码示例。

(2)设置推流音频配置:

推流前设置推流音频配置ChuangAudioConfig,通过该函数可以设置推流音频的编码类型、码率、音频声道等,如果不调用此函数,则默认标准音质,目前仅支持推流前设置,推流后设置或者修改不会生效。如果需要修改配置,需要停止推流,修改配置后,重新发起推流新的配置才会生效。

m_cEngine->setAudioConfig(audioConfig,MAIN);

方法参数说明:

参数 类型 是否必传 描述
audioConfig ChuangAudioConfig 必传 设置推流配置
MAIN ChuangPublishChannel 非必传 设置推流的通道

2 发起推流

登录房间成功返回后,比如主播或者多人视频场景下,需要将自己音视频流推送给他人看到,则必须调用以下推流接口,将上述初始化的配置类传入推流接口。

推流前设置推流音频配置ChuangAudioConfig,内部包括RTMP服务地址(rtmpAddress)和流类型(streamMode),默认流类型是音视频,如果不需要转推流到RTMP,推流类型也是音视频流。

注意

如果推流时需要同时推流到RTMP服务则必须给ChuangStreamConfig的rtmpAddress参数传入正确的RTMP服务地址,RTMP地址内容请参考以下方法参数说明;如果不需要同时推流到RTMP,则RTMP地址传空。为了保证RTMP推流和RTC推流状态一致,如果RTMP地址传了值则必须保证RTMP地址正确,否则会影响正常的RTC推流。

如果推流不是默认的音视频,比如推纯音频,则可以给ChuangStreamConfig的streamMode传相应纯音频推流的值。

//推主流  
m_cEngine->startPublishStream(StreamConfig, MAIN); 

方法参数说明:

参数 类型 是否必传 描述
StreamConfig ChuangStreamConfig 必传 推流配置参数对象,详情参照 ChuangStreamConfig
MAIN ChuangPublishChannel 非必传 设置推流的通道

3、停止推流

需要停止推流时调用:stopPublishStream

//停主流  
m_cEngine->stopPublishStream(MAIN); 

4、媒体设备控制

设置本端麦克风是否静音

即推流时是否采集本端的声音,如果不采集设置true,如果采集则设置false,推流中可以实时修改该参数,会立即生效。如果不设置,推流默认是采集声音。

m_cEngine->muteLocalAudio(streamId,true);

方法参数说明:

参数 类型 是否必传 描述
streamId const char* 必传 流ID
mute bool 必传 本端是否静音,如果静音(即不采集麦克风声音)设置true,如果不静音(即采集麦克风声音)设置false

5、实现推流相关回调

当调用了开始推流、停止推流等方法,会触发onPublishStreamStateUpdate。可在回调方法中处理推流返回的结果。

void onPublishStreamStateUpdate(const char* streamId, ChuangPublishState state, int errorCode)

results matching ""

    No results matching ""