ОШИБКА веб-стриминга из OpenCV при потоковой передаче с помощью flask в Raspberry PiPython

Программы на Python
Ответить
Anonymous
 ОШИБКА веб-стриминга из OpenCV при потоковой передаче с помощью flask в Raspberry Pi

Сообщение Anonymous »

Я хочу осуществлять потоковую передачу на веб-сайте с помощью Raspberry Pi, Pi Camera, flask и OpenCV.
Поэтому я написал код потоковой передачи.

Код: Выделить всё

from flask import Flask, render_template, Response
import cv2

app = Flask(__name__)
capture = cv2.VideoCapture(0)
capture.set(cv2.CAP_PROP_FRAME_WIDTH, 640)
capture.set(cv2.CAP_PROP_FRAME_HEIGHT,480)

def GenerateFrame():
capture = cv2.VideoCapture(0)
while True:
ref, frame = capture.read()
if not ref:
break
else:
ref, buffer = cv2.imencode('.jpg',frame)
frame = buffer.tobytes()
yield (b'--frame\r\n'
b'Content-Type: image /jpeg\r\n\r\n' + frame + b'\r\n')
@app.route("/")

def Index():
return render_template('index.html')

@app.route('/video_feed')
def video_feed():
return Response(GenerateFrame(), mimetype = 'multipart/x-mixed-replace; boundary = frame')

if __name__ == "__main__":
app.run(host="0.0.0.0", port = "8080")

и index.html

Код: Выделить всё







WEBCAM STREAMING





Live Streaming
[img]{{url_for([/img]






Когда я запускаю код Python.
Код работал хорошо, но я не вижу потоковое видео, когда захожу на свой IP-адрес.
Когда я захожу на веб-сайт, в терминале Raspberry Pi появляется код ошибки, как показано ниже.

Код: Выделить всё

@raspberrypi:~/opencv $ sudo python app_start.py
[ WARN:0] global ../modules/videoio/src/cap_gstreamer.cpp (1824) handleMessage OpenCV | GStreamer warning: Embedded video playback halted; module v4l2src0 reported: Failed to allocate required memory.
[ WARN:0] global ../modules/videoio/src/cap_gstreamer.cpp (914) open OpenCV | GStreamer warning: unable to start pipeline
[ WARN:0] global ../modules/videoio/src/cap_gstreamer.cpp (501) isPipelinePlaying OpenCV | GStreamer warning: GStreamer: pipeline have not been created
* Serving Flask app "app_start" (lazy loading)
* Environment: production
WARNING: This is a development server. Do not use it in a production deployment.
Use a production WSGI server instead.
* Debug mode: off
* Running on http://0.0.0.0:8080/ (Press CTRL+C to quit)
192.168.123.9 - - [16/Jan/2024 10:29:43] "GET / HTTP/1.1" 200 -
[ WARN:1] global ../modules/videoio/src/cap_gstreamer.cpp (1824) handleMessage OpenCV | GStreamer warning: Embedded video playback halted; module v4l2src1 reported: Device '/dev/video0' is busy
[ WARN:1] global ../modules/videoio/src/cap_gstreamer.cpp (914) open OpenCV | GStreamer warning: unable to start pipeline
[ WARN:1] global ../modules/videoio/src/cap_gstreamer.cpp (501) isPipelinePlaying OpenCV | GStreamer warning: GStreamer: pipeline have not been created
[ WARN:1] global ../modules/videoio/src/cap_v4l.cpp (893) open VIDEOIO(V4L2:/dev/video0): can't open camera by index
192.168.123.9 - - [16/Jan/2024 10:29:43] "GET /video_feed HTTP/1.1" 200 -
Я нашел предложение «модуль v4l2src1 сообщил: устройство «/dev/video0» занято».
Но я не использовал video0 за исключением запуска этого кода.
Как решить эту проблему?

Подробнее здесь: https://stackoverflow.com/questions/778 ... spberry-pi
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»