A WSWebcam é uma biblioteca para facilitar streaming de dispostivos de video via rede utilizando o protocolo websocket.
Sua arquitetura é baseada no modelo cliente/servidor. Onde o Dispotivo serial é o servidor e qualquer cliente que conheca seu endereço e porta pode se comunicar com ele.
# python -m wswebcam -h
usage: __main__.py [-h] [-c] [-s] [-p PORT] [-a ADDRESS] [-d DEVICE] [-v] [-g]
wswebcam - Websocket to WebcamBridge
options:
-h, --help show this help message and exit
-c, --client Run as a client
-s, --server Run as a server
-p PORT, --port PORT Port to listen on
-a ADDRESS, --address ADDRESS
Address to connect to (default: localhost)
-d DEVICE, --device DEVICE
Serial device to connect to (default: 0)
-v, --verbose Enable verbose logging
-g, --gui Run GUI to view the frame
# Start a server at 8050 with command line
python -m wswebcam -s -p 8050
# Server as Instance
from wswebcam.server import Server
import asyncio
async def main():
await Server("0.0.0.0", 8050, 0).run()
asyncio.run(main())
# Server as context manager]
from wswebcam.server import Server
import asyncio
async def main():
async with Server("0.0.0.0", 8050, 0) as server:
await asyncio.sleep(10)
asyncio.run(main())
# Connect a client on server at 0.0.0.0:8050
python -m wswebcam -c -a 0.0.0.0 -p 8050
# Client as Instance
from wswebcam.client import Device as Client
from wswebcam.protocol import package
import asyncio
async def main():
await client = Client("ws://0.0.0.0:8050")
await client.connect()
await client.read()
await client.disconnect()
asyncio.run(main())
# Client as context manager
from wswebcam.client import Camera as Client
import asyncio
async def main():
async with Client("ws://0.0.0.0:8050") as client:
await client.read()