Android NDK Camera Sample JPEG在30 Hz

时间:2019-05-08 11:36:22

标签: android c++ android-ndk cameraapi2

我一直在使用the Android NDK Camera sample,并且可以使用the yuvreader_ inside DrawFrame以30 Hz的频率读取格式为AIMAGE_FORMAT_YUV_420_888的帧。我通过在每个图像中记录时间戳并打印来验证可以达到30 Hz。我正在使用三星Galaxy S9。

我现在正尝试以30 Hz的频率获取JPEG图像而不是YUV图像,但尚未成功,我想知道是否有人可以提供帮助。

据我了解,此示例中的捕获会话会同时请求“预览”和“静态捕获”,其中yuv is used for preview and jpeg is used for the still capture。我所做的是也将jpgReader_设置为预览,然后检查了在ImageCallback here中捕获的帧的时间戳(我注释了写入文件的步骤,并且只是调用AImage_delete(image)来清洗缓冲区)。但是,我得到的结果是间隔为33、66、99和133 ms的帧,分布相当均匀,因此经常跳过很多帧。

对可能出现问题的任何想法?

1 个答案:

答案 0 :(得分:0)

许多相机设备每秒不能产生30张jpeg图像。这就是为什么相机API为预览或视频显式设置YUV(或私有)格式的原因。很少有设备能够每秒创建30 Jpeg。这就是为什么典型的视频录制会话涉及h246或vp8编码器的原因。