Security News
Fluent Assertions Faces Backlash After Abandoning Open Source Licensing
Fluent Assertions is facing backlash after dropping the Apache license for a commercial model, leaving users blindsided and questioning contributor rights.
actfw's components using GStreamer for implementation. actfw is a framework for Actcast Application written in Python.
sudo apt-get update
sudo apt-get install -y python3-pip python3-pil
sudo apt-get install libgstreamer1.0-dev libgirepository1.0-dev ibgstreamer-plugins-base1.0-dev libglib2.0-dev
pip3 install actfw-gstreamer
See actfw-core for basic usage of actfw
framework.
An application using actfw-gstreamer
have to initialize GStreamer library before using actfw-gstreamer
's components.
if __name__ == '__main__':
import gi
gi.require_version('Gst', '1.0')
from gi.repository import Gst
Gst.init(None)
main()
videotestsrc
You can learn basic usage of actfw-gstreamer
by using videotestsrc
.
from actfw_gstreamer.capture import GstreamerCapture
from actfw_gstreamer.gstreamer.converter import ConverterPIL
from actfw_gstreamer.gstreamer.stream import GstStreamBuilder
from actfw_gstreamer.restart_handler import SimpleRestartHandler
def videotestsrc_capture() -> GstreamerCapture:
pipeline_generator = preconfigured_pipeline.videotestsrc()
builder = GstStreamBuilder(pipeline_generator, ConverterPIL())
restart_handler = SimpleRestartHandler(10, 5)
return GstreamerCapture(builder, restart_handler)
def main():
app = actfw_core.Application()
capture = videotestsrc_capture()
app.register_task(capture)
consumer = YourConsumer()
app.register_task(consumer)
capture.connect(consumer)
app.run()
This generates Frame
s using videotestsrc.
GstreamerCapture
is a Producer
.
Frame
s consists of an output of ConverterBase
. In this case, converter class is ConverterPIL
and output is PIL.Image.Image
.GstStreamBuilder
and PipelineGenerator
determines how to build gstreamer pipelines.preconfigured_pipeline
provides preconfigured PipelineGenerator
s.SimpleRestartHandler
is a simple implementation of RestartHandlerBase
, which determines "restart strategy".For more details, see tests.
rtspsrc
You can use rtspsrc using preconfigured_pipeline.rtsp_h264()
.
Note that, as of now (2021-04), Actcast application cannot use multicast UDP with dynamic address and unicast UDP.
(RTSP client communicates with RTSP server in RTP and determines adderss of mulitcast UDP.)
Therefore, you can use only the option protocols = "tcp"
.
See also https://gstreamer.freedesktop.org/documentation/rtsp/rtspsrc.html#rtspsrc:protocols .
You should also pay attention to decoders. Available decoders are below:
decoder (package) \ device | Raspberry Pi 3 | Raspberry Pi 4 | Jetson Nano |
---|---|---|---|
omxh264 (from gstreamer1.0-omx and gstreamer1.0-omx-rpi ) | o | x | ? |
v4l2h264dec (from gstreamer1.0-plugins-good ) | very slow | o | ? |
If your application supports various devices, you should branch by hardware types and select appropriate decoder_type
.
For example, it is recommended to use decoder_type
omx
for Raspberry Pi 3 and v4l2
for Raspberry Pi 4.
Currently, this library does not provide auto determination.
pip3 install poetry
poetry install
poetry run pytest -v
CI will automatically do. Follow the following branch/tag rules.
master
branch (via pull-requests).pyproject.toml
and merge it to master
branch.master
branch's HEAD.
release-<New version>
(e.g. release-1.4.0
) from Choose a tag
pull down menu.FAQs
actfw's additional components using GStreamer
We found that actfw-gstreamer demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 5 open source maintainers collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
Fluent Assertions is facing backlash after dropping the Apache license for a commercial model, leaving users blindsided and questioning contributor rights.
Research
Security News
Socket researchers uncover the risks of a malicious Python package targeting Discord developers.
Security News
The UK is proposing a bold ban on ransomware payments by public entities to disrupt cybercrime, protect critical services, and lead global cybersecurity efforts.