.svo2 file save

Hi Stereolabs team, I’m seeing a reproducible SVO recording issue with zed-gstreamer on Jetson.

Environment:

  • Jetson (aarch64)
  • ZED SDK 5.2
  • zed-gstreamer built from master, installed plugin reports zedsrc Version 5.1
  • GStreamer 1.20.x

Issue:

  • Runtime SVO recording appears to enable/disable correctly via zedsrc properties.
  • .svo2 file is created and can be large (e.g., 18MB, 80MB).
  • But playback with ZED SDK (pyzed) only decodes frame 0; next grab() returns END_OF_SVO_FILE_REACHED.
  • get_svo_number_of_frames() reports many frames (e.g., 37/62/192), but only first frame is readable.

Repro summary:

  1. Build/install zed-gstreamer
  2. Launch zedsrc pipeline
  3. Set svo-recording-filename and toggle svo-recording-enable=true at runtime after PLAYING
  4. Stop with EOS and set svo-recording-enable=false
  5. Open resulting .svo2 in SDK and read frames

Expected:

  • Multi-frame playback for recorded SVO.

Observed:

  • Only first frame decodes, then immediate EOF.

Extra logs seen during playback:

  • Capture Plane:Getting format: failed: Invalid argument
  • END OF SVO FILE REACHED

Has anyone seen this on Jetson with SDK 5.2 / zedsrc v5.1? Is there a known fix/workaround (property order, required stream-type, compression mode, finalization sequence, etc.)?

Hi @calebdarden
Have you tried to fix the SVO by using the ZED_SVO_Editor tool?

$ ZED_SVO_Editor
You must provide arguments to this tools, here the list of them : 


 -inf                  Print SVO infos

 -cut                  Cut a SVO and save the svo part between <s> and <e> to another svo.
                       -s or -e parameters must be specified.
                       -s or -e parameters must be specified.
                       -start-timestamp could be specified instead -s for cutting from a starting timestamp.
                       -end-timestamp could be specified instead -e for cutting up to an ending timestamp.

 -merge                Add/Merge two or more SVO files into a single one.
                       SVO files must have the same resolution and same ZED Serial Number.

 -cpr                  Convert a SVO into another SVO compression format
                       -m parameter must be specified.

 -m                    Compression format to use with the -cpr option. m can be 0, 1, 2, 3, 4 , 5 or 6 for respectively PNG (Lossless), ZSTD (Lossless), JPEG (Lossy),  H264 Lossy, H265 Lossy, H264 LossLess and H265 LossLess  based compressions.

 -repair               Repair a SVO file by recreating a new SVO <svofilename_repaired.svo> with a recovered index table.

 -update-timestamp     Update the timestamp of all frames in a SVO video file based on a new reference timestamp provided as input. The new reference timestamp must be specified through to -ref argument. The reference timestamp must be in nanoseconds.
                       The timestamp of the first frame in the resulting SVO will be set to the specified reference timestamp.

 -export-to-mcap       Export the SVO2 data (image, imu, gnss, custom data) to a MCAP file readable by foxglove.
                       Use --no_image_export for skip image export
                       Use --no_imu_export for skip imu export
                       Use --no_custom_export for skip custom data export (including GNSS)

Sample usage:
"ZED_SVO_Editor -inf svo1.svo"
"ZED_SVO_Editor -cut svo1.svo -s 100 -e 200 output.svo"
"ZED_SVO_Editor -cut svo1.svo -start-timestamp 1772461746027245056 -end-timestamp 1772465346027245134 output.svo"
"ZED_SVO_Editor -merge svo1.svo svo2.svo output.svo"
"ZED_SVO_Editor -cpr input.svo -m 2 output.svo"
"ZED_SVO_Editor -repair input.svo"
"ZED_SVO_Editor -update-timestamp input.svo -ref 1772465346027245134 output.svo"
"ZED_SVO_Editor -export-to-mcap input.svo"