我正在尝试为脑电图研究制作视觉刺激。视频只是黑帧和白帧之间的闪烁,并且应该在以下速率范围内发生交替:12Hz、24Hz、48Hz、72Hz。
我们的显示器有 144Hz 的刷新率,电脑也很漂亮,我正在用示波器测量视频的成功与否,以确保准确性。因此,硬件应该不是问题;理论上,显示器的刷新率应该可以达到一半。但是,我在 Java 和 MatLab 中都失败了。
我尝试过使用 MatLab:
1) 使用 imwrite() 制作 gif
2) 使用 VideoWriter
3) 使用getframe() 和movie2avi()。
在所有这些方法中,都声明了超高帧率,并且我可以在我的命令窗口中看到在运行期间插入了所有帧。但是,最终输出文件永远不会超过 48Hz。
最重要的是,48Hz 以及 24Hz 甚至 12Hz 文件也存在严重的帧计时问题。
我还尝试使用 Processing 的 MovieMaker 制作文件:我将帧速率设置为 72Hz——输入 72 个 .png 文件的列表作为帧——它应该输出一个以 72Hz 闪烁的 1 秒文件。
然而,结果只有 48Hz,而且帧的时间也不可靠。
如果我没有用尽搜索,我就不会在这里发帖;我真的没主意了。MatLab 和 Processing 都是实现这种高 fps 文件的推荐方法,即使闪烁频率较低,它们也存在很大的时序问题。如果有人对提高高赫兹闪烁的时间保真度(图形设置?编解码器?)或如何使其一直到 72Hz 有任何技巧,我们将不胜感激!
正如我所说,我只使用过 Processing/Java 和 MatLab,所以请随时推荐其他平台。