David,
Thanks for your reply, I appreciate you taking the time to try and help
me. While I do agree with you that a package repository would certainly
have made this a lot easier, I'm certainly up for solving dependencies.
As for simplifying the process, my biggest complaint is not knowing what
the dependencies are ahead of time. I'd just have to try and
configure/make over and over to find out that a package was missing,
install that and then try again. Just for curiosity... as redhat doesnt
seem to be, what is the preferred OS for liquidsoap?
Moving on..
I tried your recommendation of outputting to a file instead of the
SHOUTcast stream. I downloaded the mp3 to my local PC and played it and
the output was nearly flawless. So this does appear to indicate a
problem specifically with outputting to a SHOUTcast server. However,
when it went to start the next song in the playlist, it crashed due to
what appears to be a memory allocation error. Here is the output of what
I saw on the screen:
liquids...@albion [~]# ./start.sh
2010/03/04 16:59:43 >>> LOG START
2010/03/04 16:59:42 [protocols.external:3] Didn't find "ufetch"
2010/03/04 16:59:42 [protocols.external:3] Found "/usr/bin/wget"
2010/03/04 16:59:42 [main:3] Liquidsoap 0.9.2
2010/03/04 16:59:43 [video.converter:4] Couldn't find prefered video
converter: gavl
2010/03/04 16:59:43 [audio.converter:4] Using prefered samplerate
converter: libsamplerate
2010/03/04 16:59:43 [threads:3] Created thread "generic queue #1".
2010/03/04 16:59:43 [threads:3] Created thread "root" (1 total).
2010/03/04 16:59:43 [root:3] Waking up active nodes...
2010/03/04 16:59:43 [source:4] src_4570 gets up
2010/03/04 16:59:43 [source:4] mksafe gets up
2010/03/04 16:59:43 [source:4] src_4567 gets up
2010/03/04 16:59:43 [playlist(dot)pls:3] Loading playlist...
2010/03/04 16:59:43 [playlist(dot)pls:3] No mime type specified, trying
autodetection.
2010/03/04 16:59:43 [playlist parser:4] Trying application/rss+xml parser
2010/03/04 16:59:43 [parser.xml:5] Parsing failed: xml error: expected
root element
2010/03/04 16:59:43 [playlist parser:4] Trying application/xspf+xml parser
2010/03/04 16:59:43 [parser.xml:5] Parsing failed: xml error: expected
root element
2010/03/04 16:59:43 [playlist parser:4] Trying application/smil parser
2010/03/04 16:59:43 [parser.xml:5] Parsing failed: xml error: expected
root element
2010/03/04 16:59:43 [playlist parser:4] Trying application/xml parser
2010/03/04 16:59:43 [parser.xml:5] Parsing failed: xml error: expected
root element
2010/03/04 16:59:43 [playlist parser:4] Trying text/xml parser
2010/03/04 16:59:43 [parser.xml:5] Parsing failed: xml error: expected
root element
2010/03/04 16:59:43 [playlist parser:4] Trying video/x-ms-asf parser
2010/03/04 16:59:43 [parser.xml:5] Parsing failed: xml error: expected
root element
2010/03/04 16:59:43 [playlist parser:4] Trying audio/x-scpls parser
2010/03/04 16:59:43 [playlist parser:4] Trying audio/x-mpegurl parser
2010/03/04 16:59:43 [playlist(dot)pls:3] Playlist treated as format
audio/x-mpegurl
2010/03/04 16:59:43 [playlist(dot)pls:3] Successfully loaded a playlist
of 3090 tracks.
2010/03/04 16:59:43 [playlist(dot)pls:4] Activations changed: static=[],
dynamic=[mksafe:test(dot)mp3:test(dot)mp3].
2010/03/04 16:59:43 [source:4] safe_blank gets up
2010/03/04 16:59:43 [decoder:4] Trying WAV decoder for
"/home/liquidsoap/Brad Smith - Let's Go.mp3"...
2010/03/04 16:59:43 [safe_blank:4] Activations changed: static=[],
dynamic=[mksafe:test(dot)mp3:test(dot)mp3].
2010/03/04 16:59:43 [format.wav:5] open "/home/liquidsoap/Brad Smith -
Let's Go.mp3"
2010/03/04 16:59:43 [mksafe:4] Activations changed:
static=[test(dot)mp3:test(dot)mp3], dynamic=[].
2010/03/04 16:59:43 [playlist(dot)pls:5] Queue is empty!
2010/03/04 16:59:43 [playlist(dot)pls:5] Failed to prepare track: no file.
2010/03/04 16:59:43 [test(dot)mp3:4] Activations changed:
static=[test(dot)mp3], dynamic=[].
2010/03/04 16:59:43 [test(dot)mp3:4] Enabling caching mode (active source)
2010/03/04 16:59:43 [format.wav:5] Could not decode file.
2010/03/04 16:59:43 [root:3] Broadcast starts up!
2010/03/04 16:59:43 [decoder:4] Trying MP3 decoder for
"/home/liquidsoap/Brad Smith - Let's Go.mp3"...
2010/03/04 16:59:43 [format.mp3:5] open "/home/liquidsoap/Brad Smith -
Let's Go.mp3"
2010/03/04 16:59:43 [format.mp3:5] close "/home/liquidsoap/Brad Smith -
Let's Go.mp3"
2010/03/04 16:59:43 [decoder:3] Decoder MP3 chosen for
"/home/liquidsoap/Brad Smith - Let's Go.mp3".
2010/03/04 16:59:43 [playlist(dot)pls:4] Remaining: 0, queued: 0,
adding: 1323000 (RID 1)
2010/03/04 16:59:43 [mksafe:3] Switch to safe_blank.
2010/03/04 16:59:43 [safe_blank:4] Activations changed:
static=[mksafe:test(dot)mp3:test(dot)mp3],
dynamic=[mksafe:test(dot)mp3:test(dot)mp3].
2010/03/04 16:59:43 [playlist(dot)pls:4] Remaining: 0, queued: 1323000,
taking: 1323000
2010/03/04 16:59:43 [format.mp3:5] open "/home/liquidsoap/Brad Smith -
Let's Go.mp3"
2010/03/04 16:59:43 [playlist(dot)pls:3] Prepared "/home/liquidsoap/Brad
Smith - Let's Go.mp3" (RID 1).
2010/03/04 16:59:43 [mksafe:3] Switch to playlist(dot)pls with transition.
2010/03/04 16:59:43 [safe_blank:4] Activations changed: static=[],
dynamic=[mksafe:test(dot)mp3:test(dot)mp3].
2010/03/04 16:59:43 [playlist(dot)pls:4] Activations changed:
static=[mksafe:test(dot)mp3:test(dot)mp3],
dynamic=[mksafe:test(dot)mp3:test(dot)mp3].
2010/03/04 17:05:02 [decoder:4] Trying WAV decoder for
"/home/liquidsoap/Summer Channel feat. Fisher - A Thousand Miles
(Burufunk Remix).mp3"...
2010/03/04 17:05:02 [format.wav:5] open "/home/liquidsoap/Summer Channel
feat. Fisher - A Thousand Miles (Burufunk Remix).mp3"
2010/03/04 17:05:02 [format.wav:5] Could not decode file.
2010/03/04 17:05:02 [decoder:4] Trying MP3 decoder for
"/home/liquidsoap/Summer Channel feat. Fisher - A Thousand Miles
(Burufunk Remix).mp3"...
2010/03/04 17:05:02 [format.mp3:5] open "/home/liquidsoap/Summer Channel
feat. Fisher - A Thousand Miles (Burufunk Remix).mp3"
2010/03/04 17:05:02 [format.mp3:5] close "/home/liquidsoap/Summer
Channel feat. Fisher - A Thousand Miles (Burufunk Remix).mp3"
2010/03/04 17:05:02 [decoder:3] Decoder MP3 chosen for
"/home/liquidsoap/Summer Channel feat. Fisher - A Thousand Miles
(Burufunk Remix).mp3".
terminate called after throwing an instance of 'std::bad_alloc'
what(): St9bad_alloc
./start.sh: line 2: 13082 Aborted (core dumped)
liquidsoap
'set("log.level",5)output.file.mp3(bitrate=128,"test.mp3",mksafe(playlist("playlist.pls")))'
liquids...@albion [~]#
and the liquidsoap -f output for both files:
Request resolved.
title="Let's Go"
temporary="false"
track="0"
artist="Brad Smith"
rid="0"
initial_uri="/home/liquidsoap/Brad Smith - Let's Go.mp3"
year="2005"
status="ready"
filename="/home/liquidsoap/Brad Smith - Let's Go.mp3"
comment="Crescent Records - RBS039 - www.djbradsmith.com"
genre=""
album="Single"
Computing duration: 328.93 sec.
TagLib: ID3v2.4 no longer supports the frame type RVAD. It will be
discarded from the tag.
Request resolved.
title="A Thousand Miles (Burufunk Remix) - 9A"
temporary="false"
track="0"
artist="Summer Channel feat. Fisher"
rid="0"
initial_uri="/home/liquidsoap/Summer Channel feat. Fisher - A Thousand
Miles (Burufunk Remix).mp3"
year="0"
status="ready"
filename="/home/liquidsoap/Summer Channel feat. Fisher - A Thousand
Miles (Burufunk Remix).mp3"
comment=""
genre="Blues"
album=""
Computing duration: 502.20 sec.
I believe I am using the latest version of ocaml-cry, as I just
downloaded it a few days ago:
ocaml-cry-0.1.1
I'd be curious how I could try the ocaml-shout instead of ocaml-cry to
see if perhaps the newer ocaml-cry is causing this issue.
Thanks
Max
On 3/3/2010 12:21 PM, David Baelde wrote:
> Hi Maxwell,
>
> I'm sorry to hear about your unusually bad experience. Let's try to
> get it straightened out.
>
> On Tue, Mar 2, 2010 at 10:56 PM, Maxwell Rathbone
> <[email protected]> wrote:
>
>> Took me about
>> half a day to finally get LiquidSoap to compile properly *without* the
>> following packages:
>> ocaml-ogg
>> ocaml-vorbis
>> ocaml-speex
>> ocaml-theora
>> ocaml-faac
>> ocaml-faad
>>
> I know liquidsoap has a lot of dependencies, and I hope that you
> didn't spend too much of your time on the dependencies that you didn't
> actually need. The packages listed above may not be useful to you. In
> any case, if you have remarks on how to make the build system simpler,
> we'd be happy to hear them. My view is that our build system is
> standard and can't be enhanced much more, the solution to its
> complexity is to use a package manager, but unfortunately we don't
> have a package maintainer for redhat-based distributions.
>
>
>> If I check any of the files in this list using the Linux command 'file'
>> here is the result I see:
>> /home/liquidsoap/Brad Smith - Pump It Up.mp3: Audio file with ID3
>> version 22.0 tag, MP3 encoding
>>
> It's a good idea to check that. An even better thing is to check using
> liquidsoap itself: "liquidsoap -r<yourfile.mp3>" will use the normal
> decoding checks of liquidsoap and thus give a real indication on how
> that file would play in liquidsoap.
>
>
>> It is important to know that I currently use sc_trans_posix from
>> shoutcast.com to stream at 128kbps to the same IP above, however to a
>> different port. The sc_trans_posix application isa ble to stream
>> consistently and flawlessly.
>>
> A difference is that liquidsoap always decodes and re-encodes files.
> This is the cost of entry to its extended possibilities. But the CPU
> consumption shouldn't make a difference on your machine. The other
> factor is bandwidth, and if another tool can stream perfectly,
> liquidsoap should also be able to do it. Still, another way to check
> that network isn't the issue is to stream to a file: liquidsoap
> 'output.shoutcast.mp3(...,output.file.mp3(bitrate=128,"/tmp/test.mp3",mksafe(...)))'.
>
>
>> Now when I execute my startup script for liquidsoap, here is a s nippet
>> of the output I see in the console:
>> liquids...@albion [~]# ./start.sh
>> 2010/03/02 23:24:23>>> LOG START
>> [...]
>> 2010/03/02 23:24:23 [root:3] Broadcast starts up!
>> 2010/03/02 23:24:23 [mksafe:3] Switch to safe_blank.
>> 2010/03/02 23:24:23 [playlist(dot)pls:3] Prepared "/home/liquidsoap/Bee
>> Gees - Stayin Alive (Ultimix Remix).mp3" (RID 1).
>> 2010/03/02 23:24:23 [mksafe:3] Switch to playlist(dot)pls with transition.
>>
>> Now when I tune in to the SHOUTcast stream with Winamp, I hear it
>> 'hiccup' about once every 10-15 seconds. It sounds like a blip for a
>> fraction of a second, and the audio pauses for that brief fraction of a
>> second and then continues. It does not appear to matter if I specify a
>> bitrate to stream at in the startup script or not. The end result is the
>> same.
>>
> The hiccup you hear could be a result of switching from the playlist
> to blank (that's what mksafe does when the playlist is unavailable)
> but this would only happen between tracks and you'd see more of those
> "Switch to safe_blank" in the logs so I believe it's not the problem
> here.
>
>
>> I've read on the mailing list that I should set my log level to 5 to
>> collect further information. This requires me to change the format of my
>> startup script to something like this:
>> liquidsoap 'set("log.level",5);set("root.sync",
>> false);output.shoutcast.mp3(bitrate=128,host="65.110.47.202", port =
>> 8008, password = "password", mksafe(playlist("playlist.pls")))'
>>
> Setting root.sync to false is by no means necessary to get more
> detailed logs. It will result in sending data too quickly to the
> shoutcast server, which is unwanted.
>
>
>> When I do this, I'm receiving segmentation faults. If I run the script
>> several times in a row, maybe one out of 6 or 7 tries it will 'stick'
>> and start streaming instead of crashing. I did find that if I remove the
>> set("root.sync", false) part, it is much more stable and does not
>> segmentation faul, however I'm still stuck with the skipping/hiccup problem.
>>
> This is interesting. I've had segfaults recently when doing crazy
> experiments, so I wasn't too worried. In your case this is kind of
> bad. If root.sync creates the difference I'd be worried about our
> library sending data to shoutcast (ocaml-cry) but it is pure OCaml
> code which should never segfault. Which version of ocaml-cry are you
> using?
>
>
>> Here is the console output I see without the root.sync false option:
>> [...]
>>
> Unfortunately, nothing informative in that log.
>
> I guess the conclusion of my long reply is to output in a file to find
> out if the problem is input or output related. If a file works fine
> then it might be a problem with sending to shout (ocaml-cry is
> relatively recent, improved on its predecessor ocaml-shout, but might
> not have been tested that much with shoutcast). I'd also be interested
> to hear if you can get segfaults with a different output.
>
> Cheers,
> --
> David
>
------------------------------------------------------------------------------
Download Intel® Parallel Studio Eval
Try the new software tools for yourself. Speed compiling, find bugs
proactively, and fine-tune applications for parallel performance.
See why Intel Parallel Studio got high marks during beta.
http://p.sf.net/sfu/intel-sw-dev
_______________________________________________
Savonet-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/savonet-users