ezstream-full.xml 6.58 KB
Newer Older
1
2
<?xml version="1.0" encoding="UTF-8"?>

3
4
<!--
  EXAMPLE: A valid configuration that contains every configuration option
5
6
7

  NB: /ezstream/metadata/program is commented out so that this configuration
      can work without scripting.
8
9
10
  -->

<!-- Ezstream configuration root element -->
11
12
<ezstream>

13
14
15
  <!--
    Server configuration
    -->
16
17
  <servers>
    <server>
18
19
      <!-- Identifying name (default: "default") -->
      <name>Test Server</name>
20

21
22
23
24
      <!--
        Transport protocol:
        HTTP (default), HTTPS (implies <tls>required</tls>), ICY, RoarAudio
        -->
25
26
27
      <protocol>HTTP</protocol>
      <!-- Server address -->
      <hostname>127.0.0.1</hostname>
28
      <!-- Server port (default: 8000) -->
29
30
      <port>8000</port>

31
      <!-- Login user (default: "source") -->
32
33
34
35
36
      <user>source</user>
      <!-- Login password (check file permissions, or everyone can see this) -->
      <password>hackme</password>

      <!--
37
        Configure TLS requirement: none, may, required (default: "may")
38
39
40
41
42
43

        For compatibility reasons, the default configuration and this example
        is "may". THIS IS INSECURE. It allows a MitM to intercept the
        password and tamper with the stream. It is recommended to set this to
        "required" when configuring TLS to secure streaming over untrusted
        networks.
44
        -->
45
      <tls>May</tls>
46
47

      <!--
48
49
        Configure allowed cipher suites for TLS other than the libshout
        default.
50
51
        See openssl(1)/ciphers(1) for details.
        -->
52
      <tls_cipher_suite>HIGH:!RSA:!SHA:!DH:!aNULL:!eNULL:!TLSv1</tls_cipher_suite>
53
54
55
56

      <!--
        Directory to use for server certificate verification in "hash format".
        See openssl(1)/verify(1) for details.
57
58
59

        One of the <ca_dir /> or <ca_file /> settings must be enabled for
        certificate verification to succeed.
60
        -->
61
      <!-- <ca_dir>/etc/ssl/certs</ca_dir> -->
62
63
64
65

      <!--
        CA bundle for both server certificate verification and building the
        client certificate chain.
66
67
68

        One of the <ca_dir /> or <ca_file /> settings must be enabled for
        certificate verification to succeed.
69
        -->
70
      <!-- <ca_file>/etc/ssl/certs/ca-certificates.crt</ca_file> -->
71
72
73

      <!--
        X.503 client certificate, in PEM format, containing both certificate
74
75
        (with public key) and private key in the same file, for
        authentication.
76
        -->
Moritz Grimm's avatar
Moritz Grimm committed
77
      <!-- <client_cert>/etc/ssl/private/ezstream.crt</client_cert> -->
78
79
80

      <!-- Number of reconnection attempts, before giving up (default: 0) -->
      <reconnect_attempts>20</reconnect_attempts>
81
82
    </server>
  </servers>
83

84
85
86
  <!--
    Stream configuration
    -->
87
88
  <streams>
    <stream>
89
90
91
92
93
94
      <!--
        Identifying name (default: "default")

        NB: Only the "default" stream is supported at this point.
        -->
      <!-- <name>default</name> -->
95
96
97
98

      <!-- Mount point on server -->
      <mountpoint>/stream.ogg</mountpoint>

99
      <!-- Name of the intake entry to use (default: "default") -->
100
      <intake>Test Input</intake>
101

102
      <!-- Name of the server entry to use (default: "default") -->
103
      <server>Test Server</server>
104

105
106
107
108
      <!--
        Setting to allow stream to be listed in public YP directory
        (default: no)
        -->
109
110
      <public>No</public>

Moritz Grimm's avatar
Moritz Grimm committed
111
112
      <!-- Stream format: Ogg, MP3, WebM, Matroska -->
      <format>Ogg</format>
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127

      <!-- 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>
128

129
  <!--
130
    Intake configuration
131
    -->
132
133
  <intakes>
    <intake>
134
135
      <!-- Identifying name (default: "default") -->
      <name>Test Input</name>
136

137
138
139
140
141
      <!--
        Media type: autodetect, file, playlist, program, stdin
       (default: autodetect)
        -->
      <type>playlist</type>
142

143
      <!-- Input file, program name, or "stdin" keyword (deprecated) -->
144
      <filename>playlist.m3u</filename>
145

146
147
      <!-- Setting to shuffle playlists -->
      <shuffle>Yes</shuffle>
148

149
      <!-- Setting whether to stream intake indefinitely or only once -->
150
      <stream_once>Yes</stream_once>
151
152
    </intake>
  </intakes>
153

154
155
156
  <!--
    Metadata configuration
    -->
157
  <metadata>
158
    <!-- Program to query for metadata instead of from media files -->
159
    <!-- <program>meta.sh</program> -->
160
161
162
163

    <!-- Metadata format -->
    <format_str>@a@ - @t@</format_str>

164
    <!-- Interval for additional metadata refreshes (default: -1 (none)) -->
165
166
    <refresh_interval>-1</refresh_interval>

167
    <!-- Setting to clean up extraneous whitespace (default: no) -->
168
169
    <normalize_strings>Yes</normalize_strings>

170
171
    <!-- Setting to suppress all metadata udpates (default: no) -->
    <no_updates>Yes</no_updates>
172
173
  </metadata>

174
175
176
  <!--
    Decoder configurations
    -->
177
178
  <decoders>
    <decoder>
179
180
181
      <!-- Decoder name -->
      <name>OggDec</name>
      <!-- Program and options -->
182
      <program>oggdec -R -b 16 -e 1 -s 1 -o - @T@</program>
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
      <!-- 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>
198
    </decoder>
Moritz Grimm's avatar
Moritz Grimm committed
199
200
201
202
203
204

    <decoder>
      <name>AAC</name>
      <program>faad -d -f 2 -w @T@</program>
      <file_ext>.m4a</file_ext>
    </decoder>
205
206
  </decoders>

207
208
209
  <!--
    Encoder configurations
    -->
210
211
  <encoders>
    <encoder>
212
213
214
      <!-- Encoder name -->
      <name>OggEnc-Q1.5</name>
      <!-- Output stream format -->
Moritz Grimm's avatar
Moritz Grimm committed
215
      <format>Ogg</format>
216
      <!-- Program and options -->
Moritz Grimm's avatar
Moritz Grimm committed
217
      <program>oggenc -r -B 16 -C 2 -R 44100 --raw-endianness 0 -q 1.5 -t @M@ -</program>
218
219
    </encoder>

Moritz Grimm's avatar
Moritz Grimm committed
220
221
222
223
224
225
    <encoder>
      <name>Opus-VBR96</name>
      <format>Ogg</format>
      <program>opusenc --vbr --bitrate 96 --title @t@ --artist @a@ --raw --raw-rate 44100 - -</program>
    </encoder>

226
227
228
229
    <encoder>
      <name>Lame-CBR128</name>
      <format>MP3</format>
      <program>lame --preset cbr 128 -r -s 44.1 --bitwidth 16 - -</program>
230
231
232
233
    </encoder>
  </encoders>

</ezstream>