반응형
반응형

독서법

 

책을 먹어라

반응형

'생활의 발견 > 아침편지' 카테고리의 다른 글

감사 훈련  (0) 2023.10.24
흙이 있었소  (0) 2023.10.23
새벽은 아무에게나 오지 않는다  (0) 2023.10.20
아버지의 손, 아들의 영혼  (0) 2023.10.19
상처에 빠져 허우적거릴 때  (0) 2023.10.18
반응형

[텃밭] 2023-10-21, 야콘, 가지 수확

반응형
반응형

Create a Video Chat/Video Steaming App using Python

https://medium.com/geekculture/creating-video-chat-app-using-python-9da0a9c386ba

 

Create a Video Chat/Video Steaming App using Python

Due to the pandemic the only way to stay connected through the internet. But due to such a huge activity in Advertisement department, data…

medium.com

Server.py

from pyfiglet import Figlet
os.system("clear")
pyf = Figlet(font='puffy')
a = pyf.renderText("Video Chat App without Multi-Threading")
b = pyf.renderText("Server")
os.system("tput setaf 3")
print(a)
import socket, cv2, pickle,struct
# Socket Create
server_socket = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
host_name  = socket.gethostname()
host_ip = socket.gethostbyname(host_name)
print('HOST IP:',host_ip)
port = 9999
socket_address = (host_ip,port)
# Socket Bind
server_socket.bind(socket_address)
# Socket Listen
server_socket.listen(1)
print("Listening at:",socket_address)
# Socket Accept
while True:
 client_socket,addr = server_socket.accept()
 print('Connected to:',addr)
 if client_socket:
  vid = cv2.VideoCapture(0)
  
  while(vid.isOpened()):
   ret,image = vid.read()
   img_serialize = pickle.dumps(image)
   message = struct.pack("Q",len(img_serialize))+img_serialize
   client_socket.sendall(message)
   
   cv2.imshow('Video from Server',image)
   key = cv2.waitKey(10) 
   if key ==13:
    client_socket.close()

Client.py

from pyfiglet import Figlet
os.system("clear")
pyf = Figlet(font='puffy')
a = pyf.renderText("Video Chat App without Multi-Threading")
b = pyf.renderText("Client")
os.system("tput setaf 3")
print(a)
import socket,cv2, pickle,struct
# create socket
client_socket = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
#  server ip address here
host_ip = '<IP>' 
port = 9999
client_socket.connect((host_ip,port)) 
data = b""
metadata_size = struct.calcsize("Q")
while True:
 while len(data) < metadata_size:
  packet = client_socket.recv(4*1024) 
  if not packet: break
  data += packet
 packed_msg_size = data[:metadata_size]
 data = data[metadata_size:]
 msg_size = struct.unpack("Q",packed_msg_size)[0]
 
 while len(data) < msg_size:
  data += client_socket.recv(4*1024)
  frame_data = data[:msg_size]
  data  = data[msg_size:]
  frame = pickle.loads(frame_data)
  cv2.imshow("Receiving Video ",frame)
  key = cv2.waitKey(10) 
  if key  == 13:
   break
client_socket.close()
반응형

'프로그래밍 > Python' 카테고리의 다른 글

[python] Top 10 Python Libraries  (0) 2023.10.26
[python] Stack in Python  (0) 2023.10.24
[python] PyAudio  (0) 2023.10.20
[Python] savefig 0.0.4  (0) 2023.10.17
[python] pdf to png, 해상도 높게 저장하기  (0) 2023.10.04
반응형

PyAudio

https://pypi.org/project/PyAudio/

 

PyAudio

Cross-platform audio I/O with PortAudio

pypi.org

PyAudio는 크로스 플랫폼 오디오 I/O 라이브러리인 PortAudio v19에 대한 Python 바인딩을 제공합니다. PyAudio를 사용하면 Python을 사용하여 GNU/Linux, Microsoft Windows 및 Apple macOS와 같은 다양한 플랫폼에서 오디오를 쉽게 재생하고 녹음할 수 있습니다.

 

pip install PyAudio

반응형
반응형

늘 해오던 방식을 고수할 필요가 전혀 없다는 깨달음,
그것이 바로 창의력이다.
- 루돌프 플레쉬, 작가

짧지만 강한 여운을 남기는 멋진 글입니다.
창의력은 결코 멀리 있지 않습니다.
역발상, 뒤집어 생각해보기, 남과 다르게 하기,
기존 방식에 대한 의구심, 왜 그럴까에 대한 끝없는 집착,
다소 엉뚱한 질문들, 존재 가치 탐구,
사소한 것에 대한 호기심 등에서 남다른 창조성이 길러집니다.

반응형
반응형

에너지,
기(氣)는 흘러야 한다. 스트레스가
해소되지 않은 상태는 이 흐름이 원활하지
않다는 것일지 모른다. 혁명은 영어로
'레볼루션(revolution)'인데, 시곗바늘이
한 바퀴 원을 도는 것 또한 레볼루션이라고 한다.
새벽은 우리 몸과 마음이 한 바퀴 도는
시작점이다. 즉, 혁명의 시간이다.

- 신영길의《기억의 숲을 거닐다》중에서 -


* 새벽.
매일 어김없이 다가옵니다.
그러나 누구에게나 오는 것은 아닙니다.
잠에서 깨어난 사람, 지난밤을 잘 넘기고
다시 생명을 얻은 사람에게만 다가옵니다.
이때 몸과 마음에 어떤 기운이 흐르느냐에 따라
하루가 달라집니다. 긍정의 기운이냐, 부정의
기운이냐. 새벽은 아무에게나
오지 않습니다.

반응형

'생활의 발견 > 아침편지' 카테고리의 다른 글

흙이 있었소  (0) 2023.10.23
독서법  (0) 2023.10.23
아버지의 손, 아들의 영혼  (0) 2023.10.19
상처에 빠져 허우적거릴 때  (0) 2023.10.18
'건강한 피로'  (0) 2023.10.17

+ Recent posts