| 1234567891011121314151617181920212223242526272829303132333435363738394041424344 |
- import time
- import platform
- import threading
- from aiortc.contrib.media import MediaPlayer, MediaRelay
- class SENDSERVER(threading.Thread):
- def __init__(self, sock, config):
- threading.Thread.__init__(self)
- self.setDaemon(True)
- self.sock = sock
- self.relay = None
- self.webcam = None
- def __del__(self):
- self.sock.close()
- pass
- # 获取本地视频流
- def create_local_tracks(self):
- options = {"framerate": "30", "video_size": "640x480"}
- print(options)
- if self.relay is None:
- if platform.system() == "Darwin":
- self.webcam = MediaPlayer(
- "default:none", format="avfoundation", options=options)
- elif platform.system() == "Windows":
- self.webcam = MediaPlayer(
- "video=Integrated Camera", format="dshow", options=options)
- else:
- print('get video source')
- self.webcam = MediaPlayer(
- "/dev/video0", format="v4l2", options=options)
- print(self.webcam)
- self.relay = MediaRelay()
- return None, self.relay.subscribe(self.webcam.video)
- def run(self):
- data = str.encode('test111')
- audio, video = self.create_local_tracks()
- while True:
- self.sock.sendall(video)
- print('发送', data)
- time.sleep(1)
|