소켓을 통해 웹캠 피드 보내기

Mirco

이 질문이 이미 몇 번 나온 것을 알고 있으며 모두 읽었습니다 (희망합니다 ...)하지만 내 프로그램에서 내가 무엇을 시도해도 소켓을 통해 이미지를 보낸 후에는 이미지를 표시 할 수 없습니다.

클라이언트 측에서 Python 2.7을 사용하고 서버 측에서 Python 3.4를 사용하고 있습니다.

다음은 코드입니다.

섬기는 사람:

pygame.init()
pygame.camera.init()
cam = pygame.camera.Camera("/dev/video0",(640,480),'RGB')
cam.start()

host='192.168.0.11'
port=8080

s = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
s.connect((host,port))

image = cam.get_raw()
data_64 = base64.b64encode(image)
data_utf = data_64.decode('utf-8')

print (data_utf)
print (len(data_utf))

s.sendall(data_utf)
s.close

고객:

host='192.168.0.11'
port=8080

s=socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.bind((host,port))
s.listen(1)
conn, addr = s.accept()

string = ''

while True:
    d = conn.recv(640*480)

    if not d:
        break

    else:
        d = d.decode('UTF-8')
        string += d

print (string)
print (len(string))

fh = open("imageToSave.jpeg", "wb")
fh.write(string)
fh.close()

결국 나는 다른 형식 (.png, .gif 등)을 시도했지만 어떤 것도 나에게 단정 한 그림을 보여주지 않을 것입니다. 프로그램은 데이터가 포함 된 이미지 파일을 생성하지만 파일을 열거 나 사진을 볼 수 없습니다.

두 문자열은 인쇄물과 len ()에 따라 동일합니다. 길이는 819200입니다. 따라서 동일한 문자열이기 때문에 전송이 올바른 것 같습니다. 문제는 어떻게 문자열에서 그림을 가져 오는가입니다.

내 계획은 웹캠 스트림을 Tkinter GUI로 공급하는 것입니다.

나는 또한 서버 측에서 pygame.image.tostring (image, "RGB") 및 pygame.image.fromstring (string, (640,480), "RGB")와 같은 것을 시도했지만 여기서는 항상 "ValueError : String length does not 동일한 형식 및 해상도 크기 "를 사용합니다.

저는 파이썬을 처음 접했기 때문에 약간 복잡한 일을했을 수도 있습니다. 누군가 나를 올바른 방향으로 가리킬 수 있습니까? 며칠 동안 나는 여기에 갇혀 있습니다.

Mirco

좋아, 내가 알아 냈어. 아래 코드로 작동합니다. Apperantly 나는 올바른 방식으로 문자열을 포맷하는 데 몇 가지 문제가있었습니다.

고객:

pygame.init()
pygame.camera.init()
cam = pygame.camera.Camera("/dev/video0",(300,300),'RGB')
cam.start()

image = cam.get_image()
print = cam.get_size()
img_str = pygame.image.tostring(img,"RGB")

host='192.168.0.11'
port=8080

s = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
s.connect((host,port))




s.sendall(img_str)
s.close

주최자:

host='192.168.0.11'
port=8080


s=socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.bind((host,port))
s.listen(1)
conn, addr = s.accept()

string = bytes('','UTF-8')


while True: 

    d = conn.recv(640*480)

    if not d:
        print ("break")
        break

    else:

        string += d

    pil_image = Image.fromstring("RGB",(352,288),string)
    #(352,288) is the return of cam.get_size()

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

JavaScript - 웹 소켓을 통해 백엔드에 ArrayBuffer 데이터 보내기 [guacamole]

웹 소켓을 통해 popen 출력 보내기

TCP / IP 소켓 (웹 서버)을 통해 파일 보내기

웹 소켓을 통해 RabbitMQ 메시지 보내기

웹 소켓을 통해 STOMP 프레임 보내기

java : 소켓을 통해 메소드 보내기

