问题标签 [frame-rate]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
5 回答
31305 浏览

javascript - HTML5 Canvas 性能 - 每秒计算循环数/帧数

我知道以前有人问过这样的问题,例如:Check FPS in JS? - 在某种程度上确实有效,我能够找出每个循环需要多长时间才能完成。

我正在寻找的是更具可读性和可控性的东西。我希望能够为 FPS 计数器设置刷新率,使其变慢,以便人类可读或与应用程序运行一样快,这样我就可以在某种速度计上使用它。

无论如何,这是我现在拥有的代码:

  1. 我将 setTimeout 函数设置为 1 毫秒的速度是否正确?我在想这只会让它尽可能快地循环。

  2. 我是否应该每 100 帧左右计数一次,找出运行 100 帧需要多少毫秒,然后计算一下如果毫秒为 1000 会完成多少帧?这个计算会是什么?

  3. 为了使结果更准确,我猜我需要显示平均值,因为一帧可能会有很大的变化,我应该怎么做?

非常感谢任何提示。

谢谢。

0 投票
2 回答
569 浏览

iphone - UIImageView 性能

我有一个 iphone 应用程序,它可以通过 wifi 以我可以控制的速度获取 jpeg 图像,并使用 uiimageview 显示它们。看来我能得到的最佳性能大约是 2fps。看起来 uiimageview 无法快速处理 [uiimageview setimage:image]。

除了使用 uiimageview 之外,还有更好的解决方案可以让我获得更好的帧速率吗?

0 投票
4 回答
4523 浏览

android - lockCanvas() 真的很慢

在较慢的设备(Orange San Francisco aka ZTE Blade)上测试我的游戏,我得到了一个令人震惊的帧速率。

我将一些调试代码放入绘图循环中,发现以下行占用了 100 毫秒以上:

其他人看到这种行为吗?我通过扩展 View 和实现 onDraw() 临时替换了surfaceview,我得到了更好的帧率。

虽然总的来说,我的 HTC Desire 上的 surfaceView 速度要快得多。我怀疑这可能是 Android 2.1 的问题。如果可能的话,我正在考虑将手机植根并将其升级到 2.2,但我确实希望设备在 2.1 上运行,这样从长远来看可能会适得其反。

** 更新 **

我一直在研究这个问题,并且发现了一些更令人费解的方面。

我将手机植根并安装了2.2,但问题仍然存在。首次启动应用程序时,lockCanvas 按预期工作(0-1 毫秒)。然后在我初始化过程中的某个时刻,lockCanvas 突然开始花费大约 100 毫秒。

值得指出的是,我正在将资产加载到异步任务中,以便显示加载屏幕。

尽管我尽最大努力确定程序在缓慢发生时实际在做什么,但我无法做到。事实上,当我以调试模式和单步运行它时,它运行得很快!

现在我发现,如果我在 SurfaceView 的构造函数中添加延迟(大约 10 秒),则不会出现缓慢并且一切正常。

但是,如果您按 Home,然后再切换回来,那么缓慢又回来了。

在这个愚蠢的不合逻辑的问题上,我几乎束手无策!我想把它归结为设备特定的问题。

我觉得这可能与内存使用有关。也许有些东西被换掉了,它会影响视频内存?

我至少会对理论感兴趣。

0 投票
2 回答
9693 浏览

android - Android:视频编码 H.264 和设置帧率不起作用

我有一个 HTC MyTouch 3G 幻灯片(Android 2.1,API 级别 7)。我正在尝试编写一个程序以 15fps 录制 320x240 h.264 视频,但我有两个主要问题。我将不胜感激任何一个问题的解决方案。这是我正在做的事情:

问题 1) H263 和 MPEG_4_SP 工作正常,但 H264 不能。在调用 prepare() 时,logcat 中充满了以下错误:

使用 H.263(有效)时,错误日志仅包含:

问题 2)虽然我明确将帧速率设置为 15fps,但剪辑的后期分析显示奇怪的帧速率,例如 21.xx 或 25.xx fps。

为什么 H264 可能不工作,为什么 MediaRecorder 不遵守我要求的帧速率?提前致谢。

0 投票
1 回答
2117 浏览

flash - 在 swf flash 文件上显示 fps

我正在开发一个包含 Flash 游戏的游戏网站。我有什么方法可以显示这些游戏的fps速率吗?我没有原始的 fla 文件。谢谢。

0 投票
1 回答
460 浏览

flash - 与完全相同的处理小程序相比,简单的 Flash 测试应用程序运行非常缓慢

