RTCVideoTrack показывает растянутый WebRTC - PullRequest
0 голосов
/ 05 июня 2018

Я использую ядро ​​ WebRTC framework и отображаю локальный поток в полноэкранном режиме IPhone.К сожалению, мое видео показывает растянутое изображение, которое не отображается в приложении камеры.

Я попытался добавить соотношение сторон в RTCMediaConstraints, а также использовал метод adaptOutputFormatToWidth, чтобы исправить вывод.

NSDictionary* mandatoryConstraints;

/* want to calculate aspect ratio dynamically */
NSString *aspectRatio = [NSString stringWithFormat:@"%f",(double)4/3];
if (aspectRatio) {
   mandatoryConstraints = @{ kRTCMediaConstraintsMaxAspectRatio: 
   aspectRatio};
}

RTCMediaConstraints *cameraConstraints = [RTCMediaConstraints alloc];
        cameraConstraints = [cameraConstraints initWithMandatoryConstraints:mandatoryConstraints optionalConstraints:nil];


RTCAVFoundationVideoSource *localVideoSource =  [peerFactory avFoundationVideoSourceWithConstraints:mediaConstraint];
        [localVideoSource adaptOutputFormatToWidth:devicewidth:devicewidth fps:30]; 

В приведенной ниже ссылке разница между просмотром видео с камеры и моим приложениемпросмотр видео по вызову отображается

https://drive.google.com/file/d/1HN3KQcJphtC3VzJjlI4Hm-D3u2E6qmdQ/view?usp=sharing

1 Ответ

0 голосов
/ 19 июня 2018

Я полагаю, что вы воспроизводите свое видео в RTCEAGLVideoView , для которого требуется настройка размера, вы можете использовать RTCMTLVideoView вместо RTCEAGLVideoView .

и если вы хотите использовать RTCEAGLVideoView, используйте метод RTCEAGLVideoViewDelegate.

- (void)videoView:(RTCEAGLVideoView *)videoView didChangeVideoSize:(CGSize)size;

этот метод даст вам правильный размер видео.

...