A TCP multi-broadcast media streaming server/client
Go to file
2021-12-16 08:39:02 +01:00
.gitignore Add .gitignore 2021-04-20 16:34:31 +02:00
client-threaded.py Add threaded client 2021-12-16 08:37:44 +01:00
client.py Make stdout unbuffered 2021-12-16 08:39:02 +01:00
fstream-util-pipe_to_tcp.py Add bufferSize option to translation tools 2021-04-24 06:59:39 +02:00
fstream-util-tcp_to_pipe.py Add bufferSize option to translation tools 2021-04-24 06:59:39 +02:00
README.md Update documentation 2021-12-15 21:40:10 +01:00
server.py Remove leftover configuration 2021-12-15 21:38:21 +01:00

fstream

A TCP multi-broadcast media streaming server/client. Check out the past source, for simpler implementation.

Client

  • client.py 127.0.0.1:61920 watch fier exampleChannel 123 | ffplay -i - -fflags nobuffer -flags low_delay -infbuf -fast -framedrop - Watch fier's exampleChannel channel at 127.0.0.1:61920, supplying 123 as a password, and pipe it into ffplay for playback.
  • ffmpeg -f dshow -audio_buffer_size 10 -i audio=virtual-audio-capturer -f gdigrab -framerate 30 -i desktop -vf scale=-1:480 -c:v libx264 -pix_fmt yuv420p -preset fast -tune zerolatency -c:a aac -bufsize 2M -maxrate 1M -f mpegts - | client.py 127.0.0.1:61920 broadcast 8092 fier 123 exampleChannel 456 - Broadcast Windows desktop as fier to 127.0.0.1:61920, supplying 123 as the user password. 8092 is the buffer size (in bytes), exampleChannel is the channel, 456 is the password. Pipe the output from ffmpeg.

Server Protocol

The protocol is currently in an early stage, and is bound to change.
.

Establishing a connection

Establish a TCP connection with the server, and send the payload. If the server likes your payload, it will stream data to you, or accept more of your data.

The payload

Send a UTF-8 string identifying the client's intentions. Fill the request with trailing spaces until the request is 1024 bytes.

  • watch,fier,exampleChannel,123 - Watch fier's exampleChannel channel, supplying 123 as the channel's password. It will blast you with the media data.
  • broadcast,4096,fier,123 - Broadcast as fier into the exampleChannel channel, supplying 123 as the broadcast password and 456 as the channel password. 4096 is the buffer size. Just blast the data to the server after this, with the appropriate buffer size.