ios - 我如何在 webrtc ios 中压缩视频文件?

标签 ios iphone video-streaming webrtc

我正在使用 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
                  optionalConstraints:optionalConstraints];
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: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- 之间附加 b=AS:128 hdrext:ssrc-音频级别.

关于ios - 我如何在 webrtc ios 中压缩视频文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40805983/

相关文章:

ios - 将 Storyboard从 iPhone 转换为 iPad

ios - 通话时管理 UIWindow 高度

node.js - 使用 NodeJS 传输视频

ios - 移动应用程序的视频流

javascript - html5 视频标签中媒体文件的无缝预加载

ios - 更改被星号包围的 UILabel 部分的文本颜色

ios - 重新编辑: Audio not playing in real ios Device but playing in simulated devices in Swift2

iphone - 当应用程序从 iPhone 后台出现时,会调用什么方法?

iPhone 5 的弱光增强模式

ios - 使用 iCarousel 正确显示另一个 Storyboard 中的 Controller View