2011-09-25 112 views
2

为了实现高性能的科学目的,我们需要渲染视频并在设备上以60fps播放视频。我假设H.264视频的平常帧率低于此值。是否可以在60 fps下生成视频并以60 fps播放?

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

+0

您是否需要显示编码的视频流,还是可以在编码前显示视频? – Mats

+0

如果显示尚未编码的视频流速度更快,那么我不需要显示编码的视频流。 – openfrog

回答

1

由于iOS设备和iOS设备的技术规格不同,因此您需要检查实际运行该设备的硬件。对于iPad 2的,目前最强大的iOS设备,苹果的technical specifications for video列表如下:支持

视频格式:H.264视频高达720p,每秒30帧, 主型材水平3.1采用AAC .m4v,.mp4和.mov文件格式的高达160 Kbps,48kHz,立体声 音频的LC音频; MPEG-4视频,最高可达2.5 Mbps,640 x 480像素,每秒30帧,简单配置文件带有 AAC-LC音频,每通道160 Kbps,48kHz,立体声音频.m4v, .mp4,和。 mov文件格式;运动JPEG(M-JPEG)高达35 Mbps的,1280 由720像素,每秒30帧,在ULAW音频,PCM立体声音频 在.avi文件格式

这样看来,全屏H.264即使在iPad 2的强大硬件上也不支持以60 FPS播放。但是,您确实可以以60 FPS的速度将内容呈现在屏幕上。我在核心动画重度应用程序和使用OpenGL ES的应用程序中都一直这样做。如果您可以以足够快的速度在应用中生成内容以便以此速率进行显示,则可以以60 FPS的速度将其呈现在屏幕上,然后将每个其他帧编码为视频。

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

+0

这非常有帮助。谢谢! – openfrog

+0

即使在2011年,如果您提供了它们,iOS也可以播放60 fps的视频文件。 – Monstieur

0

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

你可以尝试使用一系列PNG图像来实现这一点,但我认为你会发现PNG图像的解码速度不够快,无法获得60 FPS的回放。你可以找到一个实现与PNG图像,我的回答this question

这种方法如果你不能得到你所需要的性能,然后看看我的AVAnimator库的iOS,因为它已经完全解决了这个问题,一些免费的示例代码使用内存映射帧可以从映射内存直接发送到视频卡。

相关问题