You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Jetson Nano上如何用Python OpenCV结合nvv4l2camerasrc录制MJPG视频

问题解决:GStreamer无法链接nvv4l2camerasrc与nvvidconv

问题原因

错误核心在于:nvv4l2camerasrc输出的video/x-raw(memory:NVMM), format=MJPG格式,既不被多数USB摄像头支持(这类设备通常无法以NVMM内存模式输出MJPG流),也不被nvvidconv兼容(该组件不处理NVMM内存中的MJPG编码数据)。

解决方法

方法一:改用v4l2src+硬件解码(推荐)

使用标准v4l2src读取USB摄像头的MJPG流,通过nvjpegdec进行硬件解码转换为NVMM内存的原始视频流,再交给nvvidconv处理,完整代码如下:

import cv2

width = 2560
height = 1440
framerate = 30

# 修改后的GStreamer管道
gs_pipeline = f"v4l2src device=/dev/video0 " \
              f"! video/x-raw, width={width}, height={height}, format=MJPG, framerate={framerate}/1 " \
              f"! nvjpegdec " \
              f"! video/x-raw(memory:NVMM) " \
              f"! nvvidconv " \
              f"! video/x-raw, format=BGRx " \
              f"! videoconvert " \
              f"! video/x-raw, format=BGR " \
              f"! appsink"

v_cap = cv2.VideoCapture(gs_pipeline, cv2.CAP_GSTREAMER)
if not v_cap.isOpened():
    print("failed to open video capture")
    exit(-1)

while v_cap.isOpened():
    ret_val, frame = v_cap.read()
    if not ret_val:
        break

    cv2.imshow('', frame)

    input_key = cv2.waitKey(1)
    if input_key != -1:
        print(f"input key = {input_key}")

    if input_key == ord('q'):
        break

v_cap.release()
cv2.destroyAllWindows()

方法二:使用nvv4l2camerasrc+原始格式

先通过以下命令确认摄像头支持的NVMM兼容原始格式(如YUY2、NV12等):

v4l2-ctl --list-formats-ext

找到2560x1440@30分辨率对应的非MJPG格式,修改管道参数,示例(假设支持YUY2格式):

gs_pipeline = f"nvv4l2camerasrc device=/dev/video0 " \
              f"! video/x-raw(memory:NVMM), width={width}, height={height}, format=YUY2, framerate={framerate}/1 " \
              f"! nvvidconv " \
              f"! video/x-raw, format=BGRx " \
              f"! videoconvert " \
              f"! video/x-raw, format=BGR " \
              f"! appsink"

额外检查项

  • 确保已安装GStreamer NVIDIA加速插件:gstreamer1.0-nvvidconv、gstreamer1.0-nvjpeg
  • 用gst-inspect-1.0 nvv4l2camerasrc和gst-inspect-1.0 nvvidconv查看组件支持的具体格式参数

内容的提问来源于stack exchange,提问作者Jet C.

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.31 05:03:36