Skip to main content

Notice

Please note that most of the software linked on this forum is likely to be safe to use. If you are unsure, feel free to ask in the relevant topics, or send a private message to an administrator or moderator. To help curb the problems of false positives, or in the event that you do find actual malware, you can contribute through the article linked here.
Topic: Oddcast v2+icecast2=failure (Read 5577 times) previous topic - next topic
0 Members and 1 Guest are viewing this topic.

Oddcast v2+icecast2=failure

One of my roommates and I recently came to the conclusion that it would be very cool to stream music through the LAN during parties, making it possible to have a single song playing literally throughout the house, as opposed to just out of my room and in to the kitchen.

We did a bit of hunting around, and eventually found oddcast/icecast, which seemed to do exactly what we wanted.  I'm determined to use Foobar as the source, but I guess if there are easier solutions I'm open to suggestions.

The problem is we can't get it to work right.  I can configure oddcast and make it talk and play nice with icecast, but I can't connect to the stream with any of the other computers on the LAN.  Looking through the access log, I can see that there are connection attempts, but I've tried Foobar, Winamp 5 and even Windows Media Player, and nothing will connect.  I can't even connect from another app on my own computer!

Any idea what I'm doing wrong?  Any help would be much appreciated.

Oddcast v2+icecast2=failure

Reply #1
Well, in order to figure out what went wrong, it would help a lot more if we knew exactly what you were doing. 

Could you show us the config files?

If you were using Vorbis, did you try opening http://hostname/mountpoint.ogg , http://hostname/mountpoint.ogg.pls , or http://hostname/mountpoint.ogg.m3u ?

Oddcast v2+icecast2=failure

Reply #2
foo_oddcast is a buggy, non-standard piece of software no longer receiving support by its author (as far as I've been able to determine). I recommend against its use. It breaks many of foobar2000's features (ie. integrated configuration, arbitrary metadata fields). Consider it obsolete at present. The Oddcast libraries themselves aren't in significantly better shape.

There is a third-party component currently in development to stream AAC, but it may not materialize, depending on whether or not certain libfaac peculiarities can be worked around.

Oddcast v2+icecast2=failure

Reply #3
Here's the Icecast config:

- <icecast>
- <limits>
  <clients>100</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>*pass*</source-password>
- <!--  Relays log in username 'relay'
  -->
  <relay-password>hackme</relay-password>
- <!--  Admin logs in with the username given below
  -->
  <admin-user>admin</admin-user>
  <admin-password>*pass*</admin-password>
  </authentication>
- <!--  Uncomment this if you want directory listings
  -->
- <!--    <directory>
        <yp-url-timeout>15</yp-url-timeout>
        <yp-url>http://dir.xiph.org/cgi-bin/yp-cgi</yp-url>
    </directory>
    <directory>
        <yp-url-timeout>15</yp-url-timeout>
        <yp-url>http://www.oddsock.org/cgi-bin/yp-cgi</yp-url>
    </directory>
   
  -->
  <hostname>*host*</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>/example-complex.ogg</mount-name>

        <username>othersource</username>
        <password>hackmemore</password>

        <max-listeners>1</max-listeners>
        <dump-file>/tmp/dump-example1.ogg</dump-file>
        <fallback-mount>/example2.ogg</fallback-mount>
    </mount>
   
  -->
  <fileserve>1</fileserve>
- <paths>
- <!--  basedir is only used if chroot is enabled
  -->
  <basedir>./</basedir>
- <!--  Note that if <chroot> is turned on below, these paths must both
            be relative to the new root, not the original root
  -->
  <logdir>./logs</logdir>
  <webroot>./web</webroot>
  <adminroot>./admin</adminroot>
- <!--  <pidfile>./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>4</loglevel>
- <!--  4 Debug, 3 Info, 2 Warn, 1 Error
  -->
  </logging>
- <security>
  <chroot>0</chroot>
- <!--        <changeowner>
            <user>nobody</user>
            <group>nogroup</group>
        </changeowner>
       
  -->
  </security>
  </icecast>

The passwords and hostname have been asterisked (sort of), even though it's only running on our LAN and is firewalled via our router.

When we tried opening it, we tried http://hostname:8000/mountpoint.ogg, although I tried not including the port, going straight to hostname, and anything else that I could think of to make it connect.  As far as the Oddcast config, I think it's set up right considering that it connects to icecast OK and icecast recognizes the stream.  In fact, it even sees that I'm trying to connect, but the connection never actually goes through.

Oddcast v2+icecast2=failure

Reply #4
Quote
foo_oddcast is a buggy, non-standard piece of software no longer receiving support by its author (as far as I've been able to determine). I recommend against its use. It breaks many of foobar2000's features (ie. integrated configuration, arbitrary metadata fields). Consider it obsolete at present. The Oddcast libraries themselves aren't in significantly better shape.[{POST_SNAPBACK}][/a]

Well, it's not updated since April, and it only sends metadata fields %artist% and %title%, that's right, but it has served me flawlessly for many months with not one single bug, and it still streams perfectly (I use it to stream Vorbis q 3 with the Win32 Icecast2 server BTW). But, sure, I do hope to see some new development soon.

@vinnie1023:
The necessary configurations are covered  [a href="http://people.smartchat.net.au/~carlodim/streaming/]here[/url]. There really shouldn't be more too it. But you could also look at Icecast.org's documentation.

Also I guess you have covered the dependencies of the plug. These must be in the foobar2000 root folder (same as foobar2000.exe): It wants the lame_enc.dll and the Vorbis DLL's. I recently tried the new 1.1.0 ones, but no dice. It works beautifully with the aoTuVb2 ones though, and since I guess you are streaming below q 5 they should be perfect (aoTuVb2 are supposed to be very good for low bitrates). Then you must have the BASS.dll and the BASSWMA.dll. Also the Microsoft codecs that might be on your machine or that you can install with the redistributional package.

And ofcourse you must make sure that TCP/IP traffic over port 8000 on all machines are not firewalled. Or else you must open this port.
"ONLY THOSE WHO ATTEMPT THE IMPOSSIBLE WILL ACHIEVE THE ABSURD"
        - Oceania Association of Autonomous Astronauts

Oddcast v2+icecast2=failure

Reply #5
Well, I made it work by assigning the listener address to my IP, but I really wanted the different listeners to be able to sync up.  The idea is to have a song playing in two different rooms, which are not all that far apart.  If there's any time shift between the two sources, people will notice.  Is it even possible to do what I want?

Oddcast v2+icecast2=failure

Reply #6
Quote
Well, I made it work by assigning the listener address to my IP, but I really wanted the different listeners to be able to sync up.  The idea is to have a song playing in two different rooms, which are not all that far apart.  If there's any time shift between the two sources, people will notice.  Is it even possible to do what I want?
[a href="index.php?act=findpost&pid=250723"][{POST_SNAPBACK}][/a]

Real time streaming? I've heard this discussed... There are always so many factors that contributes to a lag (latency, encoding time, buffering, whatnot....), only thing I think must be something that calculates the total time of the lag and delay the output of the source player accordingly, but that would involve parameters that could forsee all sources of lags and calculate their values exactly, and that sounds like magic to me.... (but I'm not very smart...)
"ONLY THOSE WHO ATTEMPT THE IMPOSSIBLE WILL ACHIEVE THE ABSURD"
        - Oceania Association of Autonomous Astronauts