[Icecast] Higher quality narrowband streaming options
Geoff Shang
geoff at QuiteLikely.com
Wed Aug 1 20:50:37 UTC 2012
Hi,
Up until now, I've been providing narrowband streams at 24kbps MP3. We've
reluctantly been using MP3 instead of say Ogg Vorbis due to wider
support.
But it's getting to the point where low bitrate MP3 doesn't really cut it
anymore. With technologies like AACPlus out there in common usage, people
have come to expect better and one can hardly blame them.
So I thought I'd start a thread on low bitrate streaming in order to find
out what people are using and how.
There seem to be two issues. The first is which format to use and the
second is how to go about transcoding into said format.
Right now we're using StreamTranscoderv3 to do our transcoding. It can
turn around our broadband stream as a narrowband stream without any
intervention. I've successfully used it to turn around streams as MP3 and
Ogg Vorbis. It's also meant to support AAC and AACPlus, but I've not
managed to figure out how to enable this under Linux or how I would
particularly get it to be able to do AACPlus.
I considered going so far as to try Nullsoft's sc_trans v2 to encode
AACPlus, but it seems it cannot connect to an existing stream and relay
it, it can only have a stream connect to it. I don't see how I can get
our existing Icecast stream to be relayed to sc_trans as Icecast does not
do push relaying, so this option would appear to be out.
I also took a brief look at Liquid Soap for doing this. It would appear
that it can, but it looks like a lot of work to deploy for a relatively
simple task. Still, I'd consider it if it will do the job.
This of course leads to the broader question of which format to use. For
us, the chief concern is device support. While a lot of people get around
this issue by writing their own apps with built-in decoders, this isn't a
direction I'd particularly want to go in unless there's something out
there that's fairly generic and can be easily customisable. Our station
is a volunteer outfit with no budget, so my strong preference would be for
us to use a natively supported format so that it "just works".
As mentioned, I'm looking to depricate MP3. It's really not possible to
get 44.1 kHz MP3 under 56 kbps, and that only in mono. This isn't really
"narrow" enough for my tastes.
I'm not a big expert on AAC, but it seems to me that plain AAC (no
"plus") doesn't really offer much over and above MP3. Certainly, samples
I've heard of 56 kbps AAC streams at 44.1 kHz stereo are rolled off to 5
kHz audio, making it sound worse than MP3 at the same rate using 22.05 kHz
samples. But there's so many AAC parameters that I'm by no means an
expert on this.
>From the little I've seen, the favoured option for lower bitrate streaming
seems to be AACPlus. And it's not surprising given how good it sounds.
I'm not so sure about device support though, and encoding it is a bit of
an issue (see above). There is libaacplus, but streamTranscoderv3 doesn't
*appear* to support it. I think Liquid Soap might though. There's also
something called AACPlusEnc but I can't seem to get to its home page.
While we're considering non-free options, Windows Media Audio would seem
to be out due to the desire to encode under Linux, and people seem to be
moving away from Real Audio.
Of course, I'd prefer to use something open if people can actually listen
to it. There would appear to be the following options:
Ogg Vorbis: Using oggenc with libvorbis 20100325 (1.3.1) at quality -1
with a 44.1 kHz mono source, I can get the bit rate down to about 34
kbps. Stereo is more like 40 kbps. It actually sounds pretty good.
Maybe if I took it down to 32 kHz
it would go a little ower, or perhaps the quality -2 mode that at least
was available in the aoTuV encoder would get it lower with perhaps a
little more quality loss. I've not actually tried lower bitrate stuff in
either vorbis encoder for some time.
Encoding Ogg Vorbis won't present any problems. My concern about Ogg
Vorbis is support in mobile devices. I know that iOS devices don't
support it natively. Do any stream players for iOS support it, like say
Tunein Radio? I believe Android devices do. Don't know about other
devices used on the go.
The other open option I can think of is Opus. I've not put it through its
paces, I really should. But it aims at least to be good for this sort of
thing. But I'm really not at all sure what software support is like yet,
either for encoding or listening. Anyone know?
Are there any other options that are worth looking at?
Geoff.
More information about the Icecast
mailing list