Мы хотим передать экран (снимки экрана) браузеру с iPad. На данный момент мы делаем снимки экрана и отправляем их по каналу данных WebRTC, однако это требует большой пропускной способности.
Отправка 5 кадров в секунду с полным сжатием и масштабированием по-прежнему требует скорости загрузки около 1,5-2 МБ / с.
Нам нужно использовать некоторую форму кодирования видео, чтобы мы могли снизить требования к пропускной способности и позволить 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];
А затем я отправляю эти данные base64 по каналу данных WebRTC блоками по 16 КБ, как это предлагается в документации.
dc.send(...)