发布时间:2019年2月25日 更新时间:2019年2月25日 贡献者:yyuanchen
TRTC 的旁路直播功能,是将 TRTC 音视频房间里的音视频流(经过混流转码)转推到腾讯云直播 CDN 上,实现在线直播场景。另外,旁路直播还具备低成本和高并发的观看能力。
自动旁路开启方法如下:
trtcCloud.setMixTranscodingConfig()
接口将多路画面混合成一路,然后再获取播放地址进行播放。手动旁路开启方法:
trtcCloud.setMixTranscodingConfig()
接口将多路画面混合成一路,然后调用 startPublishCDNStream() 旁路转推到直播 CDN,最后再获取播放地址进行播放。详细细节见文档:CDN旁路推流
发布时间:2019年3月7日 更新时间:2019年3月7日 贡献者:zilongye
实时音视频存在只有音频没有视频的语音场景,如果只是进房之前关闭了摄像头打开麦克风进行音频上行,这个时候纯音频是无法旁路成功的,因为控制台开启的自动旁路直播只支持音视频都有的场景。解决方案是,在进房前设置进房参数TRTCParams里面的bussInfo。代码示例:
// 设置纯音频旁路参数
self.param.bussInfo = @"{\"Str_uc_params\":{\"pure_audio_push_mod\":1}}";
// 进房
[_trtc enterRoom:self.param appScene:TRTCAppSceneVideoCall];
注意:传给SDK的json字符串参数注意大小写一致,参数名错误会导致进房失败。
发布时间:2019年4月2日 更新时间:2019年4月2日 贡献者:zilongye
代码示例:
TRTCPublishCDNParam *param = [[TRTCPublishCDNParam alloc] init];
param.appId = 1251783422; //开发者填写控制台对应的appid
param.bizId = 2131; //开发者填写控制台对应的bizId
param.url = @"rtmp://2131.livepush.myqcloud.com/live/e44259e135?bizid=2131&txSecret=bce18252ec77b85291edc5129686e835&txTime=5CA386FF";
[_trtc startPublishCDNStream:param];
注意:调用startPublishCDNStream接口前提确保控制台自动旁路推流为开启状态,否则会直接失败。另外默认只能转推到腾讯云,如果推流url为其它三方云需要提工单开启白名单。
发布时间:2019年2月28日 更新时间:2019年2月28日 贡献者:yyuanchen
如果您的场景是语言通话,同时需要纯音频旁路直播。用户在进入房间之前,需要携带音频推流参数。具体设置如下:
音频推流参数需要填充到 TRTCParams.businessInfo字段中,因为音频推流参数是一个 JSON 字符串,所以需要构造一个JSON数据。
Android:
JSONObject Str_uc_params = new JSONObject();
JSONObject pure_audio_push_mod = new JSONObject();
try {
pure_audio_push_mod.put("pure_audio_push_mod", 1);
// 1: 允许纯音频推流,2: 允许纯音频推流+录制
Str_uc_params.put("Str_uc_params", pure_audio_push_mod);
Log.i(TAG, "纯音频推流参数: " + Str_uc_params.toString());
} catch (JSONException e) {
e.printStackTrace();
}
iOS、Windows、Mac、Linux端也是适用,小程序端看文档进阶:小程序实时音视频参数透传
然后赋值给 TRTCParams.businessInfo
Android:
private TRTCCloudDef.TRTCParams trtcParams;
// TRTC SDK 视频通话房间进入所必须的参数
Intent intent = getIntent();
int sdkAppId = intent.getIntExtra("sdkAppId", 0);
int roomId = intent.getIntExtra("roomId", 0);
String selfUserId = intent.getStringExtra("userId");
String userSig = intent.getStringExtra("userSig");
trtcParams = new TRTCCloudDef.TRTCParams(sdkAppId, selfUserId, userSig, roomId, "",
Str_uc_params.toString());
trtcCloud.startLocalAudio();
//进房
trtcCloud.enterRoom(trtcParams, TRTCCloudDef.TRTC_APP_SCENE_VIDEOCALL);
补充:纯音频推流参数完整说明:
{
"Str_uc_params": {
"uc_biz_type": 1000, //可选字段,取值参考ENUM_CONFMASTER_BIZTYPE
"uc_callee_number": "0086135xxxxxxxx", //可选字段,用户手机号码,biztype=1001时必填(必须为11位手机或固话号码,号码前加0086,如008613631686024,固话如:0086075586013388)
"record_id": 43567, //可选字段,自动录制时业务自定义id,int32,录制回调时给到用户.注意:同一个房间中的成员,这个字段要么全带,要么不带.且值需要一致
"pure_audio_push_mod": 1, //可选字段,纯音频推流模式,取值参考ENUM_PURE_AUDIO_PUSH_MOD
"recordfile_storage_time": 10000 //录制文件保存时长,单位秒
}
}
发布时间:2019年5月13日 更新时间:2019年5月13日 贡献者:yyuanchen
TRTC Demo 实现云端混流转码
和CDN旁路直播
功能,如果开发者想体验,需要简单做下修改参数才能体验。
在 TRTCMainActivity 类中,搜索并定位到TRTCTranscodingConfig
;根据您账号信息,修改对应混流参数的 appId 和 bizId 字段。
TRTCCloudDef.TRTCTranscodingConfig config = new TRTCCloudDef.TRTCTranscodingConfig();
config.appId = -1; // 请从"实时音视频"控制台的帐号信息中获取
config.bizId = -1; // 请进入 "实时音视频"控制台 https://console.cloud.tencent.com/rav,点击对应的应用,然后进入“帐号信息”菜单中,复制“直播信息”模块中的"bizid"
同样在 TRTCMainActivity 类中,搜索并定位到onClickButtonGetPlayUrl
;将3891
修改成你账号的bizid。
String strStreamID = "3891_" + stringToMd5("" + trtcParams.roomId + "_" + trtcParams.userId + "_main");
String strPlayUrl = "http://3891.liveplay.myqcloud.com/live/" + strStreamID + ".flv";
1.如果您播放地址无法播放,可以阅读下文档