2017-04-08 27 views
0

クライアントからサーバーにビデオを送信し、サーバー側でビデオを表示しようとしています。問題は、コードを実行すると空の応答しないウィンドウが表示されることです。 // WWW:ここライブビデオをPythonでネットワーク経由で送信する方法

は、私がここに発見したhttps://stackoverflow.com/a/30988516/4663461

client.py

import cv2 
import numpy as np 
import socket 
import sys 
import pickle 
import struct 

cap=cv2.VideoCapture(path_to_video) 
clientsocket=socket.socket(socket.AF_INET,socket.SOCK_STREAM) 
clientsocket.connect(('localhost',8089)) 

while True: 
    ret,frame=cap.read() 
    data = pickle.dumps(frame) 
    clientsocket.sendall(struct.pack("L", len(data))+data) 

server.py

import socket 
import sys 
import cv2 
import pickle 
import numpy as np 
import struct 

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'' 
payload_size = struct.calcsize("L") 
while True: 
    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] 
    while len(data) < msg_size: 
     data += conn.recv(4096) 
    frame_data = data[:msg_size] 
    data = data[msg_size:] 
    ### 

    frame=pickle.loads(frame_data) 
    print frame 
    cv2.imshow('frame',frame) 
+0

HTTPを使用してコードi'amです。 chioka.in/python-live-video-streaming-example/ –

答えて

0
frame=pickle.loads(frame_data) 
print frame 
cv2.imshow('frame',frame) 
# add this 
if cv2.waitKey(1) & 0xFF == ord('q'): 
    break 
+2

さらに詳しい情報を入力してください! – Gammer

関連する問題