send.py 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. import time
  2. import platform
  3. import threading
  4. from aiortc.contrib.media import MediaPlayer, MediaRelay
  5. class SENDSERVER(threading.Thread):
  6. def __init__(self, sock, config):
  7. threading.Thread.__init__(self)
  8. self.setDaemon(True)
  9. self.sock = sock
  10. self.relay = None
  11. self.webcam = None
  12. def __del__(self):
  13. self.sock.close()
  14. pass
  15. # 获取本地视频流
  16. def create_local_tracks(self):
  17. options = {"framerate": "30", "video_size": "640x480"}
  18. print(options)
  19. if self.relay is None:
  20. if platform.system() == "Darwin":
  21. self.webcam = MediaPlayer(
  22. "default:none", format="avfoundation", options=options)
  23. elif platform.system() == "Windows":
  24. self.webcam = MediaPlayer(
  25. "video=Integrated Camera", format="dshow", options=options)
  26. else:
  27. print('get video source')
  28. self.webcam = MediaPlayer(
  29. "/dev/video0", format="v4l2", options=options)
  30. print(self.webcam)
  31. self.relay = MediaRelay()
  32. return None, self.relay.subscribe(self.webcam.video)
  33. def run(self):
  34. data = str.encode('test111')
  35. audio, video = self.create_local_tracks()
  36. while True:
  37. self.sock.sendall(video)
  38. print('发送', data)
  39. time.sleep(1)