是否有可能以60 fps的速度生成视频并以60 fps的速度播放?

时间:2011-09-25 11:24:12

标签: iphone ios ipad video

为了达到高性能的科学目的,我们需要渲染视频并在设备上以60fps的速度播放。我假设H.264视频的通常帧速率低于此值。

这可能,还是帧率固定?如果是这样,在设备上全屏播放H.264视频时我们可以获得的最大帧速率是多少?

2 个答案:

答案 0 :(得分:1)

技术规格因iOS设备而异,因此您需要检查实际运行此硬件的硬件。对于iPad 2,目前最强大的iOS设备,Apple的technical specifications for video列出了以下内容:

  

支持视频格式:H.264视频高达720p,每秒30帧,   主配置文件级别3.1,AAC-LC音频高达160 Kbps,48kHz,立体声   .m4v,.mp4和.mov文件格式的音频; MPEG-4视频,最高2.5   Mbps,640 x 480像素,每秒30帧,简单配置文件   AAC-LC音频,每通道高达160 Kbps,48kHz,立体声音频,单位为.m4v,   .mp4和.mov文件格式; Motion JPEG(M-JPEG)高达35 Mbps,1280   720像素,每秒30帧,ulaw音频,PCM立体声音频   .avi文件格式

即使是iPad 2的强大硬件,也不支持60 FPS的全屏H.264播放。

但是,您确实可以以60 FPS的速度向屏幕呈现内容。我一直在Core Animation重型应用程序和使用OpenGL ES的应用程序中执行此操作。如果您可以足够快地在应用程序中生成内容以此速率显示,则可以以60 FPS将其呈现到屏幕,然后将每隔一帧编码为视频。

鉴于视频编码是一个相当昂贵的操作,听起来你也想在这里运行某种模拟,我猜你将无法以60 FPS呈现每帧以显示当前硬件上的屏幕只是由于您将加载到系统上的负载。

答案 1 :(得分:0)

是的,可以将视频编码为一系列图像,然后在屏幕上快速显示图像。视频硬件的上限以及解码图像和将图像blit到视频卡中的时间是此过程中的瓶颈。只要您的图像解码逻辑不是太慢,就应该可以将视频数据以60FPS的速度推送到显卡。

您可以尝试使用一系列PNG图像自行实现此功能,但我认为您会发现解码PNG图像的速度不足以获得60 FPS播放效果。您可以在我对this question

的回答中找到一些使用PNG图像实现该方法的免费示例代码

如果你无法获得所需的性能,那么请查看我的iOS AVAnimator库,因为它已经使用可以从映射内存直接发送到视频卡的内存映射帧完全解决了这个问题。