lib/v20190722/client.rb in tencentcloud-sdk-trtc-3.0.465 vs lib/v20190722/client.rb in tencentcloud-sdk-trtc-3.0.466

- old
+ new

@@ -888,10 +888,55 @@ raise e rescue StandardError => e raise TencentCloud::Common::TencentCloudSDKException.new(nil, e.inspect) end + # 接口说明:启动旁路以及混流转推任务。TRTC 的房间中可能会同时存在多路音视频流,您可以通过此API接口,实现以下几种效果: + # 1、支持将单个主播的音视频流发布(也称作“转推”)到直播CDN上,请参考示例2(发起单流音视频旁路转推)和示例3(发起单流纯音频旁路转推)。 + # 2、支持将同个房间多个主播或者不同房间多个主播的音视频混合成1路后再发布到直播CDN上,您可以通过AudioParams.SubscribeAudioList和VideoParams.LayoutParams调整参与混音的用户列表以及指定各路混流画面的布局位置。请参考示例1(发起混流转推)。 + # 3、支持预先设置一个房间的混流模板,将该房间中的多个音视频混合成1路发布到直播CDN,腾讯云后台实时监控TRTC房间中的主播变化,自动按照混流模板调整布局。目前已经支持了如下几种混流预设模板: + # - 悬浮模板:第一个进入房间的用户的视频画面会铺满整个屏幕,其他用户的视频画面从左下角依次水平排列,显示为小画面,最多4行,每行4个,小画面悬浮于大画面之上。最多支持1个大画面和15个小画面。 + # - 九宫格模板:所有用户的视频画面大小一致,平分整个屏幕,人数越多,每个画面的尺寸越小,最多支持16个画面。 + # - 屏幕分享模板:适合视频会议和在线教育场景的布局,屏幕分享(或者主讲的摄像头)始终占据屏幕左侧的大画面位置,其他用户依次垂直排列于右侧,最多两列,每列最多8个小画面。最多支持1个大画面和15个小画面。若上行分辨率宽高比与画面输出宽高比不一致时,左侧大画面为了保持内容的完整性采用缩放方式处理,右侧小画面采用裁剪方式处理。 + # 4、支持同时将音视频流发布到最多10个直播CDN上。您可以通过PublishCdnParams.PublishCdnUrl指定转推CDN的url,如果您想转推到腾讯云CDN,PublishCdnParams.IsTencentCdn填为1。 + # 5、支持通过配置服务端回调,实时将转推状态以HTTP/HTTPS POST 请求发送给您的服务器,如果您需要接入转推事件回调,请联系腾讯云技术支持。 + # 6、云API调用支持广州、上海、北京、香港四个地域,如果您想转推海外,请选择香港地域。 + # 7、国内站默认只支持转推腾讯云CDN,如您有转推第三方CDN的需求,请联系腾讯云技术支持,由后台进行评估。 + # 注意: + # 1、**混流转码为收费功能,调用接口将产生云端混流转码费用,详见[云端混流转推计费说明](https://cloud.tencent.com/document/product/647/49446)。** + # 2、**转推非腾讯云CDN将产生云端转推费用,详见[云端混流转推计费说明](https://cloud.tencent.com/document/product/647/82155)。** + + # 其他使用说明如下: + # 1、使用混流转推接口时,您需要先调用启动转推任务接口(StartPublishCdnStream),获取启动转推任务响应中的任务ID标识(TaskId)。后续传入任务ID标识(TaskId)来更新转推任务(UpdatePublishCdnStream)和停止转推任务(StopPublishCdnStream)。 + # 2、为了确保转推链接的稳定,同一个转推任务不支持纯音频、音视频、纯视频之间的切换。 + # 3、为了确保转推链接的稳定,更新转推任务接口(UpdatePublishCdnStream)不支持时更改视频参数(codec)和音频参数(codec、采样率、码率、声道数),其余参数建议全量带齐。 + # 4、发起单流旁路任务时,AudioParams和VideoParams都填写表示音视频旁路,如果仅填写AudioParams表示纯音频旁路,任务进行过程中不支持纯音频到音视频的切换。音视频旁路时,VideoParams中的Width、Height、Fps、BitRate、Gop需要按照真实上行参数填写。 + # 5、更新转推任务(UpdatePublishCdnStream)必须携带SequenceNumber参数,用于防止请求乱序。客户保证对同一个任务更新时的SequenceNumber参数递增:腾讯云返回InternalError错误码时,需重试请求(不换SequenceNumber);腾讯云返回FailedOperation.OutdateRequest过期错误码时,无需处理即可。 + # 6、您可以在主播进房前,提前创建转推任务,结束转推任务时需要主动调用停止接口。如果您没有调用停止转推任务接口时,腾讯云后台会按照所有参与混流的用户没有任何数据上行的时间算起,直到超过启动转推任务时设置的超时时间(AgentParams.MaxIdleTime)为止,自动停止混流转推任务。 + + # @param request: Request instance for StartPublishCdnStream. + # @type request: :class:`Tencentcloud::trtc::V20190722::StartPublishCdnStreamRequest` + # @rtype: :class:`Tencentcloud::trtc::V20190722::StartPublishCdnStreamResponse` + def StartPublishCdnStream(request) + body = send_request('StartPublishCdnStream', request.serialize) + response = JSON.parse(body) + if response['Response'].key?('Error') == false + model = StartPublishCdnStreamResponse.new + model.deserialize(response['Response']) + model + else + code = response['Response']['Error']['Code'] + message = response['Response']['Error']['Message'] + reqid = response['Response']['RequestId'] + raise TencentCloud::Common::TencentCloudSDKException.new(code, message, reqid) + end + rescue TencentCloud::Common::TencentCloudSDKException => e + raise e + rescue StandardError => e + raise TencentCloud::Common::TencentCloudSDKException.new(nil, e.inspect) + end + # 接口说明:结束云端混流 # @param request: Request instance for StopMCUMixTranscode. # @type request: :class:`Tencentcloud::trtc::V20190722::StopMCUMixTranscodeRequest` # @rtype: :class:`Tencentcloud::trtc::V20190722::StopMCUMixTranscodeResponse` @@ -922,9 +967,58 @@ def StopMCUMixTranscodeByStrRoomId(request) body = send_request('StopMCUMixTranscodeByStrRoomId', request.serialize) response = JSON.parse(body) if response['Response'].key?('Error') == false model = StopMCUMixTranscodeByStrRoomIdResponse.new + model.deserialize(response['Response']) + model + else + code = response['Response']['Error']['Code'] + message = response['Response']['Error']['Message'] + reqid = response['Response']['RequestId'] + raise TencentCloud::Common::TencentCloudSDKException.new(code, message, reqid) + end + rescue TencentCloud::Common::TencentCloudSDKException => e + raise e + rescue StandardError => e + raise TencentCloud::Common::TencentCloudSDKException.new(nil, e.inspect) + end + + # 停止转推任务。 + + # @param request: Request instance for StopPublishCdnStream. + # @type request: :class:`Tencentcloud::trtc::V20190722::StopPublishCdnStreamRequest` + # @rtype: :class:`Tencentcloud::trtc::V20190722::StopPublishCdnStreamResponse` + def StopPublishCdnStream(request) + body = send_request('StopPublishCdnStream', request.serialize) + response = JSON.parse(body) + if response['Response'].key?('Error') == false + model = StopPublishCdnStreamResponse.new + model.deserialize(response['Response']) + model + else + code = response['Response']['Error']['Code'] + message = response['Response']['Error']['Message'] + reqid = response['Response']['RequestId'] + raise TencentCloud::Common::TencentCloudSDKException.new(code, message, reqid) + end + rescue TencentCloud::Common::TencentCloudSDKException => e + raise e + rescue StandardError => e + raise TencentCloud::Common::TencentCloudSDKException.new(nil, e.inspect) + end + + # 更新转推任务。 + # 注:请参见启动转推任务的接口说明和使用说明。 + + # @param request: Request instance for UpdatePublishCdnStream. + # @type request: :class:`Tencentcloud::trtc::V20190722::UpdatePublishCdnStreamRequest` + # @rtype: :class:`Tencentcloud::trtc::V20190722::UpdatePublishCdnStreamResponse` + def UpdatePublishCdnStream(request) + body = send_request('UpdatePublishCdnStream', request.serialize) + response = JSON.parse(body) + if response['Response'].key?('Error') == false + model = UpdatePublishCdnStreamResponse.new model.deserialize(response['Response']) model else code = response['Response']['Error']['Code'] message = response['Response']['Error']['Message'] \ No newline at end of file