即使在索引 0 中检测到 pi cam,我的 Raspberry pi 也不会捕获帧

问题描述 投票:0回答:0

我正在使用带有 Pi 相机模块 v3 的 Raspberry Pi 4 Model B,我正在尝试启动一个流式传输相机源的 RTSP 流服务器,当我运行服务器脚本时,我一直在使用 this RTSP 库:

import cv2
from zephyr import Stream

if __name__ == "__main__":
  stream = Stream(
    url="rtsp://localhost:8554/test",
    resolution=(1280, 720),
    fps=30,
    bitrate="2M"
  )

  cap = cv2.VideoCapture(0)
  while True:
    ret, frame = cap.read()
    stream.send(frame)

我明白了:

Traceback (most recent call last):
  File "/home/pi/testserver1.py", line 15, in <module>
    stream.send(frame)
  File "/home/pi/innov/venv/lib/python3.11/site-packages/zephyr/stream/stream.py", line 174, in send
    frame = cv2.resize(frame, self.resolution)
            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
cv2.error: OpenCV(4.8.1) /io/opencv/modules/imgproc/src/resize.cpp:4062: error: (-215:Assertion failed) !ssize.empty() in function 'resize'

即使检测到我的相机:

(venv) pi@YassinePi:~ $ libcamera-still --list-cameras
Available cameras
-----------------
0 : imx708 [4608x2592 10-bit RGGB] (/base/soc/i2c0mux/i2c@1/imx708@1a)
    Modes: 'SRGGB10_CSI2P' : 1536x864 [120.13 fps - (768, 432)/3072x1728 crop]
                             2304x1296 [56.03 fps - (0, 0)/4608x2592 crop]
                             4608x2592 [14.35 fps - (0, 0)/4608x2592 crop]

我尝试将索引从 1,-1,2 更改为无效

我想可能是因为这段代码是为台式机设计的,或者是我没有正确安装所需的包

第二个原因,由于我没有Raspbian操作系统的经验,我重新安装了操作系统并重新安装了软件包,仍然不起作用。

知道如何解决这个问题吗?或者有其他方法可以做到这一点?

python opencv ffmpeg raspberry-pi rtsp
© www.soinside.com 2019 - 2024. All rights reserved.