David Marceau
2004-Jun-01 20:28 UTC
[icecast] ices2 and Icecast2 on debian configuration question
Hi there, I have a Debian sarge 512 MB RAM machine with icecast2 and ices2 that I installed via aptitude. I have a 3MBit/s download and 800KBit/s upload link. I would like to configure icecast2 and ices2 properly. Here is my situation: 1)I have a dtdns address omac.darktech.org 2)icecast2 and ices2 on port 8000 would be fine. 3)I simply want to broadcast my 6 year old niece's voice which I have converted to .ogg using the blade encoder. i.e. bladeenc elyse4.wav elyse4.ogg 3.3)I don't seem to need a relay since I am running both icecast2 and ices2 on the same machine. 4)I ran ices2 ices-playlist.xml 5)I ran icecast2 -c icecast.xml 6)I went to my brother's machine who uses another internet provider and uses a windows ME box(non-techie guy). I did http://omac.darktech.org:8000/elyse4.ogg 7)Instead of delivering elyse4.ogg as a stream, it seemed to deliver the entire file before it played it in winamp. 8)I didn't quite configure everything properly because I was unsure as to what the playlist.txt file should contain. I guessed and only placed "elyse4.ogg" in it. Questions: 1)What do I have to change in my ices2 and icecast2 configs in order for it to stream instead of doing a complete file transfer? 2)What is the execution order for ices2 and icecast2. Should I start ices2 first and then icecast2 or do icecast2 first and then ices2 second? I am guessing it should be icecast2 first but the documentation does not seem to tell me that. 3)Since I am running both ices2 and icecast2 on the same machine, do I still need a user password for ices2 and icecast2 to communicate to each other? 4)Considering my 800KBit/s upload bandwidth, what would be the recommended maximum number of listeners that I could stream? I am guessing that 800Kbit/64= 12...roughly twelve 64Kbit streams. Is this the correct method or is there more that I should consider here? I am guessing there is but it's best to ask right? Thanks for taking the time to help. Here are my icecast2 and ices2 xml config files: <icecast> <limits> <clients>2</clients> <sources>2</sources> <threadpool>5</threadpool> <queue-size>102400</queue-size> <client-timeout>30</client-timeout> <header-timeout>15</header-timeout> <source-timeout>10</source-timeout> </limits> <authentication> <!-- Sources log in with username 'source' --> <source-password>gnuckgnuck1</source-password> <!-- Relays log in username 'relay' --> <relay-password>gnuckgnuck1</relay-password> <!-- Admin logs in with the username given below --> <admin-user>admin</admin-user> <admin-password>gnuckgnuck1</admin-password> </authentication> <!-- Uncomment this if you want directory listings --> <!-- <directory> <yp-url-timeout>15</yp-url-timeout> <yp-url><a href="http://dir.xiph.org/cgi-bin/yp-cgi</yp-url">http://dir.xiph.org/cgi-bin/yp-cgi</yp-url</a>> </directory> <directory> <yp-url-timeout>15</yp-url-timeout> <yp-url><a href="http://www.oddsock.org/cgi-bin/yp-cgi</yp-url">http://www.oddsock.org/cgi-bin/yp-cgi</yp-url</a>> </directory> --> <hostname>localhost</hostname> <!-- You can use these two if you only want a single listener --> <!--<port>8000</port> --> <!--<bind-address>127.0.0.1</bind-address>--> <!-- You may have multiple <listener> elements --> <listen-socket> <port>8000</port> <!-- <bind-address>127.0.0.1</bind-address> --> </listen-socket> <!-- <listen-socket> <port>8001</port> </listen-socket> --> <!--<master-server>127.0.0.1</master-server>--> <!--<master-server-port>8001</master-server-port>--> <!--<master-update-interval>120</master-update-interval>--> <!--<master-password>hackme</master-password>--> <!-- <relay> <server>127.0.0.1</server> <port>8001</port> <mount>/example.ogg</mount> <local-mount>/different.ogg</local-mount> <relay-shoutcast-metadata>0</relay-shoutcast-metadata> </relay> --> <!-- Only define a <mount> section if you want to use advanced options, like alternative usernames or passwords <mount> <mount-name>/elyse4.ogg</mount-name> <username>gnuckgnuck1</username> <password>gnuckgnuck1</password> <max-listeners>1</max-listeners> <dump-file>/tmp/elyse4.ogg</dump-file> <fallback-mount>/elyse4.ogg</fallback-mount> </mount> --> <fileserve>1</fileserve> <paths> <!-- basedir is only used if chroot is enabled --> <basedir>/usr/share/icecast2</basedir> <!-- Note that if <chroot> is turned on below, these paths must both be relative to the new root, not the original root --> <logdir>/root/myradiostation</logdir> <webroot>/root/myradiostation</webroot> <adminroot>/root/myradiostation</adminroot> <pidfile>/root/myradiostation/icecast.pid</pidfile> <!-- Aliases: treat requests for 'source' path as being for 'dest' path May be made specific to a port or bound address using the "port" and "bind-address" attributes. --> <!-- <alias source="/foo" dest="/bar"/> --> </paths> <logging> <accesslog>access.log</accesslog> <errorlog>error.log</errorlog> <loglevel>0</loglevel> <!-- 4 Debug, 3 Info, 2 Warn, 1 Error --> </logging> <security> <chroot>1</chroot> <changeowner> <user>icecast2</user> <group>icecast</group> </changeowner> </security> </icecast> <?xml version="1.0"?> <ices> <!-- run in background --> <background>0</background> <!-- where logs, etc go. --> <logpath>/root/myradiostation</logpath> <logfile>ices.log</logfile> <!-- 1=error,2=warn,3=info,4=debug --> <loglevel>0</loglevel> <!-- set this to 1 to log to the console instead of to the file above --> <consolelog>0</consolelog> <!-- optional filename to write process id to --> <!-- <pidfile>/home/ices/ices.pid</pidfile> --> <stream> <!-- metadata used for stream listing (not currently used) --> <metadata> <name>Elyse Thomson</name> <genre>talking and singing</genre> <description>debut internet radio appearance</description> </metadata> <!-- input module The module used here is the playlist module - it has 'submodules' for different types of playlist. There are two currently implemented, 'basic', which is a simple file-based playlist, and 'script' which invokes a command to returns a filename to start playing. --> <input> <module>playlist</module> <param name="type">basic</param> <param name="file">playlist.txt</param> <!-- random play --> <param name="random">0</param> <!-- if the playlist get updated that start at the beginning --> <param name="restart-after-reread">1</param> <!-- if set to 1 , plays once through, then exits. --> <param name="once">0</param> </input> <!-- Stream instance You may have one or more instances here. This allows you to send the same input data to one or more servers (or to different mountpoints on the same server). Each of them can have different parameters. This is primarily useful for a) relaying to multiple independent servers, and b) encoding/reencoding to multiple bitrates. If one instance fails (for example, the associated server goes down, etc), the others will continue to function correctly. This example defines two instances as two mountpoints on the same server. --> <instance> <!-- Server details: You define hostname and port for the server here, along with the source password and mountpoint. --> <hostname>localhost</hostname> <port>8000</port> <password>gnuckgnuck1</password> <mount>/example1.ogg</mount> <!-- Reconnect parameters: When something goes wrong (e.g. the server crashes, or the network drops) and ices disconnects from the server, these control how often it tries to reconnect, and how many times it tries to reconnect. Delay is in seconds. If you set reconnectattempts to -1, it will continue indefinately. Suggest setting reconnectdelay to a large value if you do this. --> <reconnectdelay>2</reconnectdelay> <reconnectattempts>5</reconnectattempts> <!-- maxqueuelength: This describes how long the internal data queues may be. This basically lets you control how much data gets buffered before ices decides it can't send to the server fast enough, and either shuts down or flushes the queue (dropping the data) and continues. For advanced users only. --> <maxqueuelength>80</maxqueuelength> <!-- Live encoding/reencoding: Currrently, the parameters given here for encoding MUST match the input data for channels and sample rate. That restriction will be relaxed in the future. --> <encode> <nominal-bitrate>64000</nominal-bitrate> <!-- bps. e.g. 64000 for 64 kbps --> <samplerate>44100</samplerate> <channels>2</channels> </encode> </instance> </stream> </ices> --- >8 ---- List archives: http://www.xiph.org/archives/ icecast project homepage: http://www.icecast.org/ To unsubscribe from this list, send a message to 'icecast-request at xiph.org' containing only the word 'unsubscribe' in the body. No subject is needed. Unsubscribe messages sent to the list will be ignored/filtered.
Geoff Shang
2004-Jun-02 17:01 UTC
[icecast] ices2 and Icecast2 on debian configuration question
Hi: I've not looked at your configs, but I'm guessing they're OK if you actually got the file you meant to get. On Tue, 1 Jun 2004, David Marceau wrote:> 1)What do I have to change in my ices2 and icecast2 configs in order for > it to stream instead of doing a complete file transfer?Nothing, what you do have to change is how you call it. If you type the URL into Winamp et al, it should play as you expect. For it to operate correctly in a web browser, you need to call a playlist file containing the stream URL, so that this URL will be opened by your preferred player and not by your browser. You can either create this manually or use icecast to do it for you. If you wanted to listen to example.ogg, you could type http://server:port/example.ogg.m3u into your browser, and as long as you've got a Vorbis -capable player set to open M3U files, you'll be right.> 2)What is the execution order for ices2 and icecast2. Should I start > ices2 first and then icecast2 or do icecast2 first and then ices2 > second? I am guessing it should be icecast2 first but the documentation > does not seem to tell me that.You should start icecast before ices, as ices needs something to connect to. But you need them both before you can listen to anything. To use a terrestrial radio setup as an analogy, ices is your radio station and icecast is the transmitter. If either of these parts is not powered up, listeners won't hear anything.> 3)Since I am running both ices2 and icecast2 on the same machine, do I > still need a user password for ices2 and icecast2 to communicate to each > other?Yes. Neither of them care which host the other is on.> 4)Considering my 800KBit/s upload bandwidth, what would be the > recommended maximum number of listeners that I could stream? I am > guessing that 800Kbit/64= 12...roughly twelve 64Kbit streams. Is this > the correct method or is there more that I should consider here? I am > guessing there is but it's best to ask right?Allow a bit for TCP/IP overhead, but that's the general idea. 11 is probably a safe figure. Geoff. <p>--- >8 ---- List archives: http://www.xiph.org/archives/ icecast project homepage: http://www.icecast.org/ To unsubscribe from this list, send a message to 'icecast-request at xiph.org' containing only the word 'unsubscribe' in the body. No subject is needed. Unsubscribe messages sent to the list will be ignored/filtered.