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
andappsrc
if in command - Support for
appsink
andappsrc
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 depstox
to run tests for py3.7 and py3.10.flake8
andmypy
for lintingpdoc -d google src/gstreasy
for online docs
Project details
Release history Release notifications | RSS feed
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)
Built Distribution
gstreasy-0.1.0-py3-none-any.whl
(13.7 kB
view hashes)