Help - Search - Members - Calendar
Full Version: Audio Streaming Codecs - discussion
Hydrogenaudio Forums > Hydrogenaudio Forum > General Audio
gameplaya15143
Introduction:
I found myself in shock a minute ago. I did a search (google) for "audio streaming codecs". Hydrogenaudio was nowhere to be seen. dry.gif

It's time to change that. cool.gif

Objective of this thread:
To discuss the advantages and disadvantages of the available codecs that can be used for audio streaming, (and probably streaming servers too) in terms of quality vs. bitrate, compatibility, and ease of use (for listeners as well as the servers).

I'm sure there are many members of HA who have opinions and experiences to share.

Streaming Codecs to be discussed:
mp3, ogg (vorbis), rm, wma, aac, aacp, mp3pro - (please mention any that I missed)


I hope to get some input before i chime in with my biased opinion. wink.gif

Note: I am NOT asking for help with how to stream audio. I am merely hoping to spark a good and informative discussion about audio streaming, which HA seems to be sorely lacking.

(I didn't think this belonged in 'MPEG Systems/Streaming' since that seemed to be just for mpeg stuff)

edit: added mp3pro to codec list
John Doe
I don't have much to say about that topic - but I found 3 Threads that might be of some interest!


HA Thread: Streaming Formats

HA Thread: Codecs for streaming lectures

Wikipedia: Internetstreaming

It's a good idea to discuss that: Needs some research for the HA Wiki. Topic isn't covered, yet.


JD


/edit: typo
gameplaya15143
Thanks John Doe, all useful info is welcome smile.gif

moving on...

My favorite audio streaming codec is OGG VORBIS

Advantages:
-Patent Free, AFAIK it is the only patent free one.
-Quality, listening tests show vorbis to be on par or better than most other codecs
-Works on all platforms! open specifications, decoders and encoders can be made for everything.
-There are already great free tools out there for use with streaming in vorbis like... Oddsock (oddcast), Icecast (server),
JOrbis Player (java vorbis player)

Disadvantages:
um... huh.gif I can't think of any.


If I missed anything, speak up smile.gif
Please share your preferences and experiences with audio streaming.
Artemis3
My experience with streaming/low bitrate encoding is mostly with mp3 and vorbis.

Mp3 is the universal format, plays everywhere; and its cbr mode can be used with almost any streaming software. In short, forget stereo if under 128kbps. Supposedly mp3pro is better for this, but its non standard (you might as well switch formats). There is also intensity stereo which is nice at these bitrates, but that means using a fraunhofer codec, at least until lame v4 becomes reality.

Possible candidates would be 128kbps stereo @ 44khz, 64kbps mono at 44khz, 32kbps mono at 22khz, 16 kbps mono at 11khz.

Aac is the format that corporations developed to overcome mp3 limitations; and like mp3, you are supposed to pay fees to use it. It seems to have many features to help low bitrate streaming; but its not as widely supported in players or streaming software as mp3. Quality has the potential to be the best at such bitrates.

Vorbis is good, maybe not as good as aac, but its much better than mp3. And so far, no fees!. You need something like icecast2 to stream it..

You can use quality -1 at 44khz stereo (64kbps) / mono (48kbps); 22khz stereo (32kbps) / mono (24kbps); 11khz mono (12kbps); and even 8khz mono (8kbps) for speech which i find better than speex (think land line vs mobile).

Wma is microsoft only and sounds ugly. I don't even know how you can stream that, surely with some microsoft bloated tool, asf thingie, media center etc.

If you need something to play either mp3 or vorbis streams, you can use the freedom audio java applet, or just tell users to download vlc, foobar2k, winamp, etc.

P2P streaming is even more fun, try peercast and streamerp2p.
woody_woodward
Interesting subject. There probably isn't a single 'correct' solution. Too many varibles: Type of program material, available bandwidth, popularity of media format. In general my preferences would be RealAudio for bit-rates up to about 50k, Windows Media for bit-rates up to about 100k. For bit-rates higher than that, I have no preference. Should be able to get good sound from just about any codec. I am currently using Real Audio for a dial-up audience. I'm happy and the audience is happy. Also, for what it's worth, the BBC streams in Real and Windows Media. Their 'Listen Again' archives are Real Audio only.

marq_
I have a question: what are the possibilities of embedding music to websites?

This in a way, that you don't need to launch any program for them - no popup applets and the like (only a modest and coolly designed buttun in some corner to turn it off biggrin.gif ). Are there any "javascript vorbis decoders"?
Hollunder
Hey Folks

i was thinking about opening a new topic but i think it fits here.

Some guys are starting a webradio and are going to use mp3pro at 96kbps, as they say as a compromise between quality and compatiblity with slow connections.
My problem at this point is that i just can't listen to mp3pro, it just hurts my ears.
Most of their sources are mp3 so the the best codec to use for streaming may be mp3 (to avoid transcoding).

the compare:
I made a quick ABX on a single track between Lame3.97b CBR 64 Kbps and mp3pro @64Kbps (because this was the only bitrate i could enc mp3pro. Sidequestion, if someone knows a way to enc mp3pro at 96Kbps without buying something, would be nice is one could tell me)
I was suprised that Lame sounded far better than mp3pro at this low bitrate and therefore I'm not sure if my ABX was done in the correct way.
What I did was taking my flac as source, made the mp3 and mp3pro out of it and made a .wav out of each of them to ABX them in Foobar and abchr1.1beta2.
Is there a need to ABX them out-of-codec (per use of java-abx) and is there a way to do this with mp3pro?

I also did a ABX between ogg at 64Kbps CBR (somehow, audioidentifier reports it as 59Kbps, used the "normal" Xiph.org codec, anyway the stuff u get by using dbpoweramp) and the mp3 and mp3pro version of that song. The difference between the mp3 and ogg was quite small but audible, mp3 sounded a bit better to my ears.



If i had to decide for myself (and my sources would be mp3) I would simply take the mp3 codec because there would be no need of transcoding and no need for the listener get the mp3pro codec. I'm quite sure most of them will use winamp where mp3pro is not a part of the package and many won't make the effort of installing that codec so the would suffer even more from that crap.
I can't just tell them to take mp3 (maybe I should, anyway) without having done some tests.

uhm.. unsure.gif sorry for my confusing text, hope someone can help anyway
Ivan Dimkovic
There will be a big public listening test of 48 kbps codecs soon (prolly in little bit more than a month, after 48 kbps AAC test)

So, the goal of this test is exactly to determine how do codecs at 48 kbps behave - from what I know, main competitors will most likely be: HE-AAC (maybe v2), mp3Pro, Vorbis, WMA and maybe RealAudio.

[JAZ]
QUOTE(marq_ @ Feb 1 2006, 11:32 AM)
I have a question: what are the possibilities of embedding music to websites?

This in a way, that you don't need to launch any program for them - no popup applets and the like (only a modest and coolly designed buttun in some corner to turn it off  biggrin.gif ). Are there any "javascript vorbis decoders"?
*



Do you know what javascript is? Probably no, because else, i wonder how do you expect it to do anything similar to an audio decoder, or even send audio to the soundcard.

Some websites use flash for this, others java, and maybe there are activeX too. But no "scripts".
karlH
QUOTE(Artemis3 @ Feb 1 2006, 07:01 AM)
Vorbis is good, maybe not as good as aac, but its much better than mp3. And so far, no fees!. You need something like icecast2 to stream it..

You can use quality -1 at 44khz stereo (64kbps) / mono (48kbps); 22khz stereo (32kbps) / mono (24kbps); 11khz mono (12kbps); and even 8khz mono (8kbps) for speech which i find better than speex (think land line vs mobile).


a correction, for stereo, quality 0 is ~64kbps, -1 is around 48kbps with -2 around 32kbps. lesser samplerate and/or mono will translate to less bitrate.

karl.
woody_woodward
QUOTE(Hollunder @ Feb 1 2006, 06:46 AM)
Sidequestion, if someone knows a way to enc mp3pro at 96Kbps without buying something,  would be nice if one could tell me

Musicmatch can do it. Has a full range of MP3PRO, both CBR and VBR. It is a free download. You don't have to buy tracks from them to play or encode existing files.

http://www.musicmatch.com/download/plus/jukebox_intro.htm

Woody
woody_woodward
QUOTE(woody_woodward @ Feb 1 2006, 09:39 AM)
QUOTE(Hollunder @ Feb 1 2006, 06:46 AM)
Sidequestion, if someone knows a way to enc mp3pro at 96Kbps without buying something,  would be nice if one could tell me

Musicmatch can do it. Has a full range of MP3PRO, both CBR and VBR. It is a free download. You don't have to buy tracks from them to play or encode existing files.

http://www.musicmatch.com/download/plus/jukebox_intro.htm

Woody
*


I forgot to add that Musicmatch can also properly decode MP3PRO files. Could be important to some.
Hollunder
thanks a lot woody, it would have never come to my mind that musicmatch is of any use


Does anybody know of a difference between ABXing the files converted to .wav and using the original codec (if possible)? I know that this topic is not about ABXing, but it's important for the decission of which codec to use for the stream.

Edit: Sorry, it might fit better in the listening test section but i'll post my decission here afterwards
marq_
@Hollunder: if you mean that you either decode the lossy files to wav's and then ABX -or- ABX the lossy encoded files - there's no difference.

QUOTE
Do you know what javascript is? Probably no, because else, i wonder how do you expect it to do anything similar to an audio decoder, or even send audio to the soundcard.

Some websites use flash for this, others java, and maybe there are activeX too. But no "scripts".


It seems I don't; but on trying to have a backround music am I then dependent on the users system? (you have to install Java and/or Flash, but js is run by the browser)
Hollunder
yeah, you're right, there is no difference in general but in this special case there is. mp3pro can only be encoded by mp3pro codec but decoded by any mp3 codec, so if you decode it back to wav with a program that's using a 'normal' mp3 codec instead of a mp3pro codec the difference is huge. That's what I accidentaly did and led to the surprising result of lame being better at 64Kbps than mp3pro, of course because of the wrong decoding (no SBR, no highs).


to my case: I did only a very short abx but I heard no significant difference between mp3, mp3pro and ogg at 96Kbps until now.
Nayru
QUOTE(woody_woodward @ Feb 1 2006, 04:22 AM)
Interesting subject.  There probably isn't a single 'correct' solution.  Too many varibles:  Type of program material, available bandwidth, popularity of media format.  In general my preferences would be RealAudio for bit-rates up to about 50k, Windows Media for bit-rates up to about 100k.  For bit-rates higher than that, I have no preference.  Should be able to get good sound from just about any codec.  I am currently using Real Audio for a dial-up audience.  I'm happy and the audience is happy.  Also, for what it's worth, the BBC streams in Real and Windows Media.  Their 'Listen Again' archives are Real Audio only.
*



RealAudio using which codec? There are eight.

In general with real audio you should avoid using the sipro codec as ffmpeg/vlc/etc can not play it. Cook or AAC should be fine for compatibility. The BBC streams used Cook last time I checked. I don't know how good their AAC coder is, and I'm not aware of any listening tests of the cook codec either.
gameplaya15143
laugh.gif i had completely forgotten about mp3pro

one thing I want to mention, audio streaming does NOT always mean transcoding, there are stuffs that can stream from local files directly without the need to re-encode.

my wma streaming experience is very limited.. limited to jetcast dsp, and oddcast2 dsp for winamp... i don't even know if windows media server is free or not unsure.gif ... but since wma is a microsoft format, support is very little ouside of windows.. it makes me wonder why so many radio stations use it unsure.gif

as far as mp3 goes... shoutcast and icecast... shoutcast does support vbr mp3 smile.gif (using shoutcast dsp 1.8.0 and the lame acm codec).. but that still doesn't quite do it for me at 96kbps even with the fhg codec... i wonder how digitally imported encodes their 96kbps stream...

vorbis... oddcast is great (for mp3 and aacplus and aac too) but it has a lack of encoding options (i cant adjust the lowpass for vorbis crying.gif ) ... so thus far -q 1.5 for broadband (88kbps) and -q -2 @26000hz (28kbps) for dialup (26khz because at 25.99khz the lowpass drops from 12khz to 8khz)

live streaming is somewhat limiting, the better solution for (all) streaming IMHO would be to stream from pre-encoded local files.. but thats not an option for streaming a live show sad.gif ... and thus i am still searching for a way to use stdin/stdout with lame.exe and oggenc.exe for live streaming wink.gif

real audio has never.. and i stress NEVER impressed me in any way shape or form, high or low bitrate


i rather enjoy playing around with audio streaming... it not about 'perfect' quality... it turns into a race for sending the most audio bandwidth at the lowest bitrate smile.gif

edit: spelling... and added more
vinnie97
Nothing to see here, carry on.
woody_woodward
QUOTE(Nayru @ Feb 2 2006, 06:52 PM)
QUOTE(woody_woodward @ Feb 1 2006, 04:22 AM)
Interesting subject.  There probably isn't a single 'correct' solution.  Too many varibles:  Type of program material, available bandwidth, popularity of media format.  In general my preferences would be RealAudio for bit-rates up to about 50k, Windows Media for bit-rates up to about 100k.  For bit-rates higher than that, I have no preference.  Should be able to get good sound from just about any codec.  I am currently using Real Audio for a dial-up audience.  I'm happy and the audience is happy.  Also, for what it's worth, the BBC streams in Real and Windows Media.  Their 'Listen Again' archives are Real Audio only.
*



RealAudio using which codec? There are eight.

In general with real audio you should avoid using the sipro codec as ffmpeg/vlc/etc can not play it. Cook or AAC should be fine for compatibility. The BBC streams used Cook last time I checked. I don't know how good their AAC coder is, and I'm not aware of any listening tests of the cook codec either.
*


Cook - flavor 5. 44kbps stereo
jmvalin
QUOTE(Artemis3 @ Feb 1 2006, 04:01 PM)
Vorbis is good, maybe not as good as aac, but its much better than mp3. And so far, no fees!. You need something like icecast2 to stream it..


Vorbis will always be free. Also, in most of the tests I've seen, it actually came ahead of AAC.

QUOTE(Artemis3 @ Feb 1 2006, 04:01 PM)
You can use quality -1 at 44khz stereo (64kbps) / mono (48kbps); 22khz stereo (32kbps) / mono (24kbps); 11khz mono (12kbps); and even 8khz mono (8kbps) for speech which i find better than speex (think land line vs mobile).
*



My recommendation when it comes to Speex vs. Vorbis for encoding speech is to use Speex below around 32 kbps and Vorbis above that.
Ivan Dimkovic
QUOTE
Vorbis will always be free. Also, in most of the tests I've seen, it actually came ahead of AAC.


Even at low bit rates (32-64 Kbps)?
gameplaya15143
QUOTE(Ivan Dimkovic @ Feb 3 2006, 05:05 AM)
QUOTE
Vorbis will always be free. Also, in most of the tests I've seen, it actually came ahead of AAC.


Even at low bit rates (32-64 Kbps)?
*


LC-AAC? I'd say yes.
HE-AAC.. I'd still say yes for 64kbps and up, but that's me... but for the below 64kbps I think HE-AAC has the edge

for dialup bitrates (24kbps) HE-AAC + PS is *probably* the *better* choice at this point in time
gameplaya15143
QUOTE(jmvalin @ Feb 3 2006, 03:53 AM)
My recommendation when it comes to Speex vs. Vorbis for encoding speech is to use Speex below around 32 kbps and Vorbis above that.
*


Can Speex be streamed?
I thought that it couldn't unsure.gif


btw, does anyone know of any free modern real audio encoder that doesn't involve realplayer, I'd like to do some comparisons wink.gif
jmvalin
QUOTE(gameplaya15143 @ Feb 7 2006, 11:50 AM)
QUOTE(jmvalin @ Feb 3 2006, 03:53 AM)
My recommendation when it comes to Speex vs. Vorbis for encoding speech is to use Speex below around 32 kbps and Vorbis above that.
*


Can Speex be streamed?
I thought that it couldn't unsure.gif


You can stream anything you like, you know. If you can put it into a file, you can stream it.

QUOTE(gameplaya15143 @ Feb 7 2006, 11:50 AM)
btw, does anyone know of any free modern real audio encoder that doesn't involve realplayer, I'd like to do some comparisons wink.gif
*



I doubt Real lets anyone implement their proprietary stuff...
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Invision Power Board © 2001-2008 Invision Power Services, Inc.