我使用WebRTC的Android应用程序有问题。一般来说一切都正常,但在某些设备上,流的质量很糟糕。我正在使用io.pristine:libjingle:9127 @ aar lib建立webrtc连接 - 它是官方webrtc android lib的编译版本。
例如,在Nexus 5上,视频质量非常棒,CPU使用率为20-25%。 在SE SP上,质量非常差,CPU占50%(因此仍有一些功率可用)。 两个设备都在同一个WiFi网络上工作。
据我所知,WebRTC应该自己选择视频质量,但有没有办法手动完成?
答案 0 :(得分:1)
我在IOS上使用以下内容来限制帧速率和分辨率,从而为库提供更大的比例缩放比例空间。
// initialize video constraints
NSMutableArray *m = [[NSMutableArray alloc] init];
NSMutableArray *o = [[NSMutableArray alloc] init];
[m addObject:[[RTCPair alloc] initWithKey:@"minWidth" value:@"640"]];
[m addObject:[[RTCPair alloc] initWithKey:@"minHeight" value:@"480"]];
[m addObject:[[RTCPair alloc] initWithKey:@"maxFrameRate" value:@"20"]];
// init the constraints object
APP.videoConstraints = [[RTCMediaConstraints alloc] initWithMandatoryConstraints:m optionalConstraints:o];