1
0
Fork 0
Go to file
Moritz Grimm 47757b6944 Stream logging improvements 2023-02-19 12:36:12 +01:00
.circleci Revert previous and try a 20.04 docker image instead. 2021-02-09 23:23:12 +01:00
build-aux Untangle compatibility code 2015-02-27 22:42:51 +01:00
compat Add script to generate coverage reports using lcov. 2015-05-12 12:06:49 +02:00
doc Make relative path lookups configurable 2022-10-09 02:13:52 +02:00
examples Merge branch 'develop' into feature/gl2283-playlist-location 2023-01-19 23:45:06 +01:00
m4 Depend on TagLib unconditionally 2016-04-22 15:56:30 +02:00
src Stream logging improvements 2023-02-19 12:36:12 +01:00
tests Make relative path lookups configurable 2022-10-09 02:13:52 +02:00
.gitignore Add check unit testing framework w/ 2 dummy tests 2015-05-06 23:45:52 +02:00
.travis.yml Switch TravisCI to Ubuntu 20.04 2021-02-11 00:55:27 +01:00
COPYING Bump copyright 2020-01-28 21:27:39 +01:00
ChangeLog Update history URL 2020-01-28 00:58:48 +01:00
INSTALL Add INSTALL file for those not familiar with the configure+make dance. From 2007-02-24 20:58:18 +00:00
Makefile.am Unbreak build after README renaming 2020-01-28 00:02:32 +01:00
NEWS Fix whitespace 2023-01-20 00:01:58 +01:00
README.md Clarify ezstream build dependencies 2022-08-20 23:42:41 +02:00
autogen.sh Add FreeBSD DEFAULT_AUTOCONF variable support 2022-08-20 23:00:47 +02:00
configure.ac Make relative path lookups configurable 2022-10-09 02:13:52 +02:00
gen-coverage-report.sh Support configure args in gen-coverage-report.sh 2020-01-22 22:55:27 +01:00

README.md

About

Ezstream is a command line source client for media streams, primarily for streaming to Icecast servers.

It allows the creation of media streams based on input from files or standard input that is piped through an optional external de- and encoder. As every part of this chain is highly configurable, ezstream can be useful in a large number of streaming setups.

It uses libshout to communicate with streaming servers and currently supports Ogg, MP3, WebM, and Matroska streams using the HTTP, ICY, and RoarAudio protocols. It uses TagLib to read and manage metadata in numerous media files.

Ezstream is free software and licensed under the GNU General Public License. See the COPYING file for details.

Dependencies

Ezstream depends on:

  • libshout version 2.2.x or newer
  • libxml version 2.x
  • TagLib for C version 1.x (1.4 or newer recommended)

Ezstream optionally uses:

  • libiconv on systems where iconv() is not available in libc, for basic non-ASCII charset support in metadata and filenames

Building ezstream depends on:

  • check unit testing framework for C
  • pkg-config or compatible replacements
  • GNU make in case the system make(1) does not work

Developers of ezstream also need:

Installation

The ezstream software uses the GNU auto-tools to configure, build, and install on a variety of systems. Several (additional) configuration options are available.

Run ./configure --help to get an overview.

The compilation and installation process then boils down to the usual

    $ ./configure --help | less         # Skim over the available options
    $ ./configure [options] && make && [sudo] make install
                                        # Configure, build and install
                                        # [as root] the software

If this procedure is unfamiliar to you, please consult the INSTALL file for more detailed instructions.

On systems where the libshout installation does not include the required shout.pc file for pkg-config(1), the non-standard shout-config utility is available. However, the ezstream build system does not support the latter.

If this is an issue, configure ezstream with

    $ ./configure \
        LIBSHOUT_CPPFLAGS="$(shout-config --cppflags)" \
        LIBSHOUT_CFLAGS="$(shout-config --cflags-only)" \
        LIBSHOUT_LIBS="$(shout-config --libs)"

If needed, verbose configuration error messages can be found in the config.log file.

When working on a fresh checkout from source control, the autogen.sh script must be run first.

Usage

Once ezstream is installed successfully, type man ezstream on the command line for a comprehensive manual. This distribution package also comes with example configuration files that can be used as a guide to configure ezstream.

As ezstream is a source client, a media streaming server like Icecast must be available to distribute the stream to listening clients. See (https://www.icecast.org/) for more information and resources.

External Decoders/Encoders

Ezstream should be able to work with any media decoder and encoder that fulfills the following requirements:

  1. Must be an executable that can be run from the command line without the need for a graphical display or terminal
  2. Decoding software must be able to either
    1. write raw audio data to standard output, or
    2. write a properly encoded stream ready for distribution to standard output
  3. Encoding software must be able to read raw audio data from standard input

The following incomplete list of programs shows a few that are known to work. These are also used in the example configuration files:

Development