我们希望将屏幕(屏幕截图)从 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(...)