Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/fuse-modules/fuse-gstreamer
GStreamer package for Uno and Fuse apps
https://github.com/fuse-modules/fuse-gstreamer
app desktop fuse gstreamer mobile uno
Last synced: about 1 month ago
JSON representation
GStreamer package for Uno and Fuse apps
- Host: GitHub
- URL: https://github.com/fuse-modules/fuse-gstreamer
- Owner: fuse-modules
- License: mit
- Created: 2019-09-24T04:53:15.000Z (over 5 years ago)
- Default Branch: master
- Last Pushed: 2022-04-19T18:29:51.000Z (almost 3 years ago)
- Last Synced: 2024-11-08T18:06:47.283Z (3 months ago)
- Topics: app, desktop, fuse, gstreamer, mobile, uno
- Language: Uno
- Homepage: https://gstreamer.freedesktop.org/
- Size: 86.9 MB
- Stars: 7
- Watchers: 4
- Forks: 1
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# fuse-gstreamer
[![AppVeyor build status](https://img.shields.io/appveyor/ci/mortend/fuse-gstreamer/master.svg?logo=appveyor&logoColor=silver&style=flat-square)](https://ci.appveyor.com/project/mortend/fuse-gstreamer/branch/master)
[![NPM package](https://img.shields.io/npm/v/fuse-gstreamer.svg?style=flat-square)](https://www.npmjs.com/package/fuse-gstreamer)
[![Slack](https://img.shields.io/badge/chat-on%20slack-blue.svg?style=flat-square)](https://slackcommunity.fusetools.com/)
[![License: MIT](https://img.shields.io/github/license/mortend/fuse-gstreamer.svg?style=flat-square)](LICENSE)
![Target platforms](https://img.shields.io/badge/os-Android%20%7C%20iOS%20%7C%20Linux%20%7C%20macOS%20%7C%20Windows-7F5AB6?style=flat-square)[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.
[GStreamer]: https://gstreamer.freedesktop.org/
[Fuse Open]: https://fuseopen.com/## Install
```shell
$ npm install fuse-gstreamer
```This will install the `GStreamer` library for [Fuse SDK](https://www.npmjs.com/package/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](https://gstreamer.freedesktop.org/download/).
> On Android, dependencies are downloaded automatically when building. 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 example `C:\gstreamer\1.0\x86_64\`).
> Tested using GStreamer **v1.16.0** (although any recent version should work fine).
## Usage
```xml
```
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
![Screenshot](example.png)
> You can play around with the included [example app](https://github.com/mortend/fuse-gstreamer/tree/master/example).
First, make sure dependencies are installed and our library is built.
```shell
npm install
npm run build
```Then, issue one of the following commands to run the app on your desired platform.
```shell
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... ;-)
```uno
GStreamer.Init();
```> Check out the files under [`GStreamer/`](GStreamer/) to see how GStreamer is used from Uno, most notably [`UriPipeline.uno`](GStreamer/UriPipeline.uno).
> Check out [`Player.uno`](GStreamer.Controls/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](https://github.com/mortend/fuse-gstreamer/issues) if you encounter a problem, or [open a pull request](https://github.com/mortend/fuse-gstreamer/pulls) 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.