通过WebRTCstream式传输屏幕截图,作为来自iOS的videostream

我们想从iPad分享屏幕(截图)到浏览器。 目前我们截图并通过WebRTC DataChannel发送,但是这需要很多带宽。

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

我们需要利用某种forms的video编码,所以我们可以降低带宽需求,让WebRTC根据连接速度来处理stream量控制。

AVAssetWriter拍摄图像并将其转换为.MOV文件,但不会让我们从中获取stream。

对我们有什么想法? 现在相当卡住了,所有的想法都表示赞赏。

感谢提示这是一个重复,但是这并不能帮助我很多。 我已经有了一个可行的解决scheme,但是还不够好。

编辑:

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]; 

然后按照文档的build议,通过16Kb块的WebRTC DataChannel发送base64数据。

 dc.send(...) 

我将使用javascript编码器(即MPEG)压缩截图,然后将此stream在服务器端转码为VPR以用于WebRTC。

但是,由于CPU资源太less,它可能无法在旧版iOS设备上正常运行,即使您对此stream进行编码,也可能会出现波动,不适合stream畅播放。