Как записать видео с экрана, как это делает приложение Talking Tomcat в iphone? - PullRequest
5 голосов
/ 08 августа 2011

эй, я пытаюсь записать игровой процесс моей игры, чтобы я мог загрузить его видео на YouTube с самого устройства ... я пытаюсь сделать то же самое, что и приложение Talking tomcat для iphone ... записать видео, затем воспроизвести его и т. Д. ...

Я использую glReadPixels () для чтения данных кадрового буфера и последующей записи их в видео с помощью AVAssetWriter в фреймворке AVFoundation. Но чтение данных на каждом чертеже снижает FPS примерно с 30-35 до 2-3 только при использовании glReadPixels.

Я думаю, что Talking tomcat также сделан с помощью Opengl ES, он также имеет функцию записи видео, но он не замедляется при чтении каждого кадра, какая-либо идея ....?

Ответы [ 2 ]

8 голосов
/ 18 августа 2011

На случай, если кто-то захочет реализовать то же самое .. я сам разобрался.Прежде всего, к моему удивлению, я обнаружил, что говорящий кот не является приложением для 3D-игр ... он использует анимацию кадров для всех движений.и если кто-то хочет захватить такой вид, он может использовать следующий код ---

UIGraphicsBeginImageContext(self.view.bounds.size); //self.view.window.frame.size
[self.view.layer renderInContext:UIGraphicsGetCurrentContext()];
UIImage *viewImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
UIImageWriteToSavedPhotosAlbum(viewImage, nil, nil, nil);

, а затем использовать AVAssetWriter для создания видео из этих кадров.Конечно, вы можете найти код для этого в каком-то другом посте .. Для меня это бесполезно, так как я должен захватить 3D-часть .. Приветствия

0 голосов
/ 06 февраля 2013

Вопрос не новый, но я подумал, что смогу ответить:

Мы предоставляем SDK под названием «Everyplay», который позволяет вам делать именно то, что вы ищете. Оно бесплатное и легкое.

Мы предоставляем готовые интеграции для Unity3D, cocos2d (1.x, 2.x), cocos2d-x, и вы, конечно, можете интегрироваться в пользовательский игровой движок на основе OpenGL.

Документация доступна на https://developers.everyplay.com/doc

В документации приведен пример ключа приложения, который можно использовать при разработке, но вы, конечно, можете подписаться на свой собственный клиентский ключ по адресу https://developers.everyplay.com/

...