前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【最佳实践】巡检项:实时音视频 (TRTC) 检查 TRTC启动云端混流接口中的子画面布局是否超出编码输出的画面

【最佳实践】巡检项:实时音视频 (TRTC) 检查 TRTC启动云端混流接口中的子画面布局是否超出编码输出的画面

原创
作者头像
jackwlchen
修改2023-05-11 18:03:06
3900
修改2023-05-11 18:03:06
举报

问题/风险描述:

在使用 腾讯实时音视频(TRTC) 进行云端混流转推时,可能会出现混流失败的情况,其中一种错误的情况是启动云端混流接口中的子画面布局超出编码输出的画面,导致混流出现失败的情况,比如通过云端的日志检查发现是因为发起混流参数的子画面的布局超出了编码输出的画面。

子画面超出编码输出画面
子画面超出编码输出画面

通过计算可以知道,整个输出的画面大小为1920x1080,但是通过x:2180,y:302 坐标和画面的宽高444x250,计算得出 整个画面在输出画面之外,从而导致无效的混流输出。

调用报错后返回的结果是

代码语言:javascript
复制
{
    "Response":{
        "Error":{
            "Code":"InvalidParameter.SmallVideoLayoutParams",
            "Message":""
        },
        "RequestId":"xxxxx-09e1-483a-b1d8-xxxxxxxxx"
    }
}

解决方案:

为了解决以上的混流失败错误情况,我们建议您采取以下措施:

1. 在业务程序端在计算 子画面的坐标和宽高的时候,需要根据大画面的宽度来进行计算,参考代码如下

代码语言:javascript
复制
假设:
- 总输出画面大小为 1920x1080 像素
- 9 个子画面要均匀分布在总输出画面中
- 子画面之间的间距为 10 像素
- 每行显示 3 个子画面

代码:

// 计算子画面大小
int output_width = 1920;
int output_height = 1080;
int spacing = 10;
int num_cols = 3;
int num_rows = 3;
int sub_width = (output_width - spacing * (num_cols - 1)) / num_cols;
int sub_height = (output_height - spacing * (num_rows - 1)) / num_rows;

// 计算子画面位置
for (int row = 0; row < num_rows; ++row) {
    for (int col = 0; col < num_cols; ++col) {
        int x = col * (sub_width + spacing);
        int y = row * (sub_height + spacing);
        // 在这里使用 x、y、sub_width 和 sub_height 来设置子画面的位置和大小
    }
}

2. 时刻关注您的服务端发起混流后返回的接口,如果发现有相关的错误情况的话,需要及时的修复并发布,以免影响您业务正常使用。

注意事项:

混流失败会影响到从CDN拉流的观众和回放录制,请及时关注相关的错误。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 问题/风险描述:
  • 解决方案:
  • 注意事项:
相关产品与服务
实时音视频
实时音视频(Tencent RTC)基于腾讯21年来在网络与音视频技术上的深度积累,以多人音视频通话和低延时互动直播两大场景化方案,通过腾讯云服务向开发者开放,致力于帮助开发者快速搭建低成本、低延时、高品质的音视频互动解决方案。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档