1

我是 ubuntu 和 tx2 的新手。
我刚刚用 Ubuntu 18.04 和最新的 Jetpack 版本刷新了我的 TX2。

我无法打开和显示网络摄像头。
网络摄像头被 /video1 识别lsusb并识别ls /dev/video*为 /video1。
我正在尝试遵循教程以及教程和教程。

我已经能够安装“gstreamer1.0-plugins-bad-faad不是 gstreamer1.0-plugins-bad-videoparsers(我收到一个错误......我认为可以忽略它,因为它应该只需要用于 IP 摄像机)。

无论哪种方式,当我运行我的测试脚本时,我都会收到错误: ... GStreamer: pipeline have not been created,以及“无法从资源读取”和“无法启动管道”错误。

尝试打开 Cheese 时,相机列在“设备”下……但显示为灰色。

我已经xvfb安装和v4l-utils.

运行此管道时,我得到一个看起来像旧电视测试传输的弹出窗口: gst-launch-1.0 -v v4l2src device=/dev/video1 ! image/jpeg, format=MJPG, width=640, height=480, framerate=30/1 ! nvjpegdec ! 'video/x-raw(memory:NVMM), format=I420' ! nvvidconv ! xvimagesink.

运行此管道后,我得到一个 "Pipeline is live and does not need PREROLL ... ERROR: from element /GstPipeline:pipeline0/GstV4l25Src:v4l2src0: Internal data stream error.""ERROR: pipeline doesn't want to preroll.".

使用一些 MATLAB 代码,我可以“打开”网络摄像头,即灯亮起,但看不到任何输出。尝试使用上面的 OpenCV 代码时也没有得到输出......

任何帮助,将不胜感激。

编辑:我可以使用我的网络摄像头打开/流式传输nvgstcapture-1.0 --cap-dev-node=0 --camsrc=0

所以这听起来像是 gstreamer 的错误......我想。

4

1 回答 1

0

我假设您正在使用 Jetson 上的车载摄像头。

Jetson CSI 相机使用 Tegra 芯片上的 ISP,通常通过nvcamerasrcnvarguscamerasrc元素而不是v4l2src.

所以我们应该从nvcamerasrc元素开始,Tegra ISP 的输出是 video/x-raw(memory:NVMM),然后我们需要将它下载到常规缓冲区nvvidconv中才能显示xvimagesink

下面的管道应该这样做。

gst-launch-1.0 -v nvcamerasrc !  'video/x-raw(memory:NVMM), width=(int)2592, height=(int)1458, format=(string)I420, framerate=(fraction)30/1' ! nvvidconv ! xvimagesink
于 2021-08-24T14:30:35.080 回答