Skip to main content
Archived

This project has been archived by its maintainers, and is no longer receiving any updates.

Media Server Client

A unified media streaming client library that supports both WebSocket and QUIC transport protocols.

Features

  • Stream H264-encoded video frames to media servers
  • Send audio frames alongside video
  • Choose between WebSocket and QUIC transport protocols
  • Simple, consistent API regardless of transport protocol
  • Python bindings for cross-platform compatibility
  • High-performance Rust implementation

Installation

From PyPI

pip install media-server-client

From Source

cd src/rust/modules/media-server-client
pip install maturin
maturin develop

Using the Build Script

The repository includes a build script that simplifies the build process:

# Build in development mode (default)
./build.sh

# Build in release mode
./build.sh --release

# Build and install locally
./build.sh --install

# Clean before building
./build.sh --clean

# Build in release mode, clean first, and install locally
./build.sh --release --clean --install

Usage

Python Example

from media_server_client import MediaStreamingClient

# Create a client with the desired transport (websocket or quic)
client = MediaStreamingClient(transport_type="websocket")  # or "quic"

# Connect to server
client.connect("localhost", 8080)

# Send video frames
with open("frame.h264", "rb") as f:
    frame_data = f.read()
    client.send_video_frame(
        frame_data,
        is_keyframe=True,
        width=1920,
        height=1080
    )

# Disconnect when done
client.disconnect()

See the examples/stream_example.py for a complete example that streams a video file to a media server.

Example Script

The repository includes an example script that demonstrates how to use the library to stream a video file:

# Using WebSocket transport (default)
python examples/stream_example.py --host localhost --port 8080

# Using QUIC transport
python examples/stream_example.py --host localhost --port 8080 --transport quic

# Custom video file
python examples/stream_example.py --video path/to/video.mp4

# Control streaming frame rate
python examples/stream_example.py --fps 30

Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

License

This project is licensed under the MIT License - see the LICENSE file for details.

Metadata

Release files for media-server-client-quic 0.1.12

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Built distributions (wheels)

Table of built distributions (wheels) for media-server-client-quic 0.1.12
File Actions
media_server_client_quic-0.1.12-cp312-cp312-manylinux_2_34_x86_64.whl CPython 3.12 CPython 3.12 Linux glibc 2.34+ x86-64 Details for media_server_client_quic-0.1.12-cp312-cp312-manylinux_2_34_x86_64.whl
media_server_client_quic-0.1.12-cp312-cp312-manylinux_2_34_aarch64.whl CPython 3.12 CPython 3.12 Linux glibc 2.34+ ARM64 Details for media_server_client_quic-0.1.12-cp312-cp312-manylinux_2_34_aarch64.whl
media_server_client_quic-0.1.12-cp311-cp311-manylinux_2_34_x86_64.whl CPython 3.11 CPython 3.11 Linux glibc 2.34+ x86-64 Details for media_server_client_quic-0.1.12-cp311-cp311-manylinux_2_34_x86_64.whl
media_server_client_quic-0.1.12-cp311-cp311-manylinux_2_34_aarch64.whl CPython 3.11 CPython 3.11 Linux glibc 2.34+ ARM64 Details for media_server_client_quic-0.1.12-cp311-cp311-manylinux_2_34_aarch64.whl

Total release size: 7.6 MB

Release files / media_server_client_quic-0.1.12-cp312-cp312-manylinux_2_34_x86_64.whl

Download URL media_server_client_quic-0.1.12-cp312-cp312-manylinux_2_34_x86_64.whl
Size 2.0 MB
Tags CPython 3.12 Linux glibc 2.34+ x86-64
SHA-256 checksum
How to use checksums
95f640a6fd2dafe5efdf8a103c3ce0e6851b685ba715673610467af0207ace42
BLAKE2b-256 checksum
How to use checksums
2e95fd0c1450254464f3457646bda81079210cd809b0c4f40babb5471cf2f006
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.8.3

Release files / media_server_client_quic-0.1.12-cp312-cp312-manylinux_2_34_aarch64.whl

Download URL media_server_client_quic-0.1.12-cp312-cp312-manylinux_2_34_aarch64.whl
Size 1.8 MB
Tags CPython 3.12 Linux glibc 2.34+ ARM64
SHA-256 checksum
How to use checksums
8cc2c6e3b4d8062a63975eaa9d49d753b919cfbeb6386863ffd0e54ea9104bcb
BLAKE2b-256 checksum
How to use checksums
7f1263ad161f74832db4d164f3086bcb5fe9968192248b8f00fd059f20c35b54
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.8.3

Release files / media_server_client_quic-0.1.12-cp311-cp311-manylinux_2_34_x86_64.whl

Download URL media_server_client_quic-0.1.12-cp311-cp311-manylinux_2_34_x86_64.whl
Size 2.0 MB
Tags CPython 3.11 Linux glibc 2.34+ x86-64
SHA-256 checksum
How to use checksums
53453a6cdf5b51772a7f0e191cd29f90116f87c750ec40f3cf95079097c49e0b
BLAKE2b-256 checksum
How to use checksums
1f685ebb77cbef8b6688b69fbbcd60dcb590f6c7d907b2542abc35d36905506f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.8.3

Release files / media_server_client_quic-0.1.12-cp311-cp311-manylinux_2_34_aarch64.whl

Download URL media_server_client_quic-0.1.12-cp311-cp311-manylinux_2_34_aarch64.whl
Size 1.8 MB
Tags CPython 3.11 Linux glibc 2.34+ ARM64
SHA-256 checksum
How to use checksums
05a05eaac2c42f2dc41f59a1f1f7f0ea12590c05abe97d9cb8c6e1e3986a84c8
BLAKE2b-256 checksum
How to use checksums
8919767295952434ebe6923db160bd13db7a63af4f3e8aedf075e17d0ffb2b62
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.8.3

Security for media-server-client-quic 0.1.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page