I am using nvidia-l4t-core 35.4.1-20230801124926 on a Jetson Orin Nano, and trying to record video from a ZED 2 camera. The ZED SDK version is ZED_SDK_Tegra_L4T35.4_v4.1.3.zstd
When I run the ZED example to record data, I get this error:
$ python svo_recording.py --output_svo_file testtt.svo
[2024-08-10 20:06:50 UTC][ZED][INFO] Logging level INFO
[2024-08-10 20:06:51 UTC][ZED][INFO] Using USB input… Switched to default resolution HD720
[2024-08-10 20:06:52 UTC][ZED][INFO] [Init] Depth mode: NONE
[2024-08-10 20:06:52 UTC][ZED][INFO] [Init] Camera successfully opened.
[2024-08-10 20:06:52 UTC][ZED][INFO] [Init] Camera FW version: 1523
[2024-08-10 20:06:52 UTC][ZED][INFO] [Init] Video mode: HD720@60
[2024-08-10 20:06:52 UTC][ZED][INFO] [Init] Serial Number: S/N 35678794
[2024-08-10 20:06:53 UTC][ZED][INFO] [Init] Notice: The recording is using SVO version 2, enabled by default starting from SDK version 4.1. To revert to the original SVO version, set the environment variable “ZED_SDK_SVO_VERSION” to 1
H265 is not supported <<
Recording ZED : SVO RECORDING ERROR
The same happens for H.264. I included the python script below.
What could be the cause? As far as I could see, H.265 encoding should be supported.
It seems to be present on my system too:
$ gst-inspect-1.0 | grep h265
typefindfunctions: video/x-h265: h265, x265, 265
videoparsersbad: h265parse: H.265 parser
libav: avdec_h265: libav HEVC (High Efficiency Video Coding) decoder
nvvideo4linux2: nvv4l2h265enc: V4L2 H.265 Encoder
########################################################################
Copyright (c) 2022, STEREOLABS.
All rights reserved.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
“AS IS” AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
########################################################################
import sys
import pyzed.sl as sl
from signal import signal, SIGINT
import argparse
import os
cam = sl.Camera()
#Handler to deal with CTRL+C properly
def handler(signal_received, frame):
cam.disable_recording()
cam.close()
sys.exit(0)
signal(SIGINT, handler)
def main():
init = sl.InitParameters()
init.depth_mode = sl.DEPTH_MODE.NONE # Set configuration parameters for the ZED
status = cam.open(init)
if status != sl.ERROR_CODE.SUCCESS:
print("Camera Open", status, "Exit program.")
exit(1)
recording_param = sl.RecordingParameters(opt.output_svo_file, sl.SVO_COMPRESSION_MODE.H265) # Enable recording with the filename specified in argument
err = cam.enable_recording(recording_param)
if err != sl.ERROR_CODE.SUCCESS:
print("Recording ZED : ", err)
exit(1)
runtime = sl.RuntimeParameters()
print("SVO is Recording, use Ctrl-C to stop.") # Start recording SVO, stop with Ctrl-C command
frames_recorded = 0
while True:
if cam.grab(runtime) == sl.ERROR_CODE.SUCCESS : # Check that a new image is successfully acquired
frames_recorded += 1
print("Frame count: " + str(frames_recorded), end="\r")
if name == “main”:
parser = argparse.ArgumentParser()
parser.add_argument(‘–output_svo_file’, type=str, help=‘Path to the SVO file that will be written’, required= True)
opt = parser.parse_args()
if not opt.output_svo_file.endswith(“.svo”) and not opt.output_svo_file.endswith(“.svo2”):
print("–output_svo_file parameter should be a .svo file but is not : ",opt.output_svo_file,“Exit program.”)
exit()
main()