Commit ee9f7b62 authored by Moritz Grimm's avatar Moritz Grimm
Browse files

Release ezstream 1.0.0

Clean up/update homepage while here.

1.0.0 is a big release:
- 278 commits
- 174 files changed
- 12245 insertions(+)
- 11567 deletions(-)

This is restored commit ec2dacdd0414de36b48d1b90f40e2ffd0c7adc86 from
parent 14725f85
......@@ -5,21 +5,18 @@ permalink: /ezstream/
<div class="article" id="about" markdown="1">
# About Ezstream
Ezstream is a command line source client for Icecast media streaming servers.
It began as the successor of the old "shout" utility, and has since gained a
lot of useful features.
In its basic mode of operation, it streams media files or data from standard
input without reencoding and thus requires only very little CPU resources.
It can also use various external decoders and encoders to reencode from one
format to another, and stream the result to an Icecast server.
Additional features include scriptable playlist and metadata handling.
All of its features make ezstream a very flexible source client.
Supported media formats for streaming are MP3, Ogg Vorbis and Ogg Theora.
Native metadata support includes MP3 (ID3v1 only) and Ogg Vorbis, and many
more formats when the optional [TagLib]( support has
been compiled in.
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
Ezstream is free software and licensed under the GNU General Public License.
......@@ -27,141 +24,108 @@ Ezstream is free software and licensed under the GNU General Public License.
<div class="article" id="download" markdown="1">
# Download
## Latest version: 0.6.0
## Latest version: 1.0.0
- Source .tar.gz (all platforms)
- [ezstream-0.6.0.tar.gz](
- SHA256: `f86eb8163b470c3acbc182b42406f08313f85187bd9017afb8b79b02f03635c9`
- [ezstream-1.0.0.tar.gz](
- SHA256: `f4612507e99f20f0b0f006e1946bea6a2bb623882e3333fc47bdd203819ef99f`
## Older releases
Older releases can be found at
Older releases, including version 0.x, can be found at
The last official build for MS Windows is available here:
(MD5: `19c6f28c2de81e6e2fa3e0ed914e6696`).
<div class="article" id="release-notes" markdown="1">
# Release Notes
Ezstream 1.0.0 has been released on January 29th 2020.
Version 1.0 is a major feature release with a new configuration file
Further changes include:
- New configuration migration tool to help with upgrades from version 0.x
- Added support for modern libshout functionality:
- WebM and Matroska media formats
- ICY and RoarAudio streaming protocols
- TLS encryption
- Several bug fixes and an extensive unit test suite
- Support the new `@b@` placeholder for separate album metadata
- The command line option `-p` has been added, causing ezstream to write a
locked PID file to a given location
- The command line options `-m` and `-n` have been removed, and new
configuration file settings have been added accordingly
- The real-time status information is now enabled explicitly with the new
command line option `-r`
- The behaviour of the `-s` command line argument was changed:
To shuffle lines from standard input, the special file name "`-`" needs
to be provided.
- TagLib (its C wrapper library) is now a mandatory dependency
- Native support for MS Windows and certain legacy UNIX systems has been
<div class="article" id="further-information" markdown="1">
# Further Information
## Dependencies
Ezstream depends on:
- [libshout]({{ "/download/" | prepend: site.baseurl }})
2.2.x or later + libshout dependencies
- [libxml]( 2.x
- [libshout]({{ "/download/" | prepend: site.baseurl }})
version 2.2.x or newer
- [libxml]( version 2.x
- [TagLib]( for C version 1.x (1.4 or newer
Ezstream optionally uses:
- For reading metadata from Ogg Vorbis files:
- [TagLib]( 1.x (1.4 or newer recommended) __or__
- [libvorbis]( 1.x
- For basic non-ASCII charset support in metadata and filenames:
- GNU [libiconv](, if `iconv()` is not
available in the system C library.
## UNIX (Linux, *BSD, Solaris, ...)
On UNIX and UNIX-like systems, such as Linux and *BSD, binary packages for the
required libraries are usually available. To compile ezstream, ensure that the
respective -devel packages are installed as well, if applicable. Further steps,
and more, are explained in the `README` and `INSTALL` files inside the
distribution package.<br />
It might be a good idea to check whether the operating system vendor
provides a binary package of a recent ezstream release and install that
one instead of building from source.
## MS Windows
Due to technical constraints, MS Windows is no longer a supported platform for
ezstream. Unsupported builds of older versions of ezstream are still
available, however.
Windows users can simply copy the `ezstream.exe` file from the binary
distribution archive (.ZIP) to any location of their choosing. Users, who wish
to be able to run ezstream anywhere on their system, can add the directory
that contains `ezstream.exe` to their PATH environment variable.<br />
The ezstream binary release depends on MSVC 2008 runtime libraries.
These libraries can be downloaded from Microsoft as the
file, at no cost.
- [libiconv]( on systems where
`iconv()` is not available in libc, for basic non-ASCII charset support in
metadata and filenames
<div class="article" id="release-notes" markdown="1">
# Release Notes
Ezstream 0.6.0 has been released on January 18th 2015.
Version 0.6.0 is a security and maintenance release.
- This release contains a **SECURITY FIX** for a command injection
vulnerability that was found and reported by Alexandre Rebert:
The previous handling of metadata placeholders allowed for arbitrary shell
commands to be trivially injected and executed as the ezstream user, via
malicious media files.
Building ezstream depends on:
This vulnerability depends on both a configuration using metadata
placeholders and the user streaming media files from untrusted sources
without noticing \`commands\` or $(commands) in artist or title fields.
- [check]( unit testing framework for C
While the group of actually affected users may be limited, all users are
advised to upgrade.
## Installation
- This release requires existing users to **ADJUST** their **CONFIGURATION**:
Most current UNIX-like operating system, such as Linux (including Windows
Subsystem for Linux) and *BSD, either provide prebuilt binary packages of
ezstream, or the necessary tools to build it manually.
To protect against the injection vulnerability above, metadata is now
properly quoted and escaped from the shell. This means that any extra
quoting must be removed from configuration files.
To find out whether ezstream is available as a prebuilt package and in which
version, please refer to your operating system documentation for more
Remove all quoting from metadata placeholders in `<encode/>` and `<decode/>`
commands, e.g. replace `"@M@"` with `@M@`, and `"@T@"` with `@T@`, etc.
Without these changes, stream metadata will look both wrong and the injection
vulnerability may be re-introduced.
When building manually from source, the preferred way to build ezstream is to
rely on prebuilt binary packages for the dependencies as much as possible.
This may require the installation of the respective -devel packages, if
Configuration examples have been adjusted accordingly.
## Changes
- `src/ezstream.c`:
- FIX: Prevent certain characters from being interpreted by the shell.
- FIX: Prevent ezstream from entering an infinite loop when stopping to send
data to standard input. From gquintard.
(Ticket [#2045](
- various:
- NEW: Add new `<metadata_refreshinterval/>` feature from Matthew Adams (with
minor changes plus documentation.) This allows for recurring and custom
metadata updates in between song changes via `<metadata_progname/>`.
- NEW: Add new command line option `-m` to disable any active metadata
updates. Idea from Richard Thomas.
(Ticket [#1620](
The ezstream source code ships with a `` file that provides
information on all further steps.
<div class="article" id="support" markdown="1">
# Support
## Reporting Problems
In case of problems with ezstream, please make sure to re-read the
documentation first and double-check your configuration. A lot of effort has
been put into the `ezstream(1)` manual, and it should -- at least in theory --
answer all questions.
Of course, ezstream isn't immune to bugs.
[checking if your bug is already known](,
or a newer ezstream release fixes your problem, it is much appreciated that you
[file your bug report](
with the bug tracker.
Ezstream ships with a comprehensive manual and example configurations. Type
`man ezstream` to get started.
Please be as specific and verbose as necessary when submitting a problem
report. Also, please include a valid e-mail address when reporting an issue,
in case there are follow-up questions.
In case of issues that are not answered by the documentation, please report
them in the
[ezstream issue tracker](
Your contribution and efforts are very much appreciated. Thank you!
Please include as much information as possible in your reports. Most
importantly: information how to reproduce the issue independently, what
behavior is expected, and what behavior is observed instead.
## Contact
The current maintainer of ezstream is Moritz Grimm (`mgrimm at mrsserver dot net`).
The current maintainer of ezstream is Moritz Grimm
(`mgrimm at mrsserver dot net`).
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment