50 lines
1.8 KiB
Markdown
50 lines
1.8 KiB
Markdown
|
# GStreamer HTTP Live Streaming Examples
|
||
|
|
||
|
This repository contains some examples of usage of the GStreamer HLS plugin `hlssink3`.
|
||
|
|
||
|
## Available Examples
|
||
|
|
||
|
### Serving a video file to live HLS
|
||
|
|
||
|
The example `hlssink3_server.py` reads from a local file and generates a HLS manifest and segment files. The files are
|
||
|
updated in realtime for live streaming.
|
||
|
|
||
|
## Installation
|
||
|
|
||
|
Needs Python 3.9 (as of today 2021-10-10).
|
||
|
|
||
|
Make sure GStreamer is installed and available:
|
||
|
```
|
||
|
$ pkg-config --print-errors --exists gstreamer-1.0
|
||
|
```
|
||
|
|
||
|
If GStreamer dependency is not installed, please try the those
|
||
|
[installation steps](https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/blob/068b078edfa4f2f10e1824b41548c965b710626d/gstreamer/README.md#installation).
|
||
|
|
||
|
#### MacOS Specific
|
||
|
Make sure `pkg-config` version being used can find all libs installed using `brew`:
|
||
|
```
|
||
|
$ export PKG_CONFIG_PATH="/usr/local/lib/pkgconfig"
|
||
|
```
|
||
|
|
||
|
#### Building Python Bindings
|
||
|
In order to be able to use the GStreamer bindings in a virtualenv. We need to build from source.
|
||
|
Checkout the code from https://gitlab.freedesktop.org/gstreamer/gst-python/-/tree/master
|
||
|
```
|
||
|
$ meson builddir
|
||
|
$ cd builddir
|
||
|
$ ninja -v
|
||
|
$ ninja install -v
|
||
|
```
|
||
|
|
||
|
The `ninja install` will attempt to install, but we need to manually copy the overrides, if we want to use under a virtualenv.
|
||
|
```
|
||
|
$ cp gi/overrides/_gi_gst.cpython-39-darwin.so ~/.pyenv/versions/gstreamer/lib/python3.9/site-packages/gi/overrides
|
||
|
$ cp ~/development/opensource/gst-python/gi/overrides/GstPbutils.py ~/.pyenv/versions/gstreamer/lib/python3.9/site-packages/gi/overrides
|
||
|
$ cp ~/development/opensource/gst-python/gi/overrides/Gst.py ~/.pyenv/versions/gstreamer/lib/python3.9/site-packages/gi/overrides
|
||
|
```
|
||
|
|
||
|
### Additional Info
|
||
|
|
||
|
Example of sometimes pad: https://github.com/gkralik/python-gst-tutorial/blob/master/basic-tutorial-3.py
|