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 Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distributions

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

media_server_client_quic-0.1.12-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.12-cp312-cp312-manylinux_2_34_aarch64.whl (1.8 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.34+ ARM64

media_server_client_quic-0.1.12-cp311-cp311-manylinux_2_34_x86_64.whl (2.0 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.34+ x86-64

media_server_client_quic-0.1.12-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.12-cp312-cp312-manylinux_2_34_x86_64.whl.

File metadata

File hashes

Hashes for media_server_client_quic-0.1.12-cp312-cp312-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 95f640a6fd2dafe5efdf8a103c3ce0e6851b685ba715673610467af0207ace42
MD5 6d05a3ad3189a51d8903ef5a56f3f763
BLAKE2b-256 2e95fd0c1450254464f3457646bda81079210cd809b0c4f40babb5471cf2f006

See more details on using hashes here.

File details

Details for the file media_server_client_quic-0.1.12-cp312-cp312-manylinux_2_34_aarch64.whl.

File metadata

File hashes

Hashes for media_server_client_quic-0.1.12-cp312-cp312-manylinux_2_34_aarch64.whl
Algorithm Hash digest
SHA256 8cc2c6e3b4d8062a63975eaa9d49d753b919cfbeb6386863ffd0e54ea9104bcb
MD5 16d46b270c3ae97b6585826bb28db3c0
BLAKE2b-256 7f1263ad161f74832db4d164f3086bcb5fe9968192248b8f00fd059f20c35b54

See more details on using hashes here.

File details

Details for the file media_server_client_quic-0.1.12-cp311-cp311-manylinux_2_34_x86_64.whl.

File metadata

File hashes

Hashes for media_server_client_quic-0.1.12-cp311-cp311-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 53453a6cdf5b51772a7f0e191cd29f90116f87c750ec40f3cf95079097c49e0b
MD5 5c994a1bfa06364abc6ac04172028e91
BLAKE2b-256 1f685ebb77cbef8b6688b69fbbcd60dcb590f6c7d907b2542abc35d36905506f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for media_server_client_quic-0.1.12-cp311-cp311-manylinux_2_34_aarch64.whl
Algorithm Hash digest
SHA256 05a05eaac2c42f2dc41f59a1f1f7f0ea12590c05abe97d9cb8c6e1e3986a84c8
MD5 05031e29f0bd3a2daba00788f78a1764
BLAKE2b-256 8919767295952434ebe6923db160bd13db7a63af4f3e8aedf075e17d0ffb2b62

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