我想获取CameraX(分析仪)帧创建时间戳,但当我使用imageProxy.getImageInfo().getTimestamp()
时,我得到的时间戳短于System.currentTimeMillis()
,因此我认为它们不是相同的时间戳样式。
如何将其转换为正常的时间戳,如System.currentTimeMillis()
的时间戳。
感谢@LexFerrinson,imageProxy.getImageInfo().getTimestamp()
在这里https://developer.android.com/reference/androidx/camera/core/ImageInfo#getTimestamp(),但我不知道如何将其传输到currentTimeMillis。
例如:
2022-06-13 15:33:52.539 ... D/l: System.currentTimeMillis():1,655,102,032,539
2022-06-13 15:33:52.578 ... D/l: imageProxy.getImageInfo().getTimestamp():17,268,452,439,387
我从摄像机分析仪上得到了时间戳
cameraX版本:
implementation "androidx.camera:camera-camera2:1.1.0-alpha09"
implementation "androidx.camera:camera-lifecycle:1.1.0-alpha09"
implementation "androidx.camera:camera-view:1.0.0-alpha29"
implementation "androidx.camera:camera-core:1.1.0-alpha29"
谢谢!
2条答案
按热度按时间k97glaaz1#
根据官方文档https://developer.android.com/reference/androidx/camera/core/ImageInfo#getTimestamp(),图像时间戳是一个长时间戳,这意味着与每个时间戳一样,它返回自1970年1月1日起的毫秒数。
iezvtpos2#
正如文档所述,时间戳取决于提供图像的源。
如果您使用的是Camera2(我不确定CameraX是否可以使用Camera1),您必须检查您正在使用的相机的
SENSOR_INFO_TIMESTAMP_SOURCE
:UNKNOWN
,那么除了时间戳是单调递增的之外,基本上可以对时间戳不做任何假设,因此只能将它们与同一摄像机提供的时间戳进行比较REALTIME
,则时间戳的基数将与SystemClock.elapsedRealtimeNanos()
相同因此,您实际上不能使用其中任何一个来获得
System.currentTimeMillis()
,因为它是一个挂钟,不能保证是单调的。