2012-10-09 107 views
0

我正在使用cocos2d的CCRenderTexture来记录我的游戏视频。但是,如果以视网膜显示分辨率录制视频会花费大量CPU和内存,那么我想使用低分辨率录制视频,但保留正常游戏的视网膜分辨率。可能吗?在cocos2d中录制视频iOS游戏,低分辨率视频和正常情况下的高分辨率

我试过“[[CCDirector sharedDirector] enableRetinaDisplay:NO];”在录制视频期间,但它似乎不起作用。生成的输出完全错误。

+0

您是否在尝试记录游戏的游戏视频? –

+0

@BijoyThangaraj我想在我的应用程序中使用“talk tom”风格的视频记录。 – yorkdu

回答

1

这是不可行的。

你必须渲染每个帧两次,一次在屏幕上,然后到渲染纹理。即使以某种方式降低渲染纹理的分辨率,帧率的严重下降也是不可避免的。

原因很简单,你还必须将每个渲染纹理作为图像写入闪存。这非常慢。你还会得到大量的数据。如果每个(PNG/JPG)图像文件最终都是相当小的50 KB,那么每秒60帧的记录数据将消耗3兆字节的闪存。一分钟大概是180兆字节。

要记录您的游戏演示,大多数游戏遵循简单的原则记录用户输入,然后像用户发出这些命令一样回放用户输入。这需要仔细的规划,在更新应用程序(或使无效的旧演示)时不会发生重大变化,也不要使用非确定性随机数发生器(即随时间播种)。

如果您需要录制制作预告片视频的演示,则有大量的屏幕抓图解决方案。有些人甚至专门从设备抓取iPhone视频(通常需要源代码/库组件)或者从模拟器抓取。

+1

这实际上是不正确的,并且可以完成记录。查看https://everyplay.com/了解更多信息。该页面上的视频是从设备录制的,而用户则播放它们,但没有明显的性能损失。 – TuomasR

1

你应该看看Kamcord SDK的录制游戏。检查http://kamcord.com/

Kamcord具有iOS内置的游戏视频和音频录制技术。它允许你,游戏开发者,用API捕捉游戏视频。然后,用户可以通过YouTube,Facebook,Twitter和电子邮件重放和分享这些游戏视频。

+0

是的,其实我调查过Kamcord。它包含一个修改过的cocos2d,但不包含开放源代码,因此无法修改。我的项目需要对cocos2d进行一些修改,因此Kamcord不适合我。 – yorkdu

+0

它不是cocos2d的修改版本,但实际上使用了cocos2d。它只是扩展了cocos2d的CCGLView类。所以它不应该是你的问题。 –

+0

如果Kamcord不提供必要的功能,请检出Everyplay(https://developers.everyplay.com/)。我们提供了一个用于记录游戏玩法的OpenGL级API,如果提供的cocos集成不能满足您的需求,您可以使用它。 – TuomasR

相关问题