fuse-gstreamer
v1.0.0
Published
GStreamer package for Fuse Open.
Downloads
3
Maintainers
Readme
fuse-gstreamer
GStreamer package for Fuse Open.
GStreamer supports a wide variety of media-handling components, including simple audio playback, audio and video playback, recording, streaming and editing. The pipeline design serves as a base to create many types of multimedia applications such as video editors, transcoders, streaming media broadcasters and media players.
Install
npm install fuse-gstreamer
This will install the GStreamer
library for Fuse SDK.
Requirements
GStreamer development and runtime files for desired platforms must be installed on your system to use this package. More information can be found on this page.
On Android, dependencies are downloaded automatically when building, so you don't need to install anything manually.
On Windows, make sure to install the MinGW 64-bit edition, and verify that
GSTREAMER_1_0_ROOT_X86_64
is set in your environment (to for exampleC:\gstreamer\1.0\x86_64\
).Tested using GStreamer v1.16.0 (although any recent version should work fine).
Usage
<App xmlns:gst="GStreamer.Controls">
<gst:Player Uri="rtsp://b1.dnsdojo.com:1935/live/sys3.stream" />
</App>
This instantiates a GStreamer control playing a live video stream over RTSP. Many common transport protocols, container formats and media codecs are supported out-of-the-box. If you want to play local files, provide a file:///
URI instead.
To use this control in your project, you must add "GStreamer"
to "Packages"
in your .unoproj
file.
Example app
You can play around with the included example app.
First, make sure dependencies are installed and our library is built.
npm install
npm run build
Then, issue one of the following commands to run the app on your desired platform.
npm run android
npm run ios
npm run native
Custom pipelines
Essentially, make sure to initialize GStreamer in Uno, then write GStreamer code to do what you want...
GStreamer.Init();
Check out the files under GStreamer/
to see how GStreamer is used from Uno, most notably UriPipeline.uno
.
Check out Player.uno
to see how this stuff is wrapped up into the UX control we're using in our example app.
If you add some cool functionality, remember that pull requests are very welcome. :-)
Contributing
Please report an issue if you encounter a problem, or open a pull request if you make a patch.
License
MIT for code in this repository, but note that GStreamer is LGPL and that some plugins may require additional licenses.