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

2023-05-11 18:03:30 浏览数 (2)

问题/风险描述:

在使用 腾讯实时音视频(TRTC) web端进行云端混流转推时,可能会出现混流失败的情况,其中一种错误的情况是发起client.startMixTranscode混流的时候,子画面的布局超出了编码输出的画面了,导致混流失败。

混流转推错误的信息混流转推错误的信息

解决方案:

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

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

代码语言:javascript复制
/*
- 总输出画面大小为 1920x1080 像素
- 9 个子画面要均匀分布在总输出画面中
- 子画面之间的间距为 10 像素
- 每行显示 3 个子画面
*/
function calculateSubframePositions(totalWidth, totalHeight, subframeSpacing, subframesPerRow, subframeCount) {
  const subframeWidth = (totalWidth - (subframesPerRow - 1) * subframeSpacing) / subframesPerRow;
  const subframeHeight = (totalHeight - (Math.ceil(subframeCount / subframesPerRow) - 1) * subframeSpacing) / Math.ceil(subframeCount / subframesPerRow);
  const subframePositions = [];

  for (let i = 0; i < subframeCount; i  ) {
    const row = Math.floor(i / subframesPerRow);
    const col = i % subframesPerRow;
    const x = col * (subframeWidth   subframeSpacing);
    const y = row * (subframeHeight   subframeSpacing);
    subframePositions.push({ x, y, width: subframeWidth, height: subframeHeight });
  }

  return subframePositions;
}

// 调用函数并传入参数
const subframePositions = calculateSubframePositions(1920, 1080, 10, 3, 9);

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

注意事项:

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

0 人点赞