全局记录与回放
DEPTHAI_REPLAY 环境变量设置为记录路径来回放该记录。全局记录与回放的原理是:记录应用中使用的源节点(Camera 和 IMU)的校准数据、相机特征信息以及数据(消息),然后在回放时模拟源节点再次发送相同数据。全局记录
tar 文件中。可以通过代码启用:Python
Python
1with dai.Pipeline as pipeline:
2 config = dai.RecordConfig()
3 config.outputDir = "./recordings";
4 config.videoEncoding.enabled = True # 使用视频编码
5 config.videoEncoding.profile = dai.VideoEncoderProperties.Profile.H264_MAIN
6
7 pipeline.enableHolisticRecord(config)DEPTHAI_RECORD 环境变量:Command Line
1DEPTHAI_RECORD="./recordings" python3 application.py环境变量配置
DEPTHAI_RECORD 环境变量被设置为记录输出目录。这会使用默认配置选项启用全局记录。如需更精细的控制,可以将变量设置为配置文件的路径:JSON
1{
2 "outputDir": "recordings/",
3 "compressionLevel": 3,
4 "syncCameraOutputs": true,
5 "videoEncoding": {
6 "enabled": true,
7 "bitrate": 0,
8 "lossless": false,
9 "profile": "MJPEG",
10 "quality": 80
11 }
12}outputDir设置记录输出目录compressionLevel配置元数据的压缩级别。取值范围 0 到 5(包含),对应以下压缩级别:NONE、FASTEST、FAST、DEFAULT、SLOW、SLOWESTsyncCameraOutputs启用相机输出同步。这可以防止丢弃的消息在回放到 StereoDepth 或类似需要同步帧的节点时引起问题。videoEncoding配置编码相机流的 VideoEncoder:enabled启用 VideoEncoder。当为false时,会记录 Camera 节点的原始输出,这可能会降低设备 CPU 使用率,但会增加带宽消耗。profile设置编码配置文件bitrate设置 VideoEncoder 的比特率(设置为 0 时自动确定)lossless决定是否在适用时使用无损编码quality决定适用时的编码质量
功能示例
全局回放
Python
Python
1with dai.Pipeline as pipeline:
2 pipeline.enableHolisticReplay("./recordings/recording.tar")DEPTHAI_REPLAY 环境变量:Command Line
1DEPTHAI_REPLAY="./recordings/recording.tar" python3 application.py功能示例
局限性
- 由于回放需要将消息从主机发送到设备,使用此功能会显著降低管道的帧率。
- 回放时,帧时间戳在每次循环中可能会漂移,因为循环时间戳偏移量是独立为每个相机流计算的。这可能会在运行一段时间后导致消息同步问题。
- 目前,只能全局记录和回放单设备管道。