Skip to main content

No project description provided

This project has been archived.

The maintainers of this project have marked this project as archived. No new releases are expected.

Project description

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.

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

media_server_client_quic-0.1.5.tar.gz (107.0 kB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

media_server_client_quic-0.1.5-cp312-cp312-manylinux_2_34_x86_64.whl (2.0 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.34+ x86-64

media_server_client_quic-0.1.5-cp311-cp311-manylinux_2_34_aarch64.whl (1.8 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.34+ ARM64

File details

Details for the file media_server_client_quic-0.1.5.tar.gz.

File metadata

File hashes

Hashes for media_server_client_quic-0.1.5.tar.gz
Algorithm Hash digest
SHA256 b016b533868c3708273863ccd1df698f293e58c068128b2f1a7def280ee86a5e
MD5 08f455b83fd3b11731b51d5ed710bde8
BLAKE2b-256 0445f2dc52d3548c5c8bc4991b9a8a00c783c40f27675f3c98516d9150cd4bc1

See more details on using hashes here.

File details

Details for the file media_server_client_quic-0.1.5-cp312-cp312-manylinux_2_34_x86_64.whl.

File metadata

File hashes

Hashes for media_server_client_quic-0.1.5-cp312-cp312-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 1751a8c1346f476468f3b32f7b0f1a0662917457fb48044059cd3ff29c5be02d
MD5 316ec3c5ad519ac305c28f07ab4cd91d
BLAKE2b-256 fbfb1741fcf333b1b6e468821e03d52c1cd2ba215ef8a011bbe0fd258735eb58

See more details on using hashes here.

File details

Details for the file media_server_client_quic-0.1.5-cp311-cp311-manylinux_2_34_aarch64.whl.

File metadata

File hashes

Hashes for media_server_client_quic-0.1.5-cp311-cp311-manylinux_2_34_aarch64.whl
Algorithm Hash digest
SHA256 6d294402bbe3b0a211633ce4b375e8393feb660bf2b1eff3d30d0f00c681892b
MD5 af496154edabc7dbbb50a36698624ecb
BLAKE2b-256 ad1997d1c219f57db62bcc4a953c25036f3dbfdea5dc649d852f02c94700d557

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page