ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
1) 设置视频采集来源为摄像头(Set video capture source as camera) 声明以下属性(Declare the following properties) ``` @property (nonatomic, strong) NECamera *camera;//作为外部摄像头 @property (nonatomic, assign) BOOL isStop; @property (nonatomic, strong) LSVideoParaCtxConfiguration* paraCtx;//推流视频参数设置 ``` 2) 设置属性(set a property) ``` - (void)viewWillDisappear:(BOOL)animated { _isStop = YES; [super viewWillDisappear:animated]; [NEMediaCaptureEntity sharedInstance].videoParaCtx = paraCtx; } ``` paraCtx.isUseExternalCapture = YES;//是否使用外部视频采集,假设使用外部采集时,摄像头的采集帧率一定要于设置的paraCtx.fps一致,同时码率要调整为对应的码率,对应的分辨率也需要调整(Whether to use external video acquisition. If external acquisition is used, the acquisition frame rate of the camera must be different from the set paractx FPS is consistent. At the same time, the code rate should be adjusted to the corresponding code rate, and the corresponding resolution also needs to be adjusted) 3)使用外部视频采集(Using external video capture) ``` if (streamparaCtx.sLSVideoParaCtx.isUseExternalCapture) { //1.从外部摄像头获取数据 _camera = [[NECamera alloc] initWithCameraPosition:AVCaptureDevicePositionFront captureFormat:kCVPixelFormatType_32BGRA]; _camera.delegate = self; [_camera startCapture]; } ``` 4)在NECameraDelegate的视频渲染方法中初始化美狐shader(Initialize the Meihu shader in the video rendering method of NECameraDelegate) //外部采集摄像头的数据塞回来给SDK推流 ``` -(void)didOutputVideoSampleBuffer:(CMSampleBufferRef)sampleBuffer{ if(!_isStop){ CVPixelBufferRef pixelBuffer = CMSampleBufferGetImageBuffer(sampleBuffer); OSType formatType = CVPixelBufferGetPixelFormatType(pixelBuffer); [self.beautyManager processWithRoatePixelBuffer:pixelBuffer formatType:formatType]; } [self.mediaCapture externalInputSampleBuffer:sampleBuffer]; } ```