所以我逐渐痛苦地从 Processing 转向 Flash,希望能够为更广泛的受众开发游戏。终于,我得到了一个在 Flash 中制作的工作应用程序,它只允许用户单击以创建随后被鼠标吸引的块。我在处理中也做了同样的事情,只是为了比较速度。但是,当我运行 Flash 版本并添加大约 15-20 个块时,帧率下降到 5-10 FPS。在处理版本中,我可以添加 ~60 而不会明显减速。怎么了,闪电侠?

每个版本的源链接:

闪存版

处理版本

如果您是一个向导并且可以通过严厉地盯着代码并告诉它行为来提供帮助,那么这里是每个来源的来源:

闪版:

块.fla

块.as

处理版本:

sketch_mar02b.pde

块.pde

感谢您的帮助!

0 投票
1 回答
2447 浏览

javascript - 如何从 JavaScript 中找出 Flash (.FLV) 视频的帧速率?

我使用 Flash JavaScript API 观察和操作 SWF 文件的经验有限。我现在想从 JavaScript 观察和操作 FLV 视频。我熟悉的 API ( Play(), TotalFrames(), TCurrentFrame(), GotoFrame(), 等) 以帧为单位运行,而我想在几秒钟内运行。

所以要么我需要一个基于时间的 Flash JavaScript API,要么我需要一种方法来从 JavaScript 中找出 FLV 的帧速率,这样我就可以将帧转换为秒,反之亦然。

请注意,我无法控制 FLV 文件的生成。

0 投票
2 回答
4569 浏览

android - 没有霓虹灯支持的 android 上 ffmpeg 解码的性能

我已经在 android 上编译了 ffmpeg 代码,并且能够在没有霓虹灯支持和 armv5te 的情况下播放视频。解码很好,视频可以播放,但问题是帧率真的很差。我的最高帧率为5fps,这太可怕了。

有没有人在没有 android 上的 ffmpeg 支持的情况下成功播放视频。或者有什么我真的想念的吗?

编辑:配置我通过运行得到它

0 投票
1 回答
345 浏览

flash - 如何确定用户在两个连续图像之间看到的实际时间间隔

我想使用 Actionscript实现检查时间任务。这个想法是根据用户的反应动态地改变蒙面和未蒙面图像之间的时间间隔。“检查时间”定义为用户达到一定精度的时间间隔。有多种因素会影响该间隔的准确性:监视器刷新率、flash vm 帧率、计时器事件准确性、渲染时间。还要别的吗?如何确定用户看到的实际反转?需要高精度,因为该任务的典型性能为 20 到 80 毫秒。我假设限制因素是显示器刷新率。如果是 60Hz,我只能增加 16.7 毫秒。有什么办法绕过这个限制吗?如果我使用更高的帧速率,播放器是否仍会将其同步到 60Hz?

0 投票
2 回答
1282 浏览

android - Android GLES20 大纹理四边形非常慢(在 Nexus One 上)

我仅使用 GLES20 上下文渲染了 2 个覆盖整个表面的三角形。现在的问题是,以这种方式仅绘制一个纹理似乎异常缓慢。帧率从 58fps 下降到 21fps。

  • 问题确实似乎是所有四边形一起绘制的整体像素区域
  • 位图在加载时调整为 pow2
  • 位图以正确的内部 GL 格式加载
  • 使用 8888 或 565 位图不会改变任何东西
  • 顶点和片段着色器代码绝对是最少的
  • 启用/禁用混合不会改变任何东西
  • 在一个图块或多个图块中绘制整个位图没有帮助
  • glDrawTexiOES 似乎不适用于 GLES20(GL 枚举错误)

我在这里不知所措;我认为在 GL 中对单个图像进行 blitting 至少应该与使用 Canvas 一样快,但似乎并非如此。

有人可以提供有关此性能影响的提示或解释吗?

更新:

我刚刚调整了我的渲染线程以支持画布而不是 EGL 上下文,我做的完全一样;显示 fps 文本和 blitting 背景纹理。猜猜看:只显示文本我得到 58fps,添加背景图片我得到...... 57fps!

现在我正式并且非常生气。我希望我只是不够聪明,不能很好地使用 GLES20,否则似乎如果你想对 2D 图形进行 blit - 你就拿 Canvas;并且当且仅当您想要许多 3D 三角形时,您才可以使用 OpenGL。

OpenGL 不应该总是至少与 Canvas 提供的 2D API 一样快吗?