-
Notifications
You must be signed in to change notification settings - Fork 30
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
deefuzzer stops immediately after starting #25
Comments
Hi! |
Thanks for a quick response. |
You're welcome. EDIT : sorry GitHub makes a wrong parsing. I meant |
To ease things out, my icecast.xml:
I've removed that second m3u tag and deefuzzer didn't shutdown immediately after starting - it stayed as a working process. Turned out my media dir was wrong. After I corrected the path deefuzzer returned to its previous behaviour, shutdown immediately after startup and no error in log.
|
Could you try with |
Tried but to no effect. Behaviour is the same and both icecast's error.log and deefuzzer.log give the same lines. |
Based on your symptoms and the log entries, I suspect that you might be having issues with your MP3 files. Specifically, icecast (and all other streaming services) work best with a constant bit rate stream of data. By default, most MP3 encoding software uses a variable bit rate (VBR). What I've needed to do for all my files for safety is to load them up into Audacity and re-export as constant bit rate files (128kbps in my case). These seem to work fine. Can you confirm that the file(s) you are attempting to stream are not VBR? |
Yup, mine are cbr files. I don't use vbr precisely because they tend to cause problems. |
deefuzzer simply puts a stream of bytes from the file to the icecast mount point. Icecast has any needed encoders built in (it wouldn't compile without it). You'd only need a decoder/encoder if you need to transform that stream during transit. grasps at the latest straw Did you make sure that (a) all the files are in the same format (ie, 128kbps MP3s), and (b) the station definition matches the encoding for those files? The log is saying that icecast is attempting to read the block, getting either nothing or an end-of-stream, and bailing. This is either a miscommunication on the number of bytes being sent, or deefuzzer is dying when it attempts to send the data. On second thought, have you tried stripping all the MP3 tags and putting back only the artist and title? On icecast streams, the metadata is included over the data connection - if there's an issue with the tags it might be making the connection drop there as well. |
The thing is, no file in particular is rejected - all or any of them are. This looks like deefuzzer is dying when it attempts to send the data, as it actually is dying - the process disappears with no error in log. I'm very grateful for all your wonderful help but I don't want to drag you around solving stuff which may end up not being deefuzzer's fault. So for now I'll do one thing I can - try reinstalling all of this from scratch. I'll let you know how it goes. |
I've never tried deefuzzer on a Arch indeed (I'm most a Debian guy) nor on Icecast 2.4 I realize... |
No idea no Arch. I'm running on Icecast 2.4 tho - it's working fine for me. On Thu, Nov 20, 2014 at 7:07 PM, Guillaume Pellerin <
|
Yes, Icecast 2.4 is OK. |
Sorry for a late update. |
Silly question - are you running the latest release, or the dev branch? On Mon, Dec 1, 2014 at 10:41 AM, timecage notifications@github.com wrote:
|
I've installed through pip. I'll try the source then. |
Yeeaah alright. Anyway thanks a billion, really! This is some quality user support you got here. |
Do you happen to remember (or note) the version in pip? On Mon, Dec 1, 2014 at 11:24 AM, timecage notifications@github.com wrote:
|
Reinstalled it to check: |
Thanks a lot @achbed. |
I hate to gravedig, but I'm getting the same symptoms as this issue today. I've tried both cloning from GitHub as well as installing via pip, neither work. Each time I run deefuzzer using the following .xml configuration file I get the following console + station log output. .xml
Console output
station.log
|
Hi @ckhawks, |
Hi @ckhawks, |
I am having the same issue as @ckhawks, here is my config here: <deefuzzer>
<log>/deefuzer_station.log</log>
<maxretry>4</maxretry>
<stationdefaults>
<control>
<mode>0</mode>
<port>16001</port>
</control>
<jingles>
<dir>/home/ubuntu/jingles</dir>
<mode>0</mode>
<shuffle>1</shuffle>
</jingles>
</stationdefaults>
<station>
<control>
<mode>0</mode>
<port>16001</port>
</control>
<infos>
<description>My personal best funky playlist ever!</description>
<genre>Various Funk Groove</genre>
<name>My best funky station</name>
<short_name>My_station</short_name>
<url>http://parisson.com</url>
</infos>
<jingles>
<dir>/path/to/jingles</dir>
<mode>0</mode>
<shuffle>1</shuffle>
</jingles>
<media>
<bitrate>96</bitrate>
<source>./the_playlist.m3u</source>
<format>mp3</format>
<ogg_quality>4</ogg_quality>
<samplerate>48000</samplerate>
<shuffle>0</shuffle>
<voices>2</voices>
</media>
<record>
<dir>/path/to/archives</dir>
<mode>0</mode>
</record>
<relay>
<author>Unknown</author>
<mode>0</mode>
<url>http://127.0.0.1:8000/telecaster_live.mp3</url>
</relay>
<feeds>
<mode>0</mode>
<rss>1</rss>
<json>0</json>
<playlist>1</playlist>
<dir>/var/www/rss</dir>
<enclosure>0</enclosure>
<media_url>http://localhost/media/</media_url>
</feeds>
<server>
<host>EXTERNAL_IP_ADDRESS</host>
<mountpoint>monitor</mountpoint>
<port>8000</port>
<public>0</public>
<sourcepassword>hackme</sourcepassword>
<type>icecast</type>
<appendtype>0</appendtype>
</server>
<twitter>
<key>your access token key</key>
<mode>0</mode>
<secret>your acess token secret key</secret>
<tags>parisson deefuzzzer</tags>
</twitter>
</station>
</deefuzzer> environment info here
icecast config: <icecast>
<!-- location and admin are two arbitrary strings that are e.g. visible
on the server info page of the icecast web interface
(server_version.xsl). -->
<location>Earth</location>
<admin>icemaster@localhost</admin>
<!-- IMPORTANT!
Especially for inexperienced users:
Start out by ONLY changing all passwords and restarting Icecast.
For detailed setup instructions please refer to the documentation.
It's also available here: http://icecast.org/docs/
-->
<limits>
<clients>100</clients>
<sources>10</sources>
<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 with 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>
<!-- 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>
-->
<!-- 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>
-->
<!-- 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. You MUST configure it properly for YP listings to work!
-->
<hostname>localhost</hostname>
<!-- You may have multiple <listener> elements -->
<listen-socket>
<port>8000</port>
<!-- <bind-address>127.0.0.1</bind-address> -->
<!-- <shoutcast-mount>/stream</shoutcast-mount> -->
</listen-socket>
<!--
<listen-socket>
<port>8080</port>
</listen-socket>
-->
<!--
<listen-socket>
<port>8443</port>
<ssl>1</ssl>
</listen-socket>
-->
<!-- Global header settings
Headers defined here will be returned for every HTTP request to Icecast.
The ACAO header makes Icecast public content/API by default
This will make streams easier embeddable (some HTML5 functionality needs it).
Also it allows direct access to e.g. /status-json.xsl from other sites.
If you don't want this, comment out the following line or read up on CORS.
-->
<http-headers>
<header name="Access-Control-Allow-Origin" value="*" />
</http-headers>
<!-- Relaying
You don't need this if you only have one server.
Please refer to the config for a detailed explanation.
-->
<!--<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>8080</port>
<mount>/example.ogg</mount>
<local-mount>/different.ogg</local-mount>
<on-demand>0</on-demand>
<relay-shoutcast-metadata>0</relay-shoutcast-metadata>
</relay>
-->
<!-- Mountpoints
Only define <mount> sections if you want to use advanced options,
like alternative usernames or passwords
-->
<!-- Default settings for all mounts that don't have a specific <mount type="normal">.
-->
<!--
<mount type="default">
<public>0</public>
<intro>/server-wide-intro.ogg</intro>
<max-listener-duration>3600</max-listener-duration>
<authentication type="url">
<option name="mount_add" value="http://auth.example.org/stream_start.php"/>
</authentication>
<http-headers>
<header name="foo" value="bar" />
</http-headers>
</mount>
-->
<!-- Normal mounts -->
<!--
<mount type="normal">
<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>
<public>1</public>
<authentication type="htpasswd">
<option name="filename" value="myauth"/>
<option name="allow_duplicate_users" value="0"/>
</authentication>
<http-headers>
<header name="Access-Control-Allow-Origin" value="http://webplayer.example.org" />
<header name="baz" value="quux" />
</http-headers>
<on-connect>/home/icecast/bin/stream-start</on-connect>
<on-disconnect>/home/icecast/bin/stream-stop</on-disconnect>
</mount>
-->
<!--
<mount type="normal">
<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"/>
<option name="headers" value="x-pragma,x-token"/>
<option name="header_prefix" value="ClientHeader."/>
</authentication>
</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>/var/log/icecast2</logdir>
<webroot>/usr/share/icecast2/web</webroot>
<adminroot>/usr/share/icecast2/admin</adminroot>
<!-- <pidfile>/usr/share/icecast2/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" destination="/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="/" destination="/status.xsl"/>
<!-- The certificate file needs to contain both public and private part.
Both should be PEM encoded.
<ssl-certificate>/usr/share/icecast2/icecast.pem</ssl-certificate>
-->
</paths>
<logging>
<accesslog>access.log</accesslog>
<errorlog>error.log</errorlog>
<!-- <playlistlog>playlist.log</playlistlog> -->
<loglevel>3</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> the only mp3 file in the playlist ./the_playlist.m3u is a 320kbps with all ID3 tags removed using id3v2. the m3u file repeats the same file three times in a row. here is my log output when running deefuzzer
I hope you can help me get it up and running. thanks. |
Sorry, I am (very) late @clarkenheim ! I cannot reproduce the bug with version 0.7.3 and :
Could you please retry? |
@clarkenheim also try to kick out |
Got into configuring deefuzzer to play along with icecast2 on Arch Linux. I'm down to a point where it starts without error but shuts down immediately after, also without any error.
I'd presume it has something to do with mp3s but I can't begin to know how to debug this.
Here's my xml config:
And here's log fragment:
Of course 00.00.00.000 stands or my proper public ip address.
Could you please help me with this? There is no other tool like deefuzzer and I desperately need to make it work.
The text was updated successfully, but these errors were encountered: