gumd, Grande Unified Multicast Daemon
Project description
"I've been googling for some time now, and still have yet to find a working example of Python multicast"
Behold gumd.
Grande Unicast M ulticast D aemon
Latest is v.0.0.17
- Install
python3 -mpip install gumd
Use gumd (Daemon) programmatically
>>>> from gumd import GumD
>>>> gumd =GumD('235.35.3.5:3535',ttl=1)
>>>> gumd.send_stream("/home/a/stuff")
stream uri: udp://@235.35.3.5:3535
>>>>
Use gumc (Client) programmatically
>>>> from gumc import GumC
>>>> gumc = GumC("udp://@235.35.3.5:3535")
>>>> data = gumc.read(8)
>>>> data
b'Helloooo'
Cli tools
- The cli tools gumd and gumc try to install to ~/.local/bin
- make sure ~/.local/bin is in your path I have this at the end my .bashrc
PLAN9=/home/a/plan9port export PLAN9
PATH=/home/a/.local/bin:$PLAN9:$PATH export PATH
if you dont get them installed, roll your own.
- gumd (Daemon)
#!/usr/bin/env python3
from gumd import cli
cli()
- gumc (Client)
#!/usr/bin/env python3
from gumc import cli
cli()
Install cli tools
install gumd /usr/local/bin # or ~/.local/bin
install gumc /usr/local/bin # or ~/.local/bin
Use gumd (Daemon) cli
-
Supported input mpegts URIs:
-
files
gumd -i /home/me/vid.ts -
http(s)
gumd -i https://futzu.com/xaa.ts -
udp
gumd -i udp://127.0.0.1:4000 -
multicast
gumd -i udp://@235.1.2.3:4567 -
reading from stdin
cat myvideo.ts | gumd
-
usage: gumd [-h] [-i INPUT] [-a ADDR] [-u] [-b BIND_ADDR] [-t TTL] [-v]
optional arguments:
-h, --help show this help message and exit
-i INPUT, --input INPUT
like "/home/a/vid.ts" or "udp://@235.35.3.5:3535" or "https://futzu.com/xaa.ts"
-a ADDR, --addr ADDR Destination Address:Port like "227.1.3.10:4310"
-u, --unicast Use Unicast instead of Multicast
-b BIND_ADDR, --bind_addr BIND_ADDR
Local IP and Port to bind to like "192.168.1.34:5555". Default is "0.0.0.0:1025"
-t TTL, --ttl TTL Multicast TTL 1 - 255
-v, --version Show version
start gumd (Daemon) cli
a@debian:~/gumd$ gumd -i /home/a/abc.py
stream uri: udp://@235.35.3.5:3535
a@debian:~/gumd$
use gumc (Client) cli
usage: gumc [-h] [-i INSTUFF] [-b BYTESIZE] [-v]
options:
-h, --help show this help message and exit
-i INSTUFF, --instuff INSTUFF
default is 'udp://@235.35.3.5:3535'
-b BYTESIZE, --bytesize BYTESIZE
Number of bytes to read. default is 1
-v, --version Show version
start gumc (Client) cli
a@debian:~/build/clean/gumd$ gumc -i udp://@235.35.3.5:3535 -b 1024
Test gumd and gumc together
- first terminal, start the client, gumc
a@debian:~/build/clean/gumd$ pypy3 gumc.py -b 5 -i udp://@235.35.3.5:3535
- second terminal,start the daemon, gumd__ and send a "hello"
a@debian:~/build/clean/gumd$ printf 'hello' | gumd -a 235.35.3.5:3535
stream uri: udp://@235.35.3.5:3535
play gumd (Daemon) stream with ffplay
ffplay udp://@235.35.3.5:3535
segment stream from gumd (Daemon) into hls with x9k3
pypy3 x9k3.py -i udp://@235.35.3.5:3535
read 13 bytes from a multicast stream with gumc (Client)
gumc -i udp://@235.35.3.5:3535 -b 13
read 10000 bytes from a multicast stream with gumc (Client)
gumc -i udp://@235.35.3.5:3535 -b 10000
Note: a multicast client works a little differently than most people expect.
You must specify a size to read or the client will never return.
.
Phase One: Expose the Pep Deep State
* [Phase One has begun](https://github.com/python/peps/compare/main...futzu:peps:main)Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file gumd-0.0.21.tar.gz.
File metadata
- Download URL: gumd-0.0.21.tar.gz
- Upload date:
- Size: 4.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.11.1
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f365faa712f88a28140a9454822f5630f47dd954f9e257b1521c62a9e9fe24a2
|
|
| MD5 |
a6d25928a73ee07378e14dd92ce4da23
|
|
| BLAKE2b-256 |
df1e81907f80da8c6463c02abae9f05394be9a7bbad269e15892740d2ed7026b
|
File details
Details for the file gumd-0.0.21-py3-none-any.whl.
File metadata
- Download URL: gumd-0.0.21-py3-none-any.whl
- Upload date:
- Size: 5.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.11.1
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a01db0a1fc3a2e1a2f6107ca47d5338fe1b0b406dadbc13d14fac6450239c88f
|
|
| MD5 |
19aa1e5f40dfb84266029fad30f119e7
|
|
| BLAKE2b-256 |
8399f8fd8ad59a49ef27aa25324f7f318309efe3a3f2784eb684aa3bd56b37a7
|