更新时间:2023-10-26 GMT+08:00
分享

常见问题

  • 调用加入房间接口成功后,再调用pushExternalVideoFrame返回90000001 SDK内部系统错误

    需要收到加入房间成功回调通知后,才能调用pushExternalVideoFrame。

  • joiner和player都加入房间成功,joiner调用pushExternalVideoFrame返回0,但是player没有收到onRenderVideoFrame回调

    需要接收端在收到onUserJoined消息后,在主线程里调用pullRemoteVideo和startRemoteStreamView。

  • startRemoteStreamView会返回90000008设置远端窗口失败错误

    startRemoteStreamView的调用是需要放在主线程,不能在onUserJoined调用,否则会返回90000008错误码。

  • 1080p经过RTC传输后,被自动缩放且颜色改变

    老版本SDK不支持1080p。

  • 推流1080p,接收到的是360p的流
    关闭发送端设置发流编码参数分辨率自适应,关闭收端分辨率自适应。
    int setVideoEncoderConfig(unsigned int totalBitRate, HRTCVideoEncParam *encoderParams, unsigned int encoderCount) // HRTCVideoEncParam.disableAdjustRes=true
    int setVideoEncoderConfig(const HRTCVideoEncParam &encParam) // HRTCVideoEncParam.disableAdjustRes=true
    int startRemoteStreamView(const char* userId, view_t view, HRTCStreamType streamType, bool disableAdjustRes) // disableAdjustRes=true
  • rtc设置了音频的自渲染和自采集,但是不推音频的pcm数据,onPlaybackAudioFrame也会收到回调

    这是正常现象,SDK会定时回调onPlaybackAudioFrame,里面是空白语音包。

  • 自渲染没有图像
    onVideoFrameRender回调函数实现中,y、u、v分量需要按如下方式获取:
    virtual bool onVideoFrameRender(const char* userId, HRTCVideoFrame& videoFrame)
    {
    	Frame frame;
    	frame.width = videoFrame.width;
    	frame.height = videoFrame.height;
    	frame.yBuf = videoFrame.data;
    	frame.uBuf = videoFrame.data + videoFrame.width * videoFrame.height;           //宽*高
    	frame.vBuf = videoFrame.data + videoFrame.width * videoFrame.height * 5 / 4; // 宽*高*5/4
    	frame.yStride = videoFrame.Stride;
    	frame.uStride = videoFrame.Stride / 2;
    	frame.vStrides = videoFrame.Stride / 2;
    	//用frame取渲染窗口
    	return true;
    }

相关文档