View Issue Details
|ID||Project||Category||View Status||Date Submitted||Last Update|
|0002623||gnunet-gtk||gnunet-fs-gtk||public||2012-11-06 20:21||2017-06-17 09:59|
|Product Version||Git master|
|Summary||0002623: Audio previews in KBlocks|
|Description||Bratao proposes to use Opus to encode small bits (up to 10 seconds?) of audio at extremely low bitrate, and embed these as previews in KBlocks.|
|Tags||No tags attached.|
Things to consider:
1) How to choose which piece of audio to encode? The simplest way is to take the audio, trim silence at the beginning, encode first N seconds. More complex technique - analyze the audio, find the juiciest piece of it (what's the definition of "juicy", and which metric should be used?) and encode N seconds of that.
2) How to choose N? Size restriction on KBlocks is somewhat floating, and it is metadata serializer that eventually gets to keep a piece of metadata or throw it away. The most optimal way would be, IMO, to first serialize all metadata normally, then see how much space is left and encode just enough audio to fill it, and then either serialize everything again (with a preview), or maybe just concatenate audio to the metadata?
3) Who will do all that? Metadata is normally extracted by LE, but logic described above doesn't look like it's suitable for LE (i.e. metadata serializer interaction). Can Opus-encoded file be cut at arbitrary position without distorting audio? I think it should be, since it has ultra-low delay...
What if we use a "Fixed" size. Something like 30K ? This could simplify the "silence" detector as like you said, silence compress well.
I don't see how that simplifies silence detector.
I expect silence to compress well, but how well - that remains to be measured.
|Before this can be implemented in gnunet-fs-gtk, we need a plugin doing the actual opus work in GNU libextractor.|
|2012-11-06 20:21||LRN||New Issue|
|2012-11-06 20:28||LRN||Note Added: 0006534|
|2012-11-06 20:40||bratao||Note Added: 0006535|
|2012-11-06 20:40||bratao||Note Edited: 0006535|
|2012-11-06 21:00||LRN||Note Added: 0006536|
|2012-11-06 21:03||Christian Grothoff||Project||GNUnet => gnunet-gtk|
|2012-11-06 21:03||Christian Grothoff||Category||file-sharing service => General|
|2012-11-06 21:03||Christian Grothoff||Category||General => gnunet-fs-gtk|
|2012-11-06 21:04||Christian Grothoff||Note Added: 0006537|
|2013-09-15 21:48||Christian Grothoff||Status||new => confirmed|
|2013-09-15 21:48||Christian Grothoff||Product Version||=> Git master|
|2013-09-15 21:48||Christian Grothoff||Target Version||=> 0.11.0pre66|
|2014-04-11 15:18||Christian Grothoff||Target Version||0.11.0pre66 => 0.11.0|
|2015-03-21 00:41||Christian Grothoff||Target Version||0.11.0 =>|