I'm sorry if this question has been asked before; I've looked through the archives and haven't seen anything. The problem I'm seeing is that oggenc's VBR encoding doesn't seem to pay attention to any sort of bitrate limitation, either the -m or bitrate_hard_min settings. It isn't that it temporarily dips below the minimum; the average for the whole (in this case, easily compressible) file is 10-20% too low. I see roughly the same results on an old 1.0.1 version of oggenc as well as a new vorbis 1.1-linked one I found on rarewares.org. The following works: the final (non-VBR) bitrate exceeds the minimum bitrate. $ /c/Program\ Files/ogg/oggenc -m 96 input.wav Enabling bitrate management engine Opening with wav module: WAV file reader Encoding "input.wav" to "input.ogg" using bitrate management (min 96 kbps, no max) [ 99.7%] [ 0m00s remaining] \ Done encoding file "input.ogg" File length: 2m 47.0s Elapsed time: 0m 38.0s Rate: 4.4175 Average bitrate: 97.4 kb/s -------------------- The following doesn't work: the final average bitrate is significantly lower than the minimum. $ /c/Program\ Files/ogg/oggenc2 -m 96 -q 3 --managed input.wav Enabling bitrate management engine Opening with wav module: WAV file reader Encoding "input.wav" to "input.ogg" at quality level 3.00 using constrained VBR (min 96 kbps, no max) [100.0%] [ 0m00s remaining] - Done encoding file "input.ogg" File length: 2m 47.0s Elapsed time: 0m 16.0s Rate: 10.4915 Average bitrate: 92.9 kb/s --------------------- Nor does the following work: $ /c/Program\ Files/ogg/oggenc -m 96 --advanced-encode-option bitrate_hard_min=96 input.wav Enabling bitrate management engine Opening with wav module: WAV file reader Encoding "input.wav" to "input.ogg" using bitrate management (min 96 kbps, no max) Setting advanced encoder option "bitrate_hard_min" to 96 [ 99.9%] [ 0m00s remaining] - Done encoding file "input.ogg" File length: 2m 47.0s Elapsed time: 1m 54.0s Rate: 1.4725 Average bitrate: 74.5 kb/s Nic
On Tue, Dec 28, 2004 at 10:23:50PM -0500, Nic Watson wrote:> The problem I'm seeing is that oggenc's VBR encoding doesn't seem to pay > attention to any sort of bitrate limitation, either the -m or > bitrate_hard_min settings. It isn't that it temporarily dips below the > minimum; the average for the whole (in this case, easily compressible) > file is 10-20% too low.Are you complaining that the encoder does too good a job? :-) The managed bitrate modes use a different engine from the standard constant-quality engine, and is mutually exclusive with -q. You have to turn it on with -b or in more recent versions of oggenc with --managed.> I see roughly the same results on an old 1.0.1 version of oggenc as well > as a new vorbis 1.1-linked one I found on rarewares.org.The managed bitrate handling was changed in the 1.1 release; I don't know if the rarewares oggenc is the updated version from svn or not, so it may be using the same logic as the 1.0.1 version. If it's underruns you're worried about you probably shouldn't be using a managed mode; -q will do a better job. You really only need this if you're on some stupid transport that really can't handle the normal vbr streams. -r
Unfortunately, -q6 occasionally runs up against the Iriver's upper limit, 224kbps. It looks like I have no way of guaranteeing that the file won't stay between 96kbps and 224kbps with VBR. I could still try ABR. That seems to work. Can anyone tell me the difference in quality between ABR and a roughly similar size VBR-encoded file? What determines how closely it has to stick to the nominal rate? Said in another way, is there a way to "loosen" the ABR logic to give it more leeway, and more closely emulate the VBR quality? Does anybody know whether another ogg encoder will have the same limitation? It is interesting that the BeSweet GUI either allows setting the quality or the nominal/min/max rate, but not both. Nic Lorenzo Prince wrote:> In the case of these particularly picky players, the best thing may be to stick > with a simple -q6 encoding. My 1.1 version of oggenc encoded the signwave file > at an average bitrate of 114.6 wien using -q6 with no bitrate management options. > > A side note: I have had trouble posting to the list for some reason, so I hope my > message makes it, but you should get it nonetheless. > > HTH > PRINCE >
I just got some new recording gear (M-Audio Firewire 410, and some new mics) and my audio interface can do up to 96khz/24-bit recording. This led me to check if Vorbis could encode at that rate, which it does not seem to be able to right now. Am I wrong on this? If not are higher sample rates and bit depths in the roadmap? Paul
On Thu, Jan 06, 2005 at 10:15:21PM -0800, Paul Ellis wrote:> I just got some new recording gear (M-Audio Firewire 410, and some new > mics) and my audio interface can do up to 96khz/24-bit recording. This > led me to check if Vorbis could encode at that rate, which it does not > seem to be able to right now.Sure it can, are you sure the format you recorded in is recognized?> Am I wrong on this? If not are higher > sample rates and bit depths in the roadmap?Vorbis goes to 192kHz and there is no native bit depth; the internal math is 48 bits wide. Monty
Frank Murphy
2005-Jan-09 23:21 UTC
[Vorbis] Re: bitrate limits don't work with -q settings?
> Here are some more tests i did with various combinations. > > oggenc -q 3 sinewave.flac -> Average bitrate: 69.1 kb/s > oggenc -m 96 sinewave.flac -> Average bitrate: 96.9 kb/s > oggenc -m 96 -q3 sinewave.flac -> Average bitrate: 69.1 kb/s > oggenc -q 3 -m 360 sinewave.flac -> Average bitrate: 69.1 kb/s > oggenc -m 96 -M 360 sinewave.flac -> Average bitrate: 130.6 kb/s > oggenc -q 3 -m 96 -M 360 sinewave.flac -> Average bitrate: 0.7 kb/s > oggenc -q 3 -m 360 -M 360 sinewave.flac -> Average bitrate: 0.7 kb/s > > The last ones are really weird? The file ony has one tick at the > beginning an after that silence. > > The issue however is when using a -q3 together with a -m 96 oggenc > kind of ignores the -m 96. Is this normal?So I also got an iRiver iFP machine because of it's ogg support. I've recently discovered its problems with oggs encoded at less than 96kbps (though I'm not sure which thing needs to be 96kbps). I saw your posting and I think I've discovered the oggenc bug that you're seeing. It seems that when -m and -q are used together, the -m takes the number to be bps instead of kbps (or kb/s depending on where you look in ogginfo). So in order to get the behavior you want, you need to encode with -q 3 and -m 96000. This is all experimental for me too, but I think the 96000 isn't enough. I'll be messing with values a little higher to avoid any pops. I haven't seen any official iRiver statement about which bitrates are supported, but I've seen hearsay that it accepts only between 96kpbs and 220bps. But I don't know if that's Average bitrate, nominal bitrate, or what. On the website, it talks about how many hours of music can be fit with 64kbps ogg files, but that doesn't reflect reality. Frank