问题/风险描述:
在使用 腾讯实时音视频(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拉流的观众和回放录制,请及时关注相关的错误。