合流配置
- 开启服务端合流
服务端合流(旁路直播)配置信息,通过 SDK 信令将参数发送到服务端,服务端按照指定的参数进行合流并推出 RTMP 流;
// 旁路直播合流配置信息,通过 SDK 将参数发送到服务端
// 服务端按照指定的参数进行合流并推出 RTMP 流
typedef struct
{
char* track_id; // Track Id,房间内唯一
int is_video; // 是否为视频类型,如果为 0 则以下参数无效
int pos_x; // 此路流(即此 Track)在 RTMP 流画布中的 X 坐标
int pos_y; // 此路流(即此 Track)在 RTMP 流画布中的 Y 坐标
int pos_z; // 此路流(即此 Track)在 RTMP 流画布中的 Z 坐标
int width; // 此路流(即此 Track)在 RTMP 流画布中的宽度,缩放、裁减方式根据后端配置决定
int height; // 此路流(即此 Track)在 RTMP 流画布中的高度,缩放、裁减方式根据后端配置决定
}QNRtcMergeOptInfo;
// 配置此房间内指定音视频 Track 在服务端合流转推(RTMP 流)时的位置布局
// 合流转推的画布大小在 qiniu.com ==》“管理控制台” ==》“实时音视频云” 的指定连麦应用中配置
// @param added_tracks_opt 新增 Track 及其在合流画面中的位置和大小,更新位置、大小时也用此参数
// @param added_tracks_count added_tracks_opt 指针数组中的元素个数
// @param remove_tracks_id 取消 Track 在合流画面的合流
// @param remove_tracks_id_count remove_tracks_id 指针数组中的元素个数
// @return 0:成功;其它请参考错误码列表
int qn_rtc_set_merge_stream_layout(
QNRtcMergeOptInfo* added_tracks_opt[],
size_t added_tracks_count,
char* remove_tracks_id[],
size_t remove_tracks_id_count
);
- 关闭服务端合流
// 停止所有此房间内的所有合流任务
// 房间未连接的情况下停止无效
// @return 0:操作成功,具体合流结果请通过观看旁路直播进行查看
int qn_rtc_stop_merge_stream();
建议一个房间内同时只有一个用户可以控制服务端合流的配置,当此用户离开房间时,务必调用 qn_rtc_stop_merge_stream
取消合流操作,以免旁路推流(RTMP 流)出现黑屏现象。
有关服务端合流功能更详细的介绍,请参考链接:服务端合流