视频图像被裁减问题排查

视频显示不全问题排查;
发布时间: 2022-01-05 10:08

回答:

1、首先先确保接收与发送端的清晰度基本一致;

    如果一方模糊,建议先根据知识库调整清晰度对应(https://support.rongcloud.cn/ks/MTI1Mw==  )。

2、排查发送与接收端的渲染视图的裁剪模式;

//设置视图渲染模式
RCRTCVideoView *videoView = [[RCRTCVideoView alloc]init];    
videoView.fillMode = RCRTCVideoFillModeAspectFit;

/*! 
视频填充模式 
*/
typedef NS_ENUM(NSInteger, RCRTCVideoFillMode) {    
    /*!     
    完整显示, 填充黑边     
    等比例填充,直到一个维度到达区域边界     
    */    
    RCRTCVideoFillModeAspectFit, 
      
    /*!     
    满屏显示     
    等比例填充,直到填充满整个视图区域,其中一个维度的部分区域会被裁剪     
    */    
    RCRTCVideoFillModeAspectFill, 
       
    /*!     
    非均匀模式。两个维度完全填充至整个视图区域     
    */    
    RCRTCVideoFillModeResize
};

3、如果接收端是观众,需要排查发送端设置的合流布局的裁剪模式;

// 合流布局配置类    
RCRTCMixConfig *streamConfig = [[RCRTCMixConfig alloc] init];
// 选择模式    
streamConfig.layoutMode = 3;
// 设置合流视频参数 :宽:720 ,高:1280 ,视频帧率 15, 视频码率 2200;    
streamConfig.mediaConfig.videoConfig.videoLayout.width = 720;    
streamConfig.mediaConfig.videoConfig.videoLayout.height = 1280;    
streamConfig.mediaConfig.videoConfig.videoLayout.fps = 15;    
streamConfig.mediaConfig.videoConfig.videoLayout.bitrate = 2200;    
[streamConfig.mediaConfig.videoConfig setBackgroundColor:0x778899];

// 设置是否裁剪 1为自适应裁剪 2为填充    
streamConfig.mediaConfig.videoConfig.videoExtend.renderMode = 1;


typedef NS_ENUM(NSInteger, RCRTCVideoRenderMode) {    
    /*!     
    自适应裁剪     
    */    
    RCRTCVideoRenderModeCrop = 1,
        
    /*!     
    填充     
    */    
    RCRTCVideoRenderModeWhole = 2
};