Python 将网络摄像头传输到aws EC2 Instance

Python 将网络摄像头传输到aws EC2 Instance,python,amazon-ec2,computer-vision,opencv4,Python,Amazon Ec2,Computer Vision,Opencv4,我真的是新手,所以请原谅我的问题似乎幼稚。 我正在尝试使用opencv从aws ec2实例上的网络摄像头捕获视频。我在谷歌上尝试了很多方法,但仍然没能做到这一点 这是我的密码 > import numpy as np import tensorflow as tf import math > #from keras.models import load_model > #from keras.utils import CustomObjectScope > #from k

我真的是新手,所以请原谅我的问题似乎幼稚。 我正在尝试使用opencv从aws ec2实例上的网络摄像头捕获视频。我在谷歌上尝试了很多方法,但仍然没能做到这一点

这是我的密码

> import numpy as np import tensorflow as tf import math
> #from keras.models import load_model
> #from keras.utils import CustomObjectScope
> #from keras.initializers import glorot_uniform
> #import keras import cv2 from flask import Flask, request, jsonify, render_template from werkzeug import secure_filename from pathlib
> import Path import pickle TEMPLATES_AUTO_RELOAD = True
> 
> @app.route('/trial') def trial():
>     #import server
>     cap=cv2.VideoCapture(-1)
>     clientsocket=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
>     clientsocket.connect(('localhost',8089))
>     if cap is None or not cap.isOpened():
>        return render_template('cv/objectTracking.html', prediction_text='Employee Salary should be $ {}')
> 
>     while True:
>         ret,frame=cap.read()
>         # Serialize frame
>         data = pickle.dumps(frame)
> 
>         # Send message length first
>         message_size = struct.pack("L", len(data)) ### CHANGED
> 
>         # Then data
>         clientsocket.sendall(message_size + data)
server.py

import pickle
import socket
import struct

import cv2

HOST = ''
PORT = 8089

s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
print('Socket created')

s.bind((HOST, PORT))
print('Socket bind complete')
s.listen(10)
print('Socket now listening')

conn, addr = s.accept()

data = b'' ### CHANGED
payload_size = struct.calcsize("L") ### CHANGED

while True:

    # Retrieve message size
    while len(data) < payload_size:
        data += conn.recv(4096)

    packed_msg_size = data[:payload_size]
    data = data[payload_size:]
    msg_size = struct.unpack("L", packed_msg_size)[0] ### CHANGED

    # Retrieve all data based on message size
    while len(data) < msg_size:
        data += conn.recv(4096)

    frame_data = data[:msg_size]
    data = data[msg_size:]

    # Extract frame
    frame = pickle.loads(frame_data)

    # Display
    cv2.imshow('frame', frame)
    waitKey(1)
导入pickle
导入套接字
导入结构
进口cv2
主机=“”
端口=8089
s=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
打印('已创建套接字')
s、 绑定((主机、端口))
打印('套接字绑定完成')
s、 听(10)
打印('套接字正在侦听')
conn,addr=s.accept()
数据=b''####已更改
有效负载大小=结构calcsize(“L”)已更改
尽管如此:
#检索邮件大小
而len(数据)
我首先运行代码python server.py,然后运行app.py。当我点击url“/trial”时,我得到一个错误,因为cap.isOpened为false。我对如何进行感到困惑,我尝试了许多不同的方法。任何帮助都将不胜感激。
谢谢你。。我想知道您是否解决了此问题?我可能会面临类似的问题,因为我想从aws服务器流式传输我的本地网络摄像头。希望很快收到你的来信。谢谢!:)不是真的,我忙于糟糕的公司奴隶制办公室工作,不得不把这个爱好项目搁置一段时间好吧,我明白了。我们不是都爱说话吗。无论如何,谢谢!:)