Hi Ron, Thanks for clarifying...
Quoting Ron (2014-10-03 18:28:34) > On Fri, Oct 03, 2014 at 12:48:18PM +0200, Jonas Smedegaard wrote: >> libvorbis has a tuning option called "application", with values >> "voip", "audio" and "low-delay". > > Do you actually have some use case where it's really important to > fiddle with that manually? > > These were manual overrides that were useful for testing in the early > life of the codec, but libopus 1.1 actually has a neural network that > analyses the signal in realtime to dynamically make the best selection > of tuning parameters. So most people should never need to specify > those, and are likely to get better results if they don't, since most > real world audio doesn't fall cleanly into categories like that as far > as the codec is concerned, even when a user might think the right > choice is "obvious" for what they are encoding. Seems it is a documented feature of libopus: http://opus-codec.org/docs/html_api-1.0.1/group__opus__encoder.html If discouraged and/or obsolete and/or even broken, I guess that should be documented (or at the very least silently removed, but I don't see why not mention such change). > But that said ... > >> opusenc lack ability to apply this tuning. > > I don't believe this is strictly true. You should still be able to > override that using the --set-ctl-int option (along with lots of other > arcane options, that really require you to be quite familiar with the > codec internals to use them in a way that does more good than harm to > the quality of encoding). > > Not exposing this control more directly was a deliberate choice for > the reasons above aiui. Ahh - I did see that mysterious option in the man page. Are you saying it is deliberately kept mysterious? >> The tuning option is accessible e.g. from libav. > > It's quite possible that libav should also no longer encourage people > to tweak at this too, though I'm not personally familiar with where > and how they allow this. I guess either clearly documenting the feature or clearly stating that it is discouraged and obsolete and irrelevant would help not only end-users like me but also library users like libav. Here's avconv documentation: $ avconv -h full | grep libopus -A 10 avconv version 11-6:11-1, Copyright (c) 2000-2014 the Libav developers built on Sep 13 2014 19:43:14 with gcc 4.9.1 (Debian 4.9.1-13) libopus AVOptions: -application <int> E..A... Intended application type voip E..A... Favor improved speech intelligibility audio E..A... Favor faithfulness to the input lowdelay E..A... Restrict to only the lowest delay modes -frame_duration <float> E..A... Duration of a frame in milliseconds -packet_loss <int> E..A... Expected packet loss percentage -vbr <int> E..A... Variable bit rate mode off E..A... Use constant bit rate on E..A... Use variable bit rate constrained E..A... Use constrained VBR > If you have some really compelling need for this we can run that past > Greg, but I suspect he'll probably say "use the ctl, or most > preferably don't!" unless it's something we've really never thought > about before. My usecase is to compare tools. I have learned that avconv use of libvpx is inferior to using vpxenc directly, and I became curious if that was the case for their use of other libraries too. That's how I discovered this feature offered via libav but not opusenc. Might be that Handbrake and some of the gazillion other transcoding wrappers make use of the feature too. - Jonas -- * Jonas Smedegaard - idealist & Internet-arkitekt * Tlf.: +45 40843136 Website: http://dr.jones.dk/ [x] quote me freely [ ] ask before reusing [ ] keep private
signature.asc
Description: signature