Makes using GStreamer in python easy!
Project description
gstreasy
A re-imagining of gstreamer-python.
Some of the new features:
- Auto setup/teardown of main loop thread
- Auto detect caps if in gst-launch command
- Auto detect and configure
appsink
andappsrc
if in command - Support for
appsink
andappsrc
in same pipeline - Support for multiple sinks in the same pipeline
- Faster
Gst.Sample
->np.ndarray
by caching caps
Example Usage
Install with: python -m pip install gstreasy
Also check out the user_code.py
script for an appsrc
example.
As I write more examples they will appear in the examples/
folder.
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, py3.10, and py3.11.flake8
andmypy
for lintingpdoc -d google src/gstreasy
for online docs
To help debugging, you can breakpoint inside functions that run on a separate thread, if you insert the following lines just before your breakpoint. Tested on PyCharm but should work with most IDEs. Please remove them before opening your pull request.
import pydevd
pydevd.settrace(suspend=False, trace_only_current_thread=True)
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
Built Distribution
File details
Details for the file gstreasy-0.3.1.tar.gz
.
File metadata
- Download URL: gstreasy-0.3.1.tar.gz
- Upload date:
- Size: 15.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.1 CPython/3.11.3
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 290185698730ee1f131f225cb6e1f719568e2467ee389d4d686842d7931e0970 |
|
MD5 | 4f38113b08103f491c7bf6861ac509ec |
|
BLAKE2b-256 | 9bfe322bc721cda5f1a5e0e0f94473b17dee13b9634b00e248d536c8400ecaf8 |
File details
Details for the file gstreasy-0.3.1-py3-none-any.whl
.
File metadata
- Download URL: gstreasy-0.3.1-py3-none-any.whl
- Upload date:
- Size: 14.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.1 CPython/3.11.3
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | ca7cc90938fe6e2c93085db06e36688026335568e22691b4b5b3c80b40819a33 |
|
MD5 | aea6be44c65cc6a3c7cbeab0df098e56 |
|
BLAKE2b-256 | d224fd3c4513f76b737e93f895736c930e7e69540be41a04c4d0f446112f14c3 |