Gstreaming через http с использованием Python и OpenCV

#python #http #opencv #gstreamer

#python #http #opencv #gstreamer

Вопрос:

У меня есть поток с IP-камеры, который я передаю для обработки изображений с помощью OpenCV. В настоящее время, как только изображение обработано, я выводю его с помощью cv2.imshow() во всплывающем окне, как показано ниже.

 cap = cv2.VideoCapture('http://76.75.8.111/mjpg/video.mjpg')

while True:

    hasframe, image = cap.read()

    #image=cv2.resize(image, (620, 480)) 
    # do some more image processing here.

    cv2.imshow(window_title, image)   
  

Я хочу отправить обработанное изображение на определенный веб-адрес, передав вывод вышеупомянутого кода в метод VideoCapture cv2. Для этой цели я мог бы в конечном итоге использовать конвейеры gstreamer, но я не смог найти учебное пособие по python.

 def main():
    global capture
    capture = cv2.VideoCapture()    #gstreamer pipelines here?
    capture.set(cv2.CAP_PROP_FRAME_WIDTH, 320); 
    capture.set(cv2.CAP_PROP_FRAME_HEIGHT, 240);

    try:
      server = HTTPServer(('',9090),CamHandler) 
      print("server started")
      server.serve_forever()
    except KeyboardInterrupt:
      capture.release()
      server.socket.close()  
  

Пожалуйста, помогите или укажите мне, где я могу найти подобную реализацию.

Комментарии:

1. в чем же проблема ? Что у тебя есть в CamHandler ? Я создал только потоковое изображение PyGame (с сервера PyGame на клиент PyGame), используя сокет и собственный протокол: github.com/furas/python-examples/tree/master/pygame /…

2. фурас, проблема была решена — мне вообще не нужно было использовать gstreamer. Спасибо, что поделились своей реализацией потоковой передачи. CamHandler Является классом в этом модуле github.com/berak/opencv_smallfry/blob/master/mjpg_serve.py