파이썬의 원시 소켓을 통해 스 캐피 패킷 보내기

웹 소켓을 통해 Blob으로 추가 데이터 보내기

Beast 웹 소켓을 통해 바이너리 데이터 보내기 (C ++)

소켓을 통해 개체 보내기

소켓을 통해 개체 보내기

Socket.io 웹 소켓을 통해 내 앱에서 json 및 오디오 파일을 특정 socketId로 보내기

소켓 파이썬, 스레드를 통해 보내기

주기적으로 봄 웹 소켓을 통해 클라이언트에 메시지를 보내기

Java의 웹 소켓을 통해 XML 문서 및 JSON을 바이트로 보내기

노드로 웹 소켓을 통해 비디오 스트리밍

aiohttp 요청 처리기에서 클라이언트 웹 소켓을 통해 데이터를 보내는 방법

phoenix 채널을 통해 웹 소켓을 통해 파일을 보내는 방법이 있습니까?

안드로이드의 소켓을 통해 자바 서버로 더미 데이터 보내기

소켓을 통해 파일 보내기-버퍼 크기

ObjectInputStream을 사용하여 소켓을 통해 배열 보내기

소켓을 통해 데몬의 출력을 다시 보내기

소켓 안드로이드를 통해 대용량 파일 보내기

자바의 소켓을 통해 스크린 샷 (bufferedImage) 보내기

소켓 연결을 통해 GUI / TUI 보내기

udp 소켓을 통해 float32 값 보내기

소켓을 통해 수동으로 HTTP 요청 보내기

파이썬 3에서 소켓을 통해 파일 보내기

UDP 소켓을 통해 데이터 보내기

TOP 리스트

  1. 1

    ImageJ-히스토그램 빈을 변경할 때 최대, 최소 값이 변경되는 이유는 무엇입니까?

  2. 2

    Excel : 합계가 N보다 크거나 같은 상위 값 찾기

  3. 3

    원-사각형 충돌의 충돌 측면을 찾는 문제

  4. 4

    상황에 맞는 메뉴 색상

  5. 5

    Matlab의 반복 Sortino 비율

  6. 6

    Oracle VirtualBox-설치를 위해 게스트를 부팅 할 때 호스트 시스템이 충돌 함

  7. 7

    openCV python을 사용하여 텍스트 문서에서 워터 마크를 제거하는 방법은 무엇입니까?

  8. 8

    Python 사전을 사용하는 동안 "ValueError : could not convert string to float :"발생

  9. 9

    JavaFX : TilePane을 중앙에 배치하고 TilePane 자식을 왼쪽에서 오른쪽으로 배치하는 방법은 무엇입니까?

  10. 10

    regedit에서 방금 내 보낸 Windows 레지스트리 가져 오기 문제

  11. 11

    Cassandra에서 버전이 지정된 계층의 효율적인 모델링

  12. 12

    C ++ VSCode에서 같은 줄에 중괄호 서식 지정

  13. 13

    JQuery datepicker 기능이 인식되지 않거나 새 프로젝트에서 작동하지 않음

  14. 14

    Android에서 Drawable을 int로 또는 그 반대로 변환하는 방법

  15. 15

    방향 변경시 $ (window) .resize ()가 발생합니까?

  16. 16

    매개 변수에서 쿼리 객체를 선언하는 방법은 무엇입니까?

  17. 17

    System.Data.SqlClient.SqlException : 'SSPI 컨텍스트를 생성하지 못했습니다.'

  18. 18

    전자 브라우저를 전체 화면 크기로 만드는 방법은 무엇입니까?

  19. 19

    jfreecharts에서 x 및 y 축 선을 조정하는 방법

  20. 20

    Ubuntu는 GUI에서 암호로 사용자를 만듭니다.

  21. 21

    문자열 따옴표, 길이 총 개수 및 arrayname [int]는 어떻게 작동합니까?

뜨겁다태그

보관