Appearance
开始发布媒体流
说明
该接口会向 TRTC 服务器发送指令,要求其将当前用户的音视频流转推/转码到直播 CDN 或者回推到 TRTC 房间中您可以通过 target 配置中的 mode 指定具体的发布模式
方法名
startPublishMediaStream
用法
- 用法如下:
js
module.startPublishMediaStream({
params:{
},
//成功执行的函数
success: (res) => {
let data = res.data;
console.log(data)
},
//失败执行的函数
fail: (res) => {
console.log(res)
},
//接口调用完成返回函数,不管成功还是失败都会返回
complete: (res) => {
// console.log(res)
}
})js
module.startPublishMediaStream({
params:{
},
//成功执行的函数
success: (res) => {
const data = res.data;
console.log(data)
},
//失败执行的函数
fail: (res) => {
console.log(res)
},
//接口调用完成返回函数,不管成功还是失败都会返回
// complete: (res) => {
// console.log(res)
// }
} as LevenOptions)- 参数说明
参数名 参数类型 是否必填 默认值 参数描述 params Object 是 无 参数配置 params.config Object 否 无 媒体流转码配置参数 params.config.audioMixUserList Object[] 否 无 指定转码流中的每一路输入音频的信息
该字段是一个 user 类型的数组,数组中的每一个元素都用来代表每一路输入音频的信息。
用户信息支持不填写(即 audioMixUserList 为空)。此时若设置了encoderParam中音频相关编码输出参数,TRTC 后台服务器将自动将所有主播的音频混合输出(当前仅支持最高 16 路音视频输入)。params.config.audioMixUserList.userId String 否 无 用户标识,当前用户的 userId,相当于用户名,使用 UTF-8 编码 params.config.audioMixUserList.intRoomId Integer 否 无 数字房间号 params.config.audioMixUserList.strRoomId String 否 无 字符串房间号 params.config.backgroundColor String 否 无 指定混合画面的底色颜色 params.config.backgroundImage String 否 无 指定混合画面的背景图 URL,腾讯云的后台服务器会将该 URL 地址指定的图片混合到最终的画面中
默认值:空值,即不设置背景图片。
【特别说明】
URL 链接长度限制为 512 字节。图片大小限制不超过 2MB。
图片格式支持 png、jpg、jpeg、bmp 格式,推荐使用 png 格式的半透明图片作为背景图。params.config.videoLayoutList Object[] 否 无 指定混合画面中的每一路视频画面的位置、大小、图层以及流类型等信息。 params.config.videoLayoutList.x Integer 否 无 指定该路画面的 x 坐标(单位:像素) params.config.videoLayoutList.fixedVideoUser Object[] 否 无 参与转码的用户信息
用户信息 支持不填写(即 userId、intRoomId 和 strRoomId 均不填写)。此时当发起混流的房间中有主播上行音视频数据时,TRTC 后台服务器将自动将对应主播音视频填充到您指定的布局中。params.config.videoLayoutList.fixedVideoUser.userId String 否 无 用户标识,当前用户的 userId,相当于用户名,使用 UTF-8 编码 params.config.videoLayoutList.fixedVideoUser.intRoomId Integer 否 无 数字房间号 params.config.videoLayoutList.fixedVideoUser.strRoomId String 否 无 字符串房间号 params.config.videoLayoutList.fixedVideoStreamType String 否 无 指定该路画面是主路画面 TRTC_VIDEO_STREAM_TYPE_BIG还是辅路画面TRTC_VIDEO_STREAM_TYPE_SUB。params.config.videoLayoutList.height Integer 否 无 指定该路画面的高度(单位:像素) params.config.videoLayoutList.width Integer 否 无 指定该路画面的宽度(单位:像素) params.config.videoLayoutList.backgroundColor String 否 无 指定混合画面的底色颜色 params.config.videoLayoutList.fillMode String 否 无 画面填充模式,可选值: TRTC_VIDEO_RENDER_MODE_FILL:填充模式:即将画面内容居中等比缩放以充满整个显示区域,超出显示区域的部分将会被裁剪掉,此模式下画面可能不完整TRTC_VIDEO_RENDER_MODE_FIT:适应模式:即按画面长边进行缩放以适应显示区域,短边部分会被填充为黑色,此模式下图像完整但可能留有黑边。TRTC_VIDEO_RENDER_MODE_SCALE_FILL:缩放填充模式:即无论画面的宽高比,都会被拉伸或压缩以完全填充显示区域,此模式下画面宽高比可能会被改变,导致渲染画面变形params.config.videoLayoutList.placeHolderImage String 否 无 占位图 URL,即当指定用户暂时仅上行音频时,腾讯云的后台服务器会将该 URL 地址指定的图片混合到最终的画面中 params.config.videoLayoutList.y Integer 否 无 指定该路画面的 y 坐标(单位:像素) params.config.videoLayoutList.zOrder Integer 否 无 指定该路画面的层级(取值范围:0 - 15,不可重复) params.encoderParam Object 否 无 媒体流编码输出参数 params.encoderParam.audioEncodedChannelNum Integer 否 无 指定媒体发布流的目标音频声道数 params.encoderParam.audioEncodedKbps Integer 否 无 指定媒体发布流的目标音频码率
默认值:50kbps,取值范围是 [32,192]params.encoderParam.audioEncodedCodecType Integer 否 无 指定媒体发布流的目标音频编码类型
默认值:0,代表 LC-AAC。可设定的数值只有三个数字:0 - LC-AAC,1 - HE-AAC,2 - HE-AACv2
HE-AAC 和 HE-AACv2 支持的输出流音频采样率范围为[48000, 44100, 32000, 24000, 16000]
当音频编码设置为 HE-AACv2 时,只支持输出流音频声道数为双声道params.encoderParam.videoEncodedFPS Integer 否 无 指定媒体发布流的目标视频帧率
推荐值:20fps,取值范围是 (0,30]params.encoderParam.videoSeiParams String 否 无 混流 SEI 参数,默认不填写,参数以 json 字符串形式传入,参考内容 params.encoderParam.audioEncodedSampleRate Integer 否 无 定媒体发布流的目标音频采样率
默认值:48000Hz。取值为 [48000, 44100, 32000, 24000, 16000, 8000],单位是 Hzparams.encoderParam.videoEncodedCodecType Integer 否 无 指定媒体发布流的目标视频编码类型
默认值:0,代表 H264。可设定的数值只有两个数字:0 - H264,1 - H265params.encoderParam.videoEncodedGOP Integer 否 无 指定媒体发布流的目标视频关键帧间隔(GOP)
推荐值:3,单位为秒,取值范围是 [1,5]params.encoderParam.videoEncodedHeight Integer 否 无 指定媒体发布流的目标分辨率(高度)
单位:像素值,推荐值:640,如果您只混合音频流,请将 width 和 height 均设置为 0,否则混流转码后的直播流中会有黑色背景params.encoderParam.videoEncodedKbps Integer 否 无 指定媒体发布流的目标视频码率,如果填 0,TRTC 会根据 videoEncodedWidth和videoEncodedHeight估算出一个合理的码率值params.encoderParam.videoEncodedWidth Integer 否 无 指定媒体发布流的目标分辨率(宽度)
单位:像素值,推荐值:368,如果您只混合音频流,请将 width 和 height 均设置为 0,否则混流转码后的直播流中会有黑色背景params.target Object 否 无 媒体流发布的目标地址 params.target.cdnUrlList Object[] 否 无 发布至腾讯或者第三方直播服务商的推流地址(RTMP 格式)
若您的 mode 选择为TRTC_PublishMixStream_ToRoom,此时您不需要设置该参数params.target.cdnUrlList.rtmpUrl String 否 无 指定该路音视频流在腾讯或者第三方直播服务商的推流地址(RTMP 格式) params.target.cdnUrlList.isInternalLine Boolean 否 true 指定该路音视频流是否发布至腾讯云 params.target.mode String 否 无 媒体流发布模式,可选值 params.target.mixStreamIdentity Object 否 无 回推房间机器人信息 params.config.mixStreamIdentity.userId String 否 无 用户标识,当前用户的 userId,相当于用户名,使用 UTF-8 编码 params.config.mixStreamIdentity.intRoomId Integer 否 无 数字房间号 params.config.mixStreamIdentity.strRoomId String 否 无 字符串房间号 success Function 否 无 执行成功的函数 fail Function 否 无 执行失败的函数 complete Function 否 无 执行完成的函数,不管成功还是失败都会执行
媒体流发布模式说明
TRTC_PublishMode_Unknown:未定义TRTC_PublishBigStream_ToCdn:您可以通过设置该参数将您房间内的主路流TRTC_VIDEO_STREAM_TYPE_BIG发布到腾讯或者第三方直播 CDN 服务商(仅支持标准 RTMP 协议)TRTC_PublishSubStream_ToCdn:您可以通过设置该参数将您房间内的辅路流TRTC_VIDEO_STREAM_TYPE_SUB发布到腾讯或者第三方直播 CDN 服务商(仅支持标准 RTMP 协议)TRTC_PublishMixStream_ToCdn:您可以通过设置该参数,配合编码输出参数 (encoderParam) 和混流转码参数 (config),将您指定的多路音视频流进行转码并发布到腾讯或者第三方直播 CDN 服务商(仅支持标准 RTMP 协议)。TRTC_PublishMixStream_ToRoom:您可以通过设置该参数,配合媒体流编码输出参数 (encoderParam) 和混流转码参数 (config),将您指定的多路音视频流进行转码并发布到您指定的房间中。通过 target 中的 user 进行指定回推房间的机器人信息。
回调
- 示例
json
{
"data": { },
"message": "",
"code": 0
}- 回调说明:
参数名 参数类型 参数描述 message String 消息提示 data Object 数据对象 code Integer 返回类型,0.成功,其他:失败
