Unity自定义视频采集,使用通话的sdk,出现了色彩偏差的问题

自定义采集视频通话,其他的都正常,可以进行通话,就是播放的时候颜色不对,如下图
被采集的是蓝色的,通话后显示的却是橙色的了
%E8%A2%AB%E9%87%87%E9%9B%86
%E6%92%AD%E6%94%BE

请问这个是什么原因呢?
采集方法如下
RenderTexture.active = renderTexture;
mTexture.ReadPixels(new Rect(0, 0, renderTexture.width, renderTexture.height), 0, 0);
mTexture.Apply();
RenderTexture.active = null;
byte[] bytes = mTexture.GetRawTextureData();
IRtcEngine rtc = IRtcEngine.QueryEngine();
if (rtc != null)
{
ExternalVideoFrame externalVideoFrame = new ExternalVideoFrame();
externalVideoFrame.type = ExternalVideoFrame.VIDEO_BUFFER_TYPE.VIDEO_BUFFER_RAW_DATA;
externalVideoFrame.format = ExternalVideoFrame.VIDEO_PIXEL_FORMAT.VIDEO_PIXEL_BGRA;
externalVideoFrame.buffer = bytes;
externalVideoFrame.stride = (int)mRect.width;
externalVideoFrame.height = (int)mRect.height;
externalVideoFrame.timestamp = i++;
// 推送外部视频帧。
int a = rtc.PushVideoFrame(externalVideoFrame);
}

2个回答
H 回复于 2020-05-27 04:44

这个问题一般是视频帧的格式设置错误导致的。请确保你设置的 AgoraVideoFrame.format 和采集到的视频帧数据格式是一致的。

回复·0
用户c00c91 回复于 2024-07-09 06:02 · IP属地上海

解决了么

回复·0