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.
G
rande U
nicast 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
gumd-0.0.21.tar.gz
(4.9 kB
view details)
Built Distribution
gumd-0.0.21-py3-none-any.whl
(5.9 kB
view details)
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 |