chiark / gitweb /
rationalize playrtp multicast support
[disorder] / README.streams
CommitLineData
803f6e52 1RTP Streaming
2=============
3
4DisOrder is now capable to transmitting RTP streams over a suitable network.
5To enable this make sure that allplayers use the speaker process, i.e. execraw
6rather than exec (or it won't work properly) and configure the network speaker
7backend:
8
9 speaker_backend network
10 broadcast 172.17.207.255 9003
11 broadcast_from 172.17.207.2 9002
12
b3b157a8 13The destination address doesn't have to be a broadcast address.
803f6e52 14broadcast_from is optional but may be convenient for some cases.
15
16To play, use the disorder-playrtp client.
17
18 disorder-playrtp 0.0.0.0 9003
19
20Currently only 16-bit 44100Hz stereo is supported, which requires about
211.4Mbit/s. Possibly other lower-quality but lower-bandwidth encodings will be
22supported in future.
23
24If you have a too-recent version of sox you may need to set the sox_generation
25option.
26
b3b157a8
RK
27There is now (not well tested) multicast support.
28
803f6e52 29
30Icecast Streaming
31=================
1fe9ef21 32
33This can be achieved using the speaker_command option and Icecast (see
34http://www.icecast.org/). It will only work if you use the speaker process,
35i.e. execraw for everything.
36
37I used:
38
39 speaker_command "ices2 /etc/disorder/ices.xml"
40
41where ices.xml is:
42
43 <?xml version="1.0"?>
44 <ices>
45 <background>0</background>
46 <logpath>/var/log/ices</logpath>
47 <logfile>disorder.log</logfile>
48 <loglevel>4</loglevel>
49 <consolelog>0</consolelog>
50 <stream>
51 <metadata>
52 <name>lyonesse</name>
53 <genre>Various</genre>
54 <description>lyonesse disorder output</description>
55 </metadata>
56 <input>
57 <module>stdinpcm</module>
58 <param name="rate">44100</param>
59 <param name="channels">2</param>
60 <param name="metadata">1</param>
61 <param name="metadatafilename">/var/disorder/icedata</param>
62 </input>
63 <instance>
64 <hostname>lyonesse.anjou.terraraq.org.uk</hostname>
65 <port>8000</port>
66 <password>SOURCE PASSWORD HERE</password>
67 <mount>/disorder.ogg</mount>
68 <reconnectdelay>2</reconnectdelay>
69 <reconnectattempts>5</reconnectattempts>
70 <maxqueuelength>80</maxqueuelength>
71 <encode>
72 <nominal-bitrate>64000</nominal-bitrate>
73 <samplerate>44100</samplerate>
74 <channels>2</channels>
75 <flush-samples>8820</flush-samples>
76 </encode>
77 </instance>
78
79 </stream>
80 </ices>
81
82This doesn't seem to get on very well with pausing but you're unlikely to want
83to pause a stream in any case. I used IceCast 2.3.1 and Ices 2.0.1. You can
84play the stream with XMMS or whatever. The total setup seems to play rather
85behind the 'current' time, watch this space for a fix (or contribute one!)
86
803f6e52 87If you have a too-recent version of sox you may need to set the sox_generation
88option.
1fe9ef21 89
90
b3b157a8
RK
91DisOrder and Republishing Internet Streams
92==========================================
93
94DisOrder doesn't have any built-in support for playing streams but you can make
95it do so. I use the following in my configuration file:
96
97 player /export/radio/*.oggradio shell 'xargs ogg123 -q < "$TRACK"'
98 collection fs iso-8859-1 /export/radio
99
100After setting this up you'll need to re-read the config file and provoke a
101rescan:
102
103 disorder reconfigure rescan /export/radio
104
105/export/radio contains a file for each stream, containing the URL to use:
106
107 lyonesse$ cat /export/radio/CUR1350.oggradio
108 http://cur.chu.cam.ac.uk:8000/cur.ogg
109
110You'll probably want to prevent random play of streams:
111
112 disorder set /export/radio/CUR1350.oggradio pick_at_random 0
113
114You can then queue a stream like any other track. It won't automatically
115interrupt the playing track, you have to scratch it manually. Go back to
116normal play by scratching the stream.
117
118
460b9539 119Local Variables:
120mode:text
121fill-column:79
122End: