mirror of
https://gitlab.xiph.org/xiph/ezstream.git
synced 2025-02-02 15:07:45 -05:00
* Install the signal handler as late as possible. * Add new command line options: -v (verbose, use twice for even more verbose output) and -q (quiet, redirect standard error output from external de-/ encoders to /dev/null.) * It is now an error to supply more than one -c parameter. This prevents unexpected results. * Add a stern warning when ezstream is running as root. Just Don't Do It. Leaving the configfile writeable to others by accident could mean instant root compromise. * Before handing the config file over to libxml, try to open it ourselves first. The error message from strerror() is a lot more helpful than the cryption I/O error printed by libxml. * Don't preallocate memory for urlParse(). * Fix command line error messages, they seem to be for a different program than Ezstream. * More terse libshout error messages, just print which function failed. I consider these errors of questionable value for an end user, but at least a knowledgeable one will know instantly what went wrong. * Case insensitive matching of playlist file extensions. * Print the address, port and mountpoint that Ezstream is actually trying to connect to, instead of what the user supplied. That should make it easier to spot reasons for connect failures (e.g. typos.) Changes in urlParse(): * Let urlParse() allocate memory for hostname and mountpoint, as it knows how much memory is actually required. * Fix a buffer overflow of the tmpPort buffer by adding checks and using safe string functions. * Let the caller print an error message, instead of having the same printf() twice in urlParse(). The streamPlaylist() function has been rewritten to use the new playlist_*() routines. Apart from the added playlist shuffle feature no functional change. git-svn-id: https://svn.xiph.org/trunk/ezstream@12552 0101bb08-14d6-0310-b084-bc0e0c8e3800
ezstream README --------------------------------------- ABOUT EZSTREAM :::::::::::::::: Ezstream is a command line source client for Icecast media streaming servers, and the successor of the old "shout" utility. 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. Directly supported media formats are MP3, Ogg Vorbis and Ogg Theora. Metadata support is available for MP3 (ID3v1 only) and Ogg Vorbis. Ezstream is free software and licensed under the GNU General Public License. See the COPYING file for details. PREREQUISITES ::::::::::::::: Ezstream depends on: * libshout 2.2.x (http://www.icecast.org/) * libshout dependencies, such as libogg, libvorbis, libtheora, etc. (http://www.vorbis.com/ and http://www.theora.org/) * libxml 2.x (http://xmlsoft.org/) INSTALLATION :::::::::::::: The ezstream software uses the GNU auto-tools to configure, build and install on a variety of systems. Aside from the standard autoconf options of the configure script, a couple of additional options are available: --with-xml-config=PATH use xml-config in PATH to find libxml --with-ogg=PREFIX Prefix where libogg is installed (optional) --with-vorbis=PREFIX Prefix where libvorbis is installed (optional) The compilation and installation process 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. USAGE ::::::: Once ezstream is successfully installed, type "man ezstream" (without quotes) 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. Note that all by itself, ezstream is not particularly useful. It requires a running Icecast server to stream to, which then relays the stream to many listeners. If this comes as a surprise, browse to http://www.icecast.org/ for a lot more information, resources, and other source clients. EXTERNAL DECODERS/ENCODERS :::::::::::::::::::::::::::: Ezstream should be able to work with any media decoder and encoder that fulfills the following requirements: 1. It needs to be executable on the command line and not require a graphical display to function. 2.1. A decoder needs to be capable of sending RAW data to standard output. 2.2. An encoder needs to be capable of reading RAW data from standard input. 2.3. A combined de-/encoder needs to be capable of sending streamable media to standard output. Media formats that ezstream does not support directly are passed through unaltered. Whether they work or not depends on the level of support offered by the version of libshout ezstream is linked with. The following incomplete list of programs shows a few that are known to work. These are also used in the example configuration files: * MP3 - Decoder: madplay (http://mad.sf.net/) - Encoder: lame (http://lame.sf.net/) * Ogg Vorbis: - Decoder: oggdec - Encoder: oggenc Both utilities are in the vorbis-tools package (http://www.vorbis.com/). * FLAC: - Decoder: flac (http://flac.sf.net/) - Encoder: (None. Not supported by libshout at the time of writing, and thus cannot be used by ezstream.) * Ogg Theora: - Decoder/Encoder: ffmpeg2theora (http://v2v.cc/~j/ffmpeg2theora/)
Description
Languages
C
80.6%
M4
10.1%
Shell
7.7%
Makefile
1.6%