我有这样的媒体约束和大部分时间的视频质量相当不错,但有时它会降到低质量,永远不会恢复良好。
RTCMediaConstraints *mediaConstraints = [[RTCMediaConstraints alloc] initWithMandatoryConstraints:@[
[[RTCPair alloc] initWithKey:@"maxWidth" value:@"1280"],
[[RTCPair alloc] initWithKey:@"maxHeight" value:@"720"],
[[RTCPair alloc] initWithKey:@"maxFrameRate" value:@"30"]
]
optionalConstraints:@[]];
有什么问题?如果它与我当前的互联网连接的质量有关,是的,有时它会下降而不是那么稳定,但为什么在这种情况下视频的质量永远不会恢复到良好状态? 是否可以与TURN / STUN服务器连接,并且在它们的方向上使用低ping和窄带?
答案 0 :(得分:-1)
之前我遇到过这个问题。原因是下载占用了大部分带宽,因此视频分辨率被降低以适应有限的上传带宽。为了解决这个问题,需要根据捕获率在SDP中限制带宽。您需要对SDP字符串执行一些字符串操作。
在每个媒体热线c=IN(xxxxxx)
/ m=audio(xxxx)
下找到m=video(xxxx)
行。在c=IN(xxxx)
之后插入带宽规格行:
b=AS:%d
%d
是基于捕获率(分别为视频和音频)计算的整数。您应该试验该数字,并检查WebRTC规范中的该值。