0

我一直在使用Android NDK 相机示例,并且可以AIMAGE_FORMAT_YUV_420_888通过使用内部 DrawFrame以 30 Hz读取具有格式的帧。yuvreader_我验证了通过记录每个图像中的时间戳并打印它来实现 30 Hz。我正在使用三星 Galaxy S9。

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

据我了解,此示例中的捕获会话为“预览”和“静止捕获”创建了一个请求,其中yuv 用于预览,jpeg 用于静止捕获。我所做的是也将其设置jpgReader_为预览,然后我在这里检查了在 ImageCallback 中捕获的帧的时间戳(我注释掉了写入文件的步骤,并且只调用了 AImage_delete(image) 来清理而是缓冲区)。但是,我得到的结果是间隔为 33、66、99 和 133 毫秒的帧,分布非常均匀,因此经常会跳过很多帧。

关于问题可能是什么的任何想法?

4

1 回答 1

1

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

于 2019-05-08T21:44:48.273 回答