1
0
mirror of https://gitlab.xiph.org/xiph/ezstream.git synced 2024-11-03 04:17:18 -05:00
ezstream/examples/ezstream-full.xml
Moritz Grimm ed9e84f387 Change config format to (eventually) support concurrent streams to many servers
Everything ties together in stream configurations, of which there can be many
now.

For the time being, every stream configuration but the "default" is ignored.

Every stream/server/encoder/decoder configuration now has the name "default"
by default, so that configuring names is only needed to resolve ambiguities.

Decoder configurations are now also constrained in this manner for consistency,
meaning they are no longer uniquely identified by a number of file extensions
but also a name.
2017-11-18 01:54:14 +01:00

187 lines
5.1 KiB
XML

<?xml version="1.0" encoding="UTF-8"?>
<!--
EXAMPLE: A valid configuration that contains every configuration option
NB: /ezstream/metadata/program is commented out so that this configuration
can work without scripting.
-->
<!-- Ezstream configuration root element -->
<ezstream>
<!--
Server configuration
-->
<servers>
<server>
<!-- Identifying name; default: "default" -->
<name>Default</name>
<!-- Transport protocol: HTTP, HTTPS -->
<protocol>HTTP</protocol>
<!-- Server address -->
<hostname>127.0.0.1</hostname>
<!-- Server port -->
<port>8000</port>
<!-- Login user -->
<user>source</user>
<!-- Login password (check file permissions, or everyone can see this) -->
<password>hackme</password>
<!-- Number of reconnection attempts, before giving up: -->
<reconnect_attempts>0</reconnect_attempts>
<!--
Configure TLS encryption requirement: none, may (default), required
-->
<tls>Required</tls>
<!--
Configure allowed cipher suites for TLS other than the libshout default.
See openssl(1)/ciphers(1) for details.
-->
<tls_cipher_suite>HIGH:!kRSA:!kECDH:!DH:!PKS:!aNULL:!eNULL:!3DES:!MD5:!SHA:!TLSv1</tls_cipher_suite>
<!--
Directory to use for server certificate verification in "hash format".
See openssl(1)/verify(1) for details.
-->
<ca_dir>/etc/ssl/certs</ca_dir>
<!--
CA bundle for both server certificate verification and building the
client certificate chain.
-->
<ca_file>/etc/ssl/certs/ca-certificates.crt</ca_file>
<!--
X.503 client certificate, in PEM format, containing both certificate
(with public key) and private key in the same file, for authentication.
-->
<client_cert>/etc/ssl/ezstream.crt</client_cert>
</server>
</servers>
<!--
Stream configuration
-->
<streams>
<stream>
<!-- Identifying name; default: "default" -->
<name>Default</name>
<!-- Mount point on server -->
<mountpoint>/stream.ogg</mountpoint>
<!-- Name of the server entry to use (default: "default") -->
<server>Default</server>
<!-- Setting to allow stream to be listed in public YP directory -->
<public>No</public>
<!-- Stream format: Vorbis, MP3, Theora -->
<format>Vorbis</format>
<!-- Encoder name (defined below) to use for (re)encoding -->
<encoder>OggEnc-Q1.5</encoder>
<!-- Various other informational settings -->
<stream_name>Test Stream</stream_name>
<stream_url>http://localhost:8000/</stream_url>
<stream_genre>Beeps</stream_genre>
<stream_description>Test tones and noise</stream_description>
<stream_quality>1.5</stream_quality>
<stream_bitrate>16</stream_bitrate>
<stream_samplerate>44100</stream_samplerate>
<stream_channels>2</stream_channels>
</stream>
</streams>
<!--
Media configuration
-->
<media>
<!-- Media type: autodetect, file, playlist, program, stdin -->
<type>autodetect</type>
<!-- Input file, program name, or "stdin" keyword -->
<filename>playlist.m3u</filename>
<!-- Setting to shuffle playlists -->
<shuffle>Yes</shuffle>
<!-- Setting whether to stream input indefinitely or only once -->
<stream_once>No</stream_once>
</media>
<!--
Metadata configuration
-->
<metadata>
<!-- Program to query for metadata instead of from media files -->
<!-- <program>meta.sh</program> -->
<!-- Metadata format -->
<format_str>@a@ - @t@</format_str>
<!-- Interval for additional metadata refreshes (-1 for none) -->
<refresh_interval>-1</refresh_interval>
<!-- Setting to clean up extraneous whitespace -->
<normalize_strings>Yes</normalize_strings>
<!-- Setting to suppress all metadata udpates -->
<no_updates>No</no_updates>
</metadata>
<!--
Decoder configurations
-->
<decoders>
<decoder>
<!-- Decoder name -->
<name>OggDec</name>
<!-- Program and options -->
<program>oggdec -R -b 16 -e 1 -s 1 -o - @T@</program>
<!-- File extensions to use this decoder for -->
<file_ext>.ogg</file_ext>
<file_ext>.oga</file_ext>
</decoder>
<decoder>
<name>MadPlay</name>
<program>madplay -b 16 -R 44100 -S -o raw:- @T@</program>
<file_ext>.mp3</file_ext>
</decoder>
<decoder>
<name>Flac</name>
<program>flac -s -d --force-raw-format --sign=signed --endian=little -o - @T@</program>
<file_ext>.flac</file_ext>
</decoder>
</decoders>
<!--
Encoder configurations
-->
<encoders>
<encoder>
<!-- Encoder name -->
<name>OggEnc-Q1.5</name>
<!-- Output stream format -->
<format>Vorbis</format>
<!-- Program and options -->
<program>oggenc -r -B 16 -C 2 -R 44100 --raw-endianness 1 -q 1.5 -t @M@ -</program>
</encoder>
<encoder>
<name>Lame-CBR128</name>
<format>MP3</format>
<program>lame --preset cbr 128 -r -s 44.1 --bitwidth 16 - -</program>
</encoder>
</encoders>
</ezstream>