avbroadcast
republishes media streams for mass consumption.
It is a wrapper around the fine ffmpeg and packager programs,
so it is standing on the shoulders of giants.
Attention!
Please note some of its functionality is based on the new HTTP upload feature of Shaka Packager which is a work in progress. It is currently living in the http-upload branch and is being tracked at issue #149.
Please use the beta-build packager-linux for your own experiments, which is also available through the corresponding Docker baseline image.
If you know your way around Python, installing this software is really easy:
pip install avbroadcast
Please refer to the virtualenv page about further guidelines how to install and use this software.
Ingest media stream:
avbroadcast ingest \ --stream="rtmp://184.72.239.149/vod/mp4:bigbuckbunny_450.mp4?reuse=1" \ --base-port=50000 \ --verbose
Package using HLS and publish to HTTP server:
avbroadcast publish \ --name="bigbuckbunny" \ --base-port=50000 \ --target="http://localhost:6767/hls-live" \ --verbose
Altogether now:
avbroadcast io \ --name="bigbuckbunny" \ --stream="rtmp://184.72.239.149/vod/mp4:bigbuckbunny_450.mp4?reuse=1" \ --target="http://localhost:6767/hls-live" \ --verbose
Watch output directory:
avbroadcast watch --path=/var/spool/hls-local
Build Docker image "mediatoolbox/avbroadcast:analyzer"
:
make build-docker-image
You might want to skip this step as Docker images are already available at https://hub.docker.com/r/mediatoolbox/avbroadcast
Make alias for easy access:
# Use avbroadcast shipped with Docker image. alias avbroadcast='docker run --name avb --interactive --tty --rm mediatoolbox/avbroadcast:analyzer avbroadcast' # Alternatively, use avbroadcast from working tree. alias avbroadcast='docker run --name avb --volume `pwd`:/avbroadcast --interactive --tty --rm mediatoolbox/avbroadcast:analyzer avbroadcast'
Pre-flight check:
avbroadcast --version
Attach to running transcoder:
docker exec --interactive --tty avb /bin/bash
avbroadcast ... --tmux --analyze
Attach to Docker container and tmux manager at once:
docker exec --interactive --tty avb tmux attach -t avb
Quit pipeline either by detaching from tmux
:
CTRL+B, D
or exit each program individually by typing:
4x CTRL+C
In both cases, the Docker container will stop - and also self-destroy when running with --rm
.
avbroadcast
is released under the terms of the GNU AGPL 3.0 license.
The code and documentation live on GitHub,
the Python package is published to PyPI.
The software has been tested on Python 3.5 and Python 3.7.
If you'd like to contribute you're most welcome! Spend some time taking a look around, locate a bug, design issue or spelling mistake and then send us a pull request or create an issue.
Thanks in advance for your efforts, we really appreciate any help or feedback.
This software is copyright (c) 2018-2019 The avbroadcast authors. All rights reserved.
It is and will always be free and open source software.
Use of the source code included here is governed by the GNU Affero General Public License and the European Union Public License.
Have fun!