Raspberry Pi 3 b+ 视频流到 Python GUI

Raspberry Pi 3 b+ Video Streaming to Python GUI

我有 PC A 和 PC B。PC A 是 Raspberry Pi 3 b+,使用此代码打开 netcat 侦听端口 8090 时流式传输视频:

PC B用MPlayer连接PC A的8090端口,打开Video Stream,输出非常棒,延迟很低,命令:

但问题是:

-> 1,是否有任何 Python 库或代码可以帮助我捕获流式视频并将其通过管道传输到 GUI 中?所以我可以在我的 GUI 上添加一些信息,同时在后台显示视频。

-> 2,有没有办法在我的 GUI 中使用 Mplayer 作为嵌入输出?然后我可以根据需要编辑我的 GUI,视频流在后台播放。

一天后,我找到了解决方案。

对于寻找解决方案的任何人,这将是您的write-ups:

  1. PC B(客户端,这是我的 DebianOS 笔记本电脑):您创建这两个文件:

    • mkFIFO264.sh

      #!/bin/bash
      if [ -p fifo264 ]
      then
        rm fifo264
      fi
      mkfifo fifo264
      nc -l -v -p 3592 > fifo264
      
    • getStreamData.py

      import numpy as np
      import cv2
      cap = cv2.VideoCapture('fifo264')
      while(cap.isOpened()):
          ret, frame = cap.read()
          gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
          cv2.imshow('iGenius138 Drone',gray)
          if cv2.waitKey(1) & 0xFF == ord('q'):
              break
      cap.release()
      cv2.destroyAllWindows()
      
  2. PC A(Raspberry Pi 3 流服务器):您使用以下代码创建一个 .sh 文件:

        #!/bin/bash
        raspivid -t 0 -w <video_width> -h <video_height> -hf -ih -fps 60 -o - | nc <PC-B_IP> 3592