我正在使用 Webrtc 视频流。
- (RTCMediaConstraints *)defaultMediaStreamConstraints {
NSArray *mandatoryConstraints = @[
[[RTCPair alloc] initWithKey"maxWidth" value"640"],
[[RTCPair alloc] initWithKey"maxHeight" value"480"],
[[RTCPair alloc] initWithKey"maxFrameRate" value"15"],
];
NSArray *optionalConstraints = @[];
RTCMediaConstraints* constraints1 =
[[RTCMediaConstraints alloc]
initWithMandatoryConstraints:mandatoryConstraints
optionalConstraints:nil];
return constraints1;
}
- (RTCMediaConstraints *)defaultPeerConnectionConstraints {
NSArray *mandatoryConstraints = @[ [[RTCPair alloc] initWithKey"maxHeight" value:[NSString stringWithFormat"%@",@"640"]],
[[RTCPair alloc] initWithKey"maxWidth" value:[NSString stringWithFormat"%@",@"480"]],
[[RTCPair alloc] initWithKey:@"maxFrameRate" value:[NSString stringWithFormat:@"%@",@"15"]]
];
NSArray *optionalConstraints = @[];
RTCMediaConstraints* constraints1 =
[[RTCMediaConstraints alloc]
initWithMandatoryConstraints:mandatoryConstraints
optionalConstraintsptionalConstraints];
return constraints1;
}
但是,它不起作用。它设置了高质量的视频流。
如何压缩质量?
在将其设置为本地 session 描述并将其发送给对等方之前,您应该直接在 SDP 内部设置视频带宽。
找到 a=mid:video\r\n
并将 b=AS:128\r\n
附加到它。
您可以通过查找 a=mid:audio\r\n
对音频流执行相同操作。
例如,给定以下 SDP:
v=0
o=- 487255629242026503 2 IN IP4 127.0.0.1
s=-
t=0 0
a=rtcp:9 IN IP4 0.0.0.0
a=ice-ufrag:8a1/LJqQMzBmYtes
a=ice-pwd:sbfskHYHACygyHW1wVi8GZM+
a=ice-options:google-ice
a=fingerprint:sha-256 28:4C:19:10:97:56:FB:22:57:9E:5A:88:28:F3:04:
DF:370:7D:55:C31:59:B0:B2:81 :FB:9DF:CB:15:A8
a=setup:actpass
a=mid:audio
a=extmap:1 urn:ietf:params:rtp-hdrext:ssrc-audio-level
a=extmap:3 http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time
您必须在 a=mid:audio
和 a=extmap:1 urn:ietf:params:rtp- 之间附加
.b=AS:128
hdrext:ssrc-audio-level
关于ios - 如何在 webrtc ios 中压缩视频文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40805983/
欢迎光临 OGeek|极客世界-中国程序员成长平台 (https://ogeek.cn/) | Powered by Discuz! X3.4 |