2016-11-25 100 views
2

我正在使用Webrtc視頻流。
我如何在webrtc ios中壓縮視頻文件?

- (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 
        optionalConstraints:optionalConstraints]; 
return constraints1; 
} 


但是,它不是working.it的設置高質量的視頻流。
如何壓縮質量?

回答

0

您應該將視頻帶寬直接設置在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:37:D0:7D:55:C3:D1:59:B0:B2:81 :FB:9D:DF: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:audioa=extmap:1 urn:ietf:params:rtp-hdrext:ssrc-audio-level之間追加b=AS:128