【发布时间】:2023-03-25 17:32:01
【问题描述】:
我正在尝试使用带有简单代码的 opencv 和 python 使用网络摄像头拍摄视频
import numpy as np
import cv2
cap = cv2.VideoCapture(0)
print('cap.isOpened')
if cap.isOpened():
print ('cap is opened')
while(True):
re,img=cap.read()
cv2.imshow("video output", img)
k = cv2.waitKey(10)&0xFF
if k==27:
break
cap.release()
cv2.destroyAllWindows()
如果我尝试播放现有视频(例如 .mp4 文件),它工作正常。但是当我尝试使用网络摄像头时出现错误
GStreamer-CRITICAL **:gst_element_get_state:断言“GST_IS_ELEMENT(元素)”失败 cap.isOpened
有关更多信息,我正在使用带有 ubuntu 16.04 的 odroid xu4,网络摄像头我使用罗技 c170(它在 webcamtest 和使用 guvcview 中正常工作)认为它不适用于奶酪和 camorama。
需要这方面的帮助..
【问题讨论】:
-
在终端输入:
python -c "import cv2; print(cv2.getBuildInformation())" | grep -iP "(v4l|ffmpeg)"。输出是什么? -
@zindarod 这是我在终端上输入您所说的内容时遇到的错误
Exception ignored in: <_io.TextIOWrapper name='<stdout>' mode='w' encoding='UTF-8'> BrokenPipeError: [Errno 32] Broken pipe -
我也尝试在 ffmpeg 关键字中查看 cv2.getBuildInformation(),这是值:` Video I/O: DC1394: YES (ver 2.2.4) FFMPEG: YES avcodec: YES (ver 57.89.100) avformat: YES (ver 57.71.100) avutil: YES (ver 55.58.100) swscale: YES (ver 4.6.100) avresample: YES (ver 3.5.0) `
-
安装
gst-libav能解决这个问题吗?请参阅this OpenCV 问答帖子。另外,OpenCV 版本是多少?
标签: python opencv ubuntu gstreamer odroid