| View previous topic :: View next topic |
| Author |
Message |
Anonymous Guest
|
Posted: Tue Jan 22, 2008 9:20 pm Post subject: Noisy stream |
|
|
Hi. I need some help to get this running. I am trying to setup a Icecast server using Ices2 and the microphone on my soundcard as a source. It is running on a Freebsd box.
I can start Icecast and Ices2 without any problems, and I can connect to the server with Winamp running on a WinXP box.
When I start the streaming to Winamp, I can hear myself speak into the microphone, but also i can hear a lot af noise (like someone scratching on a blackboard).
I have tested the soundcard configuration by recording and playing a wavefile with the programs Wavrec/Wavplay, and it works fine.
I have also tried different sample rate settings in the config file, but it doesn't make any difference. Any ideeas???
Icecast config file:
| Code: |
<icecast>
<limits>
<clients>100</clients>
<sources>2</sources>
<threadpool>5</threadpool>
<queue-size>524288</queue-size>
<client-timeout>30</client-timeout>
<header-timeout>15</header-timeout>
<source-timeout>10</source-timeout>
<!-- If enabled, this will provide a burst of data when a client
first connects, thereby significantly reducing the startup
time for listeners that do substantial buffering. However,
it also significantly increases latency between the source
client and listening client. For low-latency setups, you
might want to disable this. -->
<burst-on-connect>1</burst-on-connect>
<!-- same as burst-on-connect, but this allows for being more
specific on how much to burst. Most people won't need to
change from the default 64k. Applies to all mountpoints -->
<burst-size>65535</burst-size>
</limits>
<authentication>
<!-- Sources log in with username 'source' -->
<source-password>hackme</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>hackme</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>
-->
<!-- This is the hostname other people will use to connect to your server.
It affects mainly the urls generated by Icecast for playlists and yp
listings. -->
<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>-->
<!-- setting this makes all relays on-demand unless overridden, this is
useful for master relays which do not have <relay> definitions here.
The default is 0 -->
<!--<relays-on-demand>1</relays-on-demand>-->
<!--
<relay>
<server>127.0.0.1</server>
<port>8001</port>
<mount>/mystream.ogg</mount>
<local-mount>/different.ogg</local-mount>
<on-demand>0</on-demand>
<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>
<burst-size>65536</burst-size>
<fallback-mount>/example2.ogg</fallback-mount>
<fallback-override>1</fallback-override>
<fallback-when-full>1</fallback-when-full>
<intro>/example_intro.ogg</intro>
<hidden>1</hidden>
<no-yp>1</no-yp>
<authentication type="htpasswd">
<option name="filename" value="myauth"/>
<option name="allow_duplicate_users" value="0"/>
</authentication>
<on-connect>/home/icecast/bin/stream-start</on-connect>
<on-disconnect>/home/icecast/bin/stream-stop</on-disconnect>
</mount>
<mount>
<mount-name>/auth_example.ogg</mount-name>
<authentication type="url">
<option name="mount_add" value="http://myauthserver.net/notify_mount.php"/>
<option name="mount_remove" value="http://myauthserver.net/notify_mount.php"/>
<option name="listener_add" value="http://myauthserver.net/notify_listener.php"/>
<option name="listener_remove" value="http://myauthserver.net/notify_listener.php"/>
</authentication>
</mount>
-->
<fileserve>1</fileserve>
<!-- set the mountpoint for a shoutcast source to use, the default if not
specified is /stream but you can change it here if an alternative is
wanted or an extension is required
<shoutcast-mount>/live.nsv</shoutcast-mount>
-->
<paths>
<!-- basedir is only used if chroot is enabled -->
<basedir>/usr/local/share/icecast</basedir>
<!-- Note that if <chroot> is turned on below, these paths must both
be relative to the new root, not the original root -->
<logdir>/var/log</logdir>
<webroot>/usr/local/share/icecast/web</webroot>
<adminroot>/usr/local/share/icecast/admin</adminroot>
<!-- <pidfile>/usr/local/share/icecast/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"/>
-->
<!-- Aliases: can also be used for simple redirections as well,
this example will redirect all requests for http://server:port/ to
the status page
-->
<alias source="/" dest="/status.xsl"/>
</paths>
<logging>
<accesslog>access.log</accesslog>
<errorlog>error.log</errorlog>
<!-- <playlistlog>playlist.log</playlistlog> -->
<loglevel>4</loglevel> <!-- 4 Debug, 3 Info, 2 Warn, 1 Error -->
<logsize>10000</logsize> <!-- Max size of a logfile -->
<!-- If logarchive is enabled (1), then when logsize is reached
the logfile will be moved to [error|access|playlist].log.DATESTAMP,
otherwise it will be moved to [error|access|playlist].log.old.
Default is non-archive mode (i.e. overwrite)
-->
<!-- <logarchive>1</logarchive> -->
</logging>
<security>
<chroot>0</chroot>
<!--
<changeowner>
<user>nobody</user>
<group>nogroup</group>
</changeowner>
-->
</security>
</icecast>
|
Ices2 config file:
| Code: |
<?xml version="1.0"?>
<ices>
<!-- run in background -->
<background>0</background>
<!-- where logs go. -->
<logpath>/var/log</logpath>
<logfile>ices.log</logfile>
<!-- size in kilobytes -->
<logsize>2048</logsize>
<!-- 1=error, 2=warn, 3=infoa ,4=debug -->
<loglevel>4</loglevel>
<!-- logfile is ignored if this is set to 1 -->
<consolelog>0</consolelog>
<!-- optional filename to write process id to -->
<pidfile>/var/log/ices.pid</pidfile>
<stream>
<!-- metadata used for stream listing -->
<metadata>
<name>Example stream name</name>
<genre>Example genre</genre>
<description>A short description of your stream</description>
<url>http://mysite.org</url>
</metadata>
<!-- Input module.
This example uses the 'oss' module. It takes input from the
OSS audio device (e.g. line-in), and processes it for live
encoding. -->
<input>
<module>oss</module>
<param name="rate">44100</param>
<param name="channels">2</param>
<param name="device">/dev/audio</param>
<!-- Read metadata (from stdin by default, or -->
<!-- filename defined below (if the latter, only on SIGUSR1) -->
<param name="metadata">1</param>
<param name="metadatafilename">test</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 a single instance doing live encoding at
low bitrate. -->
<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>hackme</password>
<mount>/mystream.ogg</mount>
<yp>0</yp> <!-- allow stream to be advertised on YP, default 0 -->
<!-- Live encoding/reencoding:
channels and samplerate currently MUST match the channels
and samplerate given in the parameters to the oss input
module above or the remsaple/downmix section below. -->
<encode>
<quality>0</quality>
<samplerate>44100</samplerate>
<channels>1</channels>
</encode>
<!-- stereo->mono downmixing, enabled by setting this to 1 -->
<downmix>1</downmix>
<!-- resampling.
Set to the frequency (in Hz) you wish to resample to, -->
<resample>
<in-rate>44100</in-rate>
<out-rate>44100</out-rate>
</resample>
</instance>
</stream>
</ices>
|
[/quote] |
|
| Back to top |
|
 |
karlH Code Warrior

Joined: 13 Jun 2005 Posts: 5476 Location: UK
|
Posted: Tue Jan 22, 2008 9:33 pm Post subject: |
|
|
remove/comment out the resample section and try again.
karl. |
|
| Back to top |
|
 |
Anonymous Guest
|
Posted: Tue Jan 22, 2008 9:55 pm Post subject: |
|
|
| I have tried that now, but it doesn't make any difference. |
|
| Back to top |
|
 |
karlH Code Warrior

Joined: 13 Jun 2005 Posts: 5476 Location: UK
|
Posted: Tue Jan 22, 2008 10:25 pm Post subject: |
|
|
I don't see the downmix being the issue. If the oss recording tools shows no added noise then I'm unsure. Configuration wise there's no issue but there could be driver issues but it's hard to say what those issues could be without at least some more info like a stream url.
karl. |
|
| Back to top |
|
 |
Anonymous Guest
|
Posted: Wed Jan 23, 2008 8:32 am Post subject: |
|
|
Both pc's are running on a local network.
I have also tried a Shoutcast server using Darkice as a source, with the exact same result.
I have also tried to adjust the sound volume of the microphone in the Mixer program, but it didn't make any difference.
I am using a Terratec 128i PCI soundcard, and the snd_solo driver. Maybe I should try another soundcard? |
|
| Back to top |
|
 |
karlH Code Warrior

Joined: 13 Jun 2005 Posts: 5476 Location: UK
|
Posted: Wed Jan 23, 2008 3:42 pm Post subject: |
|
|
The snd_solo driver would tend to indicate an ALSA driver not a OSS driver. Have you tried using an alsa input? you could be capturing something that isn't represented in the oss mixer.
karl. |
|
| Back to top |
|
 |
Anonymous Guest
|
Posted: Wed Jan 23, 2008 7:14 pm Post subject: |
|
|
I have now tried to use the alsa config file instead.
The input part now looks like this :
| Code: |
<input>
<module>alsa</module>
<param name="rate">44100</param>
<param name="channels">2</param>
<param name="device">hw:0,0</param>
<!-- Read metadata (from stdin by default, or -->
<!-- filename defined below (if the latter, only on SIGUSR1) -->
<param name="metadata">1</param>
<param name="metadatafilename">test</param>
</input>
|
When I start Ices, it shuts down again and leaves the following logfile:
| Code: |
[2008-01-23 20:01:33] INFO ices-core/main IceS 2.0.1 started...
[2008-01-23 20:01:33] EROR input/input_loop Couldn't initialise input module "alsa"
[2008-01-23 20:01:33] INFO ices-core/main Shutdown complete
|
Is alsa supported in Ices as default or do I have to enable it. If so, how do I do that?
I have installed it as a FreeBSD port. |
|
| Back to top |
|
 |
karlH Code Warrior

Joined: 13 Jun 2005 Posts: 5476 Location: UK
|
Posted: Wed Jan 23, 2008 10:29 pm Post subject: |
|
|
I missed the fact that it was a FBSD box, so ALSA input won't apply. The fact that wavrec records the signal fine would indicate that it's possible but I've not heard of anything that could cause this. Verify that wavrec is recording with the same samplerate and channels as you have specified in ices.
karl. |
|
| Back to top |
|
 |
Anonymous Guest
|
Posted: Thu Jan 24, 2008 5:58 pm Post subject: |
|
|
I have now changed the input from stereo to mono, and it seemed to solve my problem.
Apperently Wavrec also had the same problem, when I changed it to record stereo instead of mono.
Maybe a soundcard driver problem? |
|
| Back to top |
|
 |
karlH Code Warrior

Joined: 13 Jun 2005 Posts: 5476 Location: UK
|
Posted: Thu Jan 24, 2008 8:01 pm Post subject: |
|
|
The fact that wavrec shows the same problem on stereo would tend to indicate something more fundamental. Could be the driver, the actual hardware or maybe some unusual mixer setting affecting stereo only.
karl. |
|
| Back to top |
|
 |
|
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum
|
Powered by phpBB © 2001, 2002 phpBB Group subRebel style by ktauber
|