I have a server running asterisk 18, and I need to stream a Confbridge room to a ShoutCast server. I tried using asterisk’s Ices application, but I ended giving up because Asterisk is sayd to require Ices2, and Ices2 cannot stream in MP3 apparently due to some licensing issues.
I then tried to use MixMonitor to record the conference and ffmpeg to simultaneously stream the output file to the ShoutCast server. Here, the problem was that MixMonitor doesn’t make the file available for use, so FFmpeg complains about corrupted Stream.
I’m stuck now, so I come here to ask for help from you guys to accomplish this task. Sorry if this is a silly question, but I have less than a month as an Asterisk administrator!
Please note that I haven’t personally used ARI, let alone this feature.
MP3 isn’t a particularly sensible format for a voice conference, in the first place.
That would depend on the file format. If you use something, like .wav, which has meta data, that meta data is only going to be correctly updated just before the file is closed. However, if you write in a raw format, the file should always be valid, if somewhat behind real time due to user space buffering. SImilarly, I doubt that ffmpeg could cope with an input file whose meta data was continually changing.
I couldn’t find a clear explanation of this constraint, but I suspect it is because MP3 is a music quality codec, so there is a presumption that someone using MP3 is transmitting music for which performing rights payments are required.
I mentioned this information because I remember reading something about it somewhere a few years ago, but a quick search revealed to me that the truth is that Ices2 can’t stream mp3 simply because the developers don’t want to! Twice as frustrating! here’s what they say:
You mean, if I record with MixMonitor without using wav format, and pass the .raw file to ffmpeg, will that work?
As for it being not exactly realtime, i’m already working on the possibility of some delay, so this is not a problem. By the way, my script is already set to wait 2 minutes after recording starts, just to play on the safe side.