Skip to main content

Makes using GStreamer in python easy!

Project description

A re-imagining of gstreamer-python. I was going to just work on a fork of that repo but there was so much I thought should be changed. Some of the new features:

  • Auto detect caps if in gst-launch command
  • Auto detect and configure appsink and appsrc if in command
  • Support for appsink and appsrc in same pipeline
  • Faster Gst.Sample -> ndarray

Example Usage

Also check out the user_code.py script for an appsrc example.

Simple pipeline without an appsink element:
simple_cmd = "videotestsrc num-buffers=60 ! autovideosink"
with GstPipeline(simple_cmd) as pipeline:
    print("Running simple pipeline")
Pipeline with an appsink element:
appsink_cmd = "videotestsrc num-buffers=60 ! appsink emit-signals=true sync=false"
with GstPipeline(appsink_cmd) as pipeline:
    while pipeline:
        buffer = pipeline.pop()
        if buffer:
            type(buffer.data)  # np.ndarray
Pipeline using tee element and multiple sinks:
tee_cmd = '''
    videotestsrc num-buffers=60 ! tee name=t
    t. ! queue ! video/x-raw,format=RGB,framerate=60/1
       ! appsink emit-signals=true sync=false
    t. ! queue ! video/x-raw,format=RGB,framerate=60/1
       ! jpegenc ! avimux
       ! filesink location=recording.mp4
'''
with GstPipeline(tee_cmd) as pipeline:
    while pipeline:
        buffer = pipeline.pop()
        # do whatever you want with the buffer's ndarray
    # Meanwhile recording.mp4 is being written

Develop

All dev tasks can be handled with the run.sh script but it just wraps standard tools if you can't/don't want use it.

  • python -m pip install -e .[dev,doc] to install deps
  • tox to run tests for py3.7 and py3.10.
  • flake8 and mypy for linting
  • pdoc -d google src/gstreasy for online docs

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

gstreasy-0.1.0.tar.gz (14.0 kB view hashes)

Uploaded Source

Built Distribution

gstreasy-0.1.0-py3-none-any.whl (13.7 kB view hashes)

Uploaded Python 3

Supported by

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