ZED_SVO_Editor incompability with .svo2 files

Hi!

I’m having problems when trying to run the -cpr, -inf and -repair commands on a .svo2 file with the ZED_SVO_Editor tool. If I try to do the same over .svo files there are no apparent errors.

I’m trying this with the version 4.1 of the ZED SDK in a Ubuntu 22.04 OS. Is this normal behavior?

My objective is to record in LOSSLESS mode using a Jetson Orin Nano and once the video is recorded use the tool to change the compression format, ideally in the Jetson. I don’t want to record in .svo format since I’m interested in the GEN2 positional tracking.

Hi @NVG97
thank you for reporting this issue. We are verifying the behaviors of the tool with the new SVO v2 file format and fixing it.

Hi,

Although this was validated before release, I tested it again with the option mentioned and the behavior is correct for SVO 1 or 2, tested on Desktop and Jetson Orin NX/AGX.

Are you running ZED_SVO_Editor on Jetson Orin Nano? Please note that the Jetson Orin Nano (specifically) doesn’t have a hardware encoder, so SVO recording is not supported for several formats (like H26X). Other related operations will therefore won’t work either. We’re working on having a software encoder fallback, but this will have a great impact on CPU/GPU usage and is not released yet.

I would recommend using the LOSSY H265, with a high bitrate if necessary, to record SVO in general. The lossless SVOs require very significant computation and storage resources.

Could you share the error you’re facing and if possible a short SVO to be able to reproduce the issue?

Hi @adujardin,
I’m sorry I wasn’t clear in the description of my problem. I’m first using a computer with an NVIDIA RTX 4070 and 12th Gen Intel(R) Core™ i5-12600KF to learn how to use the tool before trying it out in the Jetson Orin Nano, but based on your answer I assume I cannot use the ZED_SVO_Editor in the Jetson Orin Nano to change the compression mode after the video is recorded in LOSSLESS.

That being said, I just made a test in the desktop computer that consisted in recording using the ZED_Explorer tool (zed_explorer.svo2) and also with the python API using a script (script.svo and script.svo2). The three files where recorded in LOSSLESS_MODE and script.svo and script.svo2 are both of 3 min, whereas the zed_explorer.svo2 is about 17 seconds long.

In the next sequence of commands I tried to get the info of the three files, only being successful with the script.svo. Then, I ran the -repair command on both .svo2 (which yesterday failed but today worked), and finally, I tried to run the -cpr option which was successful only with the zed_explorer_repaired.svo2 file of 17 seconds and failed with the script_repaired.svo2 .

wildsense@dev-server:~/rov_recordings$ ls
script.svo  script.svo2  zed_explorer.svo2
wildsense@dev-server:~/rov_recordings$ ZED_SVO_Editor -inf script.svo
-inf option detected
SVO Infos : SVO v 1
Image Size : [ 1920  x  1080 ]
Framerate :  15
Number of Frames :  2593
ZED Serial Number :  36848014
Compression mode :  "Lossless compression (png)"
Product : ZED2i
Sensors Fw version :  777
Camera Fw version :  1523
wildsense@dev-server:~/rov_recordings$ ZED_SVO_Editor -inf script.svo2
-inf option detected
*FAIL : failed to get infos from  "script.svo2" 
 You can try the -repair option to repair the SVO file
wildsense@dev-server:~/rov_recordings$ ZED_SVO_Editor -inf zed_explorer.svo2 
-inf option detected
*FAIL : failed to get infos from  "zed_explorer.svo2" 
 You can try the -repair option to repair the SVO file
wildsense@dev-server:~/rov_recordings$ ZED_SVO_Editor -repair zed_explorer.svo2 -repair option detected
* Repair in progress... Please wait *
 ** SUCCESS : SVO file has been repaired under the name :  "zed_explorer_repaired.svo2"
wildsense@dev-server:~/rov_recordings$ ZED_SVO_Editor -inf zed_explorer_repaired.svo2 
-inf option detected
SVO Infos : SVO v 2
Image Size : [ 2208  x  1242 ]
Framerate :  15
Number of Frames :  247
ZED Serial Number :  36848014
Compression mode :  "Lossless compression (png)"
Product : ZED2i
Sensors Fw version :  777
Camera Fw version :  1523
wildsense@dev-server:~/rov_recordings$ ZED_SVO_Editor -cpr zed_explorer_repaired.svo2 -m 6 zed_explorer_H265.svo2
-compress option detected
** Start to compress in undef
   99% [================================================= ]
New SVO File created!
wildsense@dev-server:~/rov_recordings$ ZED_SVO_Editor -repair script.svo2 
-repair option detected
* Repair in progress... Please wait *
 ** SUCCESS : SVO file has been repaired under the name :  "script_repaired.svo2"
wildsense@dev-server:~/rov_recordings$ ZED_SVO_Editor -cpr script_repaired.svo2 -m 6 script_H265.svo2
-compress option detected
** Start to compress in undef
   99% [================================================= ]
Killed
wildsense@dev-server:~/rov_recordings$ ZED_SVO_Editor -cpr script.svo2 -m 6 script_o_H265.svo2
-compress option detected
*FAIL : failed to open  "script.svo2"

Trying to open one of the original .svo2 files with the ZED_Explorer tool will result in the termination of the tool and display of the next error message:

wildsense@dev-server:~/rov_recordings$ ZED_Explorer 
 ** [SVO] Hardware compression (NVENC) available **
