2

我们希望将屏幕(屏幕截图)从 iPad 共享到浏览器。目前我们截取屏幕截图并通过 WebRTC 数据通道发送,但这需要大量带宽。

每秒发送 5 帧完全压缩和缩放,仍然需要大约 1.5-2mb/s 的上传速度。

我们需要利用某种形式的视频编码,因此我们可以降低带宽要求,让 WebRTC 处理流量控制,具体取决于连接速度。

AVAssetWriter 获取图像并将它们转换为 .MOV 文件,但不允许我们从中获取流。

对我们有什么想法吗?目前相当卡住,所有想法都表示赞赏。

感谢您建议这是重复的,但这对我没有多大帮助。我已经有一个可行的解决方案,但是还不够好。

编辑:

UIGraphicsBeginImageContextWithOptions(view.frame.size, NO, 0.7); //Scaling is slow, but that's not the problem. Network is


[view drawViewHierarchyInRect:view.bounds afterScreenUpdates:NO];

UIImage *image = UIGraphicsGetImageFromCurrentImageContext();

UIGraphicsEndImageContext();

NSData *data = UIImageJPEGRepresentation(image, 0.0); //Compress alot, 0.0 is max, 1.0 is least


NSString *base64Content = [data base64EncodedStringWithOptions:NSDataBase64EncodingEndLineWithLineFeed];

然后按照文档的建议,我通过 WebRTC DataChannel 以 16Kb 块的形式发送该 base64 数据。

dc.send(...)
4

1 回答 1

0

我会使用 javascript 编码器(即 MPEG)压缩屏幕截图,然后在服务器端将此流转码为用于 WebRTC 的 VP8。

但是它可能无法在旧的 iOS 设备上正常工作,即 iPad 2010-2011 由于 CPU 资源不足,因此即使您对此流进行编码,它也可能会出现断断续续且不适合流畅播放。

于 2016-05-24T20:02:13.253 回答