如何记录视频帧的时间戳?

时间:2013-03-04 21:17:30

标签: android

所以我一直试图找出一种获取视频帧时间戳的方法。

在线和API文档中的所有示例都告诉您使用MediaRecorder记录来自摄像头的视频。问题是没有返回时间戳数据,也没有在记录帧时调用回调。

我开始在Android 4.2源代码中调查Camera应用程序,并且能够在此方面取得重大进展。我成功地从相机录制视频,在调用SurfaceTexture的onFrameAvailable侦听器时将帧时间戳保存到文件中,因为SurfaceTexture具有时间戳属性。

经过进一步调查,我发现当显示时,我正在接收这些回调而不是录制时。事后看来,这很有道理,我应该早点发现它。

无论如何,我继续进入Camera应用程序并开始查看它所具有的EffectsRecorder类。我发现它通过过滤器框架使用一些未记录的API来允许使用OpenGL着色器。对于我的用例,这很有用,所以我可能会继续这条路。我仍然试图通过它来正确录制视频,但我觉得我仍然只会显示时间戳,而不是录制。

进一步观察,我看到它使用了一个在其下面有一个MediaRecorder类的过滤器,使用了一个名为GRALLOC_BUFFER = 2的非摄像机以外的未记录的第二个视频源。这更加有趣和有用,但最终,我仍然需要正在记录的帧的时间戳。

我对Stack Overflow很感兴趣,希望社区中有人遇到过这种情况。我只需要一个指向何处的指针。我可以提供源代码,因为大部分内容都是从AOSP中提取的,但我还没有简单,因为我不确定什么是相关的。

非常感谢帮助。

0 个答案:

没有答案