python - 如何使用 Python 流式传输来自多个 IP 摄像机的视频

标签 python opencv video-streaming video-processing

url='http://192.168.0.103:8080/shot.jpg'
url2='http://192.168.0.102:8080/shot.jpg'
url3='http://192.168.0.3:8080/shot.jpg'

while True:
 imgResp=urllib.urlopen(url)
 imgNp=np.array(bytearray(imgResp.read()),dtype=np.uint8)
 img=cv2.imdecode(imgNp,-1)

 imgResp2=urllib.urlopen(url2)
 imgNp2=np.array(bytearray(imgResp2.read()),dtype=np.uint8)
 img2=cv2.imdecode(imgNp2,-1)

 imgResp3=urllib.urlopen(url3)
 imgNp3=np.array(bytearray(imgResp3.read()),dtype=np.uint8)
 img3=cv2.imdecode(imgNp3,-1)

 cv2.imshow('IPWebcam',img)
 cv2.imshow('IPWebcam2',img2)
 cv2.imshow('IPWebcam3',img3)
 if cv2.waitKey(1) & 0xFF == ord('q'):
    break   

这是我正在运行的代码。但结果是滞后的。我想要一种更快的方式来一次读取多个视频流。

最佳答案

试试这个:

def ShowCam(url,CameraNumber =1):
    imgResp = urllib.urlopen(url)
    imgNp = np.array(bytearray(imgResp.read()), dtype=np.uint8)
    img = cv2.imdecode(imgNp, -1)
    camName = 'IPWebcam' + str(CameraNumber)
    return camName,img
result = True


from multiprocessing.pool import ThreadPool

# do some other stuff in the main process

while result:
    pool = ThreadPool(processes=3)
    async_result1 = pool.apply_async(ShowCam, (url, 1))  # tuple of args for     foo
    rval1 = async_result1.get()
    cv2.imshow(rval1[0],rval1[1])
    async_result2 = pool.apply_async(ShowCam, (url2, 2))  # tuple of args for foo
    rval2 = async_result2.get()
    cv2.imshow(rval2[0],rval2[1])
    async_result3 = pool.apply_async(ShowCam, (url3, 3))  # tuple of args for foo
    rval3 = async_result3.get()
    cv2.imshow(rval3[0],rval3[1])
    if cv2.waitKey(1) & 0xFF == ord('q'):
        break

注意:代码未经测试,请忽略任何拼写错误,但这应该可以解决问题。快乐编码:)

关于python - 如何使用 Python 流式传输来自多个 IP 摄像机的视频,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47630940/

相关文章:

python - Pandas dataframe - 从字典中添加列

opencv - "detecting object"opencv 的 HOG

asp.net-core - 将视频从 .NET Core 流式传输到 Safari

opencv - 如何建立正确的投影矩阵?

java - 使 VideoView 中的视频静音

c# - 桌面应用程序 .net 中的视频通话

python - Tastypie apply_filters 具有不同的

python - 如何获取 Django 模板中模型的对象计数?

python - 当目标函数有多个参数时如何使用 scipy.optimize minimize_scalar?

python - 使用cv2.HoughLines()的效果是错误的