ZED使用指南(七)Video Recording

3、视频录制

ZED使用Stereolabs的SVO格式存储视频和数据,如时间戳和传感器数据。

在GUI或命令行模式下使用ZED Explorer或ZED API录制SVO视频。

(1)压缩模式

SVO视频可以用压缩模式录制,无损和压缩模式可以保持图像质量或减少文件大小。

硬件编码的好处

为了获得最佳性能,建议使用H.264和H.265录制模式,因为这种模式可以使用内置在NVIDIA显卡中基于硬件的编码器(NVENC)。通过将编码卸载到NVENC,GPU和CPU可以自由地进行其他操作。例如,在计算量大的场景中,可以在对主程序影响最小的情况下全帧速率录制视频。

压缩质量

在给定的比特率下,硬件编码质量可能因GPU而异。NVIDIA GPU(RTX 20系列,Jetson Xavier)上更新的NVENC编码器通常会产生比老一代GPU (GTX 10系列,Jetson Nano)上的编码器更好的质量。

(2)多个相机录制

可用连接到同一台PC的多个相机录制视频。

(3)使用录制API

视频录制

录制SVO文件,要用enablerrecording()启用Recording模块。指定一个输出文件名(output.svo)和SVO_COMPRESSION_MODE,然后保存每个抓取的帧。SVO可以记录视频和相关的数据(时间戳、IMU数据等)。

# Create a ZED camera object
zed = sl.Camera()

# Enable recording with the filename specified in argument
output_path = sys.argv[0]
err = zed.enable_recording(output_path, sl.SVO_COMPRESSION_MODE.H264)

while not exit_app:
    # Each new frame is added to the SVO file
    zed.grab()

# Disable recording
zed.disable_recording()

视频回放

要播放SVO文件,在setFormSVOFile()中添加文件路径作为参数。

当SVO文件被完全读取时,返回END_OF_SVOFILE_REACHED错误码。

# Create a ZED camera object
zed = sl.Camera()

# Set SVO path for playback
input_path = sys.argv[1]
init_parameters = sl.InitParameters()
init_parameters.set_from_svo_file(input_path)

# Open the ZED
zed = sl.Camera()
err = zed.open(init_parameters)

svo_image = sl.Mat()
while not exit_app:
  if zed.grab() == sl.ERROR_CODE.SUCCESS:
    # Read side by side frames stored in the SVO
    zed.retrieve_image(svo_image, sl.VIEW.SIDE_BY_SIDE)
    # Get frame count
    svo_position = zed.get_svo_position();
  elif zed.grab() == sl.ERROR_CODE.END_OF_SVOFILE_REACHED:
    print("SVO end has been reached. Looping back to first frame")
    zed.set_svo_position(0)

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值