通过 UDP 将视频流从 Python 传递到 VB.NET

时间:2021-06-08 13:32:46

标签: python vb.net opencv sockets emgucv

我需要将实时视频流从 Python 分析后端传递到 VB.NET WPF 前端。我正在使用 Python 服务器和通过 UDP 通信的 VB.NET 客户端。

这就是我目前所拥有的:

Python 服务器:

import cv2
from socket import *
import socket
import numpy as np
import sys


_s = socket.socket(socket.AF_INET,socket.SOCK_DGRAM)
_address = ('localhost',5000)
_quality=[int(cv2.IMWRITE_JPEG_QUALITY),80]

vcap = cv2.VideoCapture("rtsp://wowzaec2demo.streamlock.net/vod/mp4:BigBuckBunny_115k.mov")
while(1):
    ret, frame = vcap.read()
    image = frame

    # processing

    result, imgencode = cv2.imencode('.jpg', image, _quality)
    data = np.array(imgencode)

    stringData = data.tobytes()
    _s.sendto(stringData,_address)

VB.NET 客户端(使用控制台应用程序进行测试):

Imports System.Net
Imports System.Net.Sockets

Module Program
    Dim Mat = New Emgu.CV.Mat(New System.Drawing.Size(640, 480), Emgu.CV.CvEnum.DepthType.Cv8U, 3)
    Sub Main(args As String())
        Using socket As UdpClient = New UdpClient(5000)

            Try

                While True
                    Dim remoteEP = New IPEndPoint(IPAddress.Any, 5000)
                    Dim data As Byte() = socket.Receive(remoteEP)
                    Emgu.CV.CvInvoke.Imdecode(data, Emgu.CV.CvEnum.ImreadModes.ReducedColor8, Mat)
                    Emgu.CV.CvInvoke.Imshow("", Mat)
                End While

            Catch __unusedSocketException1__ As SocketException
                Throw
            End Try
        End Using
    End Sub
End Module

到目前为止我得到的代码没有抛出任何错误,但输出没有显示在 EmguCV ImShow() 窗口中。感谢我的用例的任何帮助或替代解决方案!

0 个答案:

没有答案
相关问题