Stack trace (most recent call last):
#31   Object "/lib/x86_64-linux-gnu/libQt5Core.so.5", at 0x7e2ed8cb9e39, in QCoreApplication::notifyInternal2(QObject*, QEvent*)
#30   Object "/lib/x86_64-linux-gnu/libQt5Widgets.so.5", at 0x7e2ed996c712, in QApplicationPrivate::notify_helper(QObject*, QEvent*)
#29   Object "/lib/x86_64-linux-gnu/libQt5Core.so.5", at 0x7e2ed8ce733e, in QObject::event(QEvent*)
#28   Object "/lib/x86_64-linux-gnu/libQt5Core.so.5", at 0x7e2ed8cf57fd, in QTimer::timeout(QTimer::QPrivateSignal)
#27   Object "/lib/x86_64-linux-gnu/libQt5Core.so.5", at 0x7e2ed8cf17c7, in 
#26   Object "ZED_Explorer", at 0x4e4b33, in 
#25   Object "/lib/x86_64-linux-gnu/libQt5Core.so.5", at 0x7e2ed8d13111, in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>)
#24   Object "/lib/x86_64-linux-gnu/libglib-2.0.so.0", at 0x7e2ed7b1e3e2, in g_main_context_iteration
#23   Object "/lib/x86_64-linux-gnu/libglib-2.0.so.0", at 0x7e2ed7b76257, in 
#22   Object "/lib/x86_64-linux-gnu/libglib-2.0.so.0", at 0x7e2ed7b20d3a, in g_main_context_dispatch
#21   Object "/lib/x86_64-linux-gnu/libQt5XcbQpa.so.5", at 0x7e2ed52c8d6d, in 
#20   Object "/lib/x86_64-linux-gnu/libQt5Gui.so.5", at 0x7e2ed9116a2b, in QWindowSystemInterface::sendWindowSystemEvents(QFlags<QEventLoop::ProcessEventsFlag>)
#19   Object "/lib/x86_64-linux-gnu/libQt5Gui.so.5", at 0x7e2ed9141306, in QGuiApplicationPrivate::processMouseEvent(QWindowSystemInterfacePrivate::MouseEvent*)
#18   Object "/lib/x86_64-linux-gnu/libQt5Core.so.5", at 0x7e2ed8cb9e39, in QCoreApplication::notifyInternal2(QObject*, QEvent*)
#17   Object "/lib/x86_64-linux-gnu/libQt5Widgets.so.5", at 0x7e2ed996c712, in QApplicationPrivate::notify_helper(QObject*, QEvent*)
#16   Object "/lib/x86_64-linux-gnu/libQt5Widgets.so.5", at 0x7e2ed99cbfd4, in 
#15   Object "/lib/x86_64-linux-gnu/libQt5Widgets.so.5", at 0x7e2ed99c8d3f, in 
#14   Object "/lib/x86_64-linux-gnu/libQt5Widgets.so.5", at 0x7e2ed9972e46, in QApplicationPrivate::sendMouseEvent(QWidget*, QMouseEvent*, QWidget*, QWidget*, QWidget**, QPointer<QWidget>&, bool, bool)
#13   Object "/lib/x86_64-linux-gnu/libQt5Core.so.5", at 0x7e2ed8cb9e39, in QCoreApplication::notifyInternal2(QObject*, QEvent*)
#12   Object "/lib/x86_64-linux-gnu/libQt5Widgets.so.5", at 0x7e2ed9974363, in QApplication::notify(QObject*, QEvent*)
#11   Object "/lib/x86_64-linux-gnu/libQt5Widgets.so.5", at 0x7e2ed996c712, in QApplicationPrivate::notify_helper(QObject*, QEvent*)
#10   Object "/lib/x86_64-linux-gnu/libQt5Widgets.so.5", at 0x7e2ed99af4ed, in QWidget::event(QEvent*)
#9    Object "/lib/x86_64-linux-gnu/libQt5Widgets.so.5", at 0x7e2ed9b60d9d, in QToolButton::mouseReleaseEvent(QMouseEvent*)
#8    Object "/lib/x86_64-linux-gnu/libQt5Widgets.so.5", at 0x7e2ed9a641e6, in QAbstractButton::mouseReleaseEvent(QMouseEvent*)
#7    Object "/lib/x86_64-linux-gnu/libQt5Widgets.so.5", at 0x7e2ed9a63fc3, in 
#6    Object "/lib/x86_64-linux-gnu/libQt5Widgets.so.5", at 0x7e2ed9a6239d, in 
#5    Object "/lib/x86_64-linux-gnu/libQt5Widgets.so.5", at 0x7e2ed9a62115, in QAbstractButton::clicked(bool)
#4    Object "/lib/x86_64-linux-gnu/libQt5Core.so.5", at 0x7e2ed8cf17c7, in 
#3    Object "ZED_Explorer", at 0x4e36f3, in 
#2    Object "ZED_Explorer", at 0x4e0e75, in 
#1    Object "/lib/x86_64-linux-gnu/libQt5Widgets.so.5", at 0x7e2ed99a035a, in QWidget::setStyleSheet(QString const&)
#0    Object "/lib/x86_64-linux-gnu/libQt5Core.so.5", at 0x7e2ed8b50300, in QString::operator=(QString const&)
Segmentation fault (Invalid permissions for mapped object [0x7e2ed8a0aa40])
Segmentation fault (core dumped)

I also recorded one file with the python API script in H265 compression mode and the file didn’t present any problems with the ZED_SVO_Editor -inf command.

The complexity of the problem is that the project I’m working now requires to use the Orin Nano, so the only viable option is to record in LOSSLESS mode, which afterwards ideally should be converted to H265 for storage reasons.