Skip to main content

Topic: VisualOn AAC Encoder (Read 28792 times) previous topic - next topic

0 Members and 1 Guest are viewing this topic.
  • Nic
  • [*][*]
  • Developer
VisualOn AAC Encoder
Hi,

Apologies if I have missed it, but has the VisualOn AAC Encoder been checked out by you guys? It's recently been added in as an optional encoder for ffmpeg, but not sure how it compares to the great AAC encoders (one imagines it fares better than ffmpeg's current internal encoder)

The README of the library says:
Quote
VisualOn AAC encoder library

This library contains an encoder implementation of the Advanced Audio
Coding (AAC) audio codec. The library is based on a codec implementation
by VisualOn as part of the Stagefright framework from the Google
Android project.


Anyway, couldn't get my current MSYS/MinGW environment to compile it from https://github.com/mstorsjo/vo-aacenc so I just whacked it all in Visual Studio 6.

If you're in the mood grab it from (Edit: patent violation removed) and give it a test. Its little test app is simple and old school so writes out to ADTS AAC files rather than MP4. Usage Example: vo-aacenc.exe -r 128000 RhymePays.wav RhymePays.aac

I doubt it's great - but would be interested to know how far some good ears consider it behind the mighty Neros and Apples of this world....

Cheers,
-Nic
  • Last Edit: 12 July, 2012, 11:39:42 AM by Garf

  • Garf
  • [*][*][*][*][*]
  • Developer (Donating)
VisualOn AAC Encoder
Reply #1
Looks suspiciously like the 3GPP reference code from Coding Technologies, but with the copyright notice of another company plastered on it.

Edit: I'm not the only one who thinks this:

http://spectralhole.blogspot.com/2010/12/a...encoder-or.html

This is not a bad encoder, but it's worse than Nero and Apple. And it's hardly new. Did VisualOn buy a free license for the code or what? I would be a bit cautions with including this everywhere, as the legality of the code looks dubious to me. But it already seems to be in debian or ffmpeg...do they know about the origin of this code?
  • Last Edit: 20 April, 2011, 03:31:24 AM by Garf

  • Nic
  • [*][*]
  • Developer
VisualOn AAC Encoder
Reply #2
Very interesting Garf - I was not aware of that, it does looks very suspect! How disappointing....especially as it's related to "do no evil" google.

I have no idea about how VisualOn came by the code, if they have a license or have just ripped it off. Debian/ffmpeg probably should get that confirmed....

Cheers,
-Nic

  • Last Edit: 20 April, 2011, 03:44:47 AM by Nic

  • menno
  • [*][*][*][*][*]
  • Developer (Donating)
VisualOn AAC Encoder
Reply #3
The 3GPP website is pretty clear about this: http://www.3gpp.org/FAQ#outil_sommaire_21
If they were granted some kind of special authorization it should be in this file: http://www.3gpp.org/ftp/Inbox/2008_web_fil...sues-update.doc

  • Garf
  • [*][*][*][*][*]
  • Developer (Donating)
VisualOn AAC Encoder
Reply #4
Reported to Google as Android issue 16431.

It's possible the right to re-license the Dolby code under the Apache license was bought by VisualOn...but that sounds rather strange. Especially as the copyright doesn't mention Dolby at all.

  • Ivan Dimkovic
  • [*][*][*][*][*]
  • Developer
VisualOn AAC Encoder
Reply #5
Very interesting Garf - I was not aware of that, it does looks very suspect! How disappointing....especially as it's related to "do no evil" google.


Hmm... even if it turns out that the code is not licensed properly, it might happen that Google was not aware of this (e.g. if the vetting process, if there is one, is done in a way that might not involve Google proactively doing the IP check)

I'm not saying scenario is impossible - just that there might be few possibilities, apart from the "do no evil" Google being somehow implicated in this

But, in any case, if it turns out that the code is not licensed properly - it will not be a good PR for Android for sure.
  • Last Edit: 28 April, 2011, 06:36:02 PM by Ivan Dimkovic

  • stereotype
  • [*]
VisualOn AAC Encoder
Reply #6
Isn't this just like LAME? Source code only, free speech, etc...

  • Garf
  • [*][*][*][*][*]
  • Developer (Donating)
VisualOn AAC Encoder
Reply #7
Isn't this just like LAME? Source code only, free speech, etc...


LAME issue is related to patents. This has nothing to do with patents, it is about copyright.

  • Garf
  • [*][*][*][*][*]
  • Developer (Donating)
VisualOn AAC Encoder
Reply #8
Very interesting Garf - I was not aware of that, it does looks very suspect! How disappointing....especially as it's related to "do no evil" google.


Hmm... even if it turns out that the code is not licensed properly, it might happen that Google was not aware of this (e.g. if the vetting process, if there is one, is done in a way that might not involve Google proactively doing the IP check)


It's quite possible Google has a contract with VisualOn that makes VisualOn liable if there are copyright issues with the code. Actually, that is almost certain.

But such a contract will not help other people who use the code on good faith.

  • Garf
  • [*][*][*][*][*]
  • Developer (Donating)
VisualOn AAC Encoder
Reply #9
FWIW, Google has closed this issue, essentially deferring it entirely to VisualOn ("who is re-confirming that they have the necessary rights").

So basically, using this is at your own risk.

  • aconverse
  • [*]
VisualOn AAC Encoder
Reply #10
Isn't this just like LAME? Source code only, free speech, etc...


LAME issue is related to patents. This has nothing to do with patents, it is about copyright.


Until version 3.81 LAME included ISO dist10 source code (hence "Lame Aint an MP3 Encoder") so there is a similarity.

FWIW faac and faad1 also use ISO reference code.

  • Garf
  • [*][*][*][*][*]
  • Developer (Donating)
VisualOn AAC Encoder
Reply #11
Isn't this just like LAME? Source code only, free speech, etc...


LAME issue is related to patents. This has nothing to do with patents, it is about copyright.


Until version 3.81 LAME included ISO dist10 source code (hence "Lame Aint an MP3 Encoder") so there is a similarity.

FWIW faac and faad1 also use ISO reference code.


There is no similarity wrt. patents. LAME doesn't ship executables because those actually infringe the patents, unlike source code that doesn't do anything. Google is shipping this code in executable form on Android. But again, this is not about patents, so this is completely and utterly irrelevant.

This also isn't about ISO reference code. It's about 3GPP reference code. They're most certainly not the same. Notably, the 3GPP reference code doesn't suck
  • Last Edit: 05 July, 2011, 06:26:56 AM by Garf

  • benski
  • [*][*][*][*][*]
  • Developer
VisualOn AAC Encoder
Reply #12
Isn't this just like LAME? Source code only, free speech, etc...


LAME issue is related to patents. This has nothing to do with patents, it is about copyright.


Until version 3.81 LAME included ISO dist10 source code (hence "Lame Aint an MP3 Encoder") so there is a similarity.

FWIW faac and faad1 also use ISO reference code.


There is no similarity wrt. patents. LAME doesn't ship executables because those actually infringe the patents, unlike source code that doesn't do anything. Google is shipping this code in executable form on Android. But again, this is not about patents, so this is completely and utterly irrelevant.

This also isn't about ISO reference code. It's about 3GPP reference code. They're most certainly not the same. Notably, the 3GPP reference code doesn't suck


I am not a lawyer, but I don't believe there is anything wrong in using the 3GPP or ISO code in binary form in a standards-compliant product (weird license text aside).  The issue that Google has here is that they've potentially republished 3GPP source code under their own copyright notice and license text.

  • LigH
  • [*][*][*]
VisualOn AAC Encoder
Reply #13
Is vo-aacenc at all able to create HE-AAC or quality-based VBR?

Nic's encoder demo seems to default to 64 kbps without bitrate parameter; and even with, it seems to create LC-AAC only – which sounds obviously flawed at such a bitrate. Furthermore, even though MediaInfo reports it as VBR, I doubt that its bitrate changes noticably, which may be related to limitations in either Nic's demo application or the encoder itself, who knows; I am no C++ coder, I can't read sources easily.

If VisualOn developed any HE-AAC codec, as reported on their software codecs page, it is possibly not this one.

Quote
Audio:
  • AAC, AAC+, eAAC+, AAC-BSAC, MP3, MP2, MIDI, AMR, AMR-WB, AMR-WB+
  • Last Edit: 14 October, 2011, 04:35:23 AM by LigH
http://forum.gleitz.info - das deutsche doom9/Gleitz-Forum

  • lvqcl
  • [*][*][*][*][*]
  • Developer
VisualOn AAC Encoder
Reply #14
Amazing encoder. Sounds like sh#t even at 320 kbps.

...is it for androids only?

  • LigH
  • [*][*][*]
VisualOn AAC Encoder
Reply #15
It was originally made for Android, but Nic was able to publish a Win32 version too.
http://forum.gleitz.info - das deutsche doom9/Gleitz-Forum

  • nu774
  • [*][*][*][*][*]
  • Developer
VisualOn AAC Encoder
Reply #16
I tried this before.
One song was quite easily ABX-able at 320k bps. Another song stopped playing in the middle, since AAC bitstream was invalid. So, I've reported bug to mstorsjo.
It's fixed in mstorsjo's repos, but  I don't know about the google's code base.

  • LigH
  • [*][*][*]
VisualOn AAC Encoder
Reply #17
As long as it is not comparable to FAAC, not to mention even Nero or QuickTime, it won't interest many people...
http://forum.gleitz.info - das deutsche doom9/Gleitz-Forum

  • smok3
  • [*][*][*][*][*]
  • Moderator
VisualOn AAC Encoder
Reply #18
just some observations:

git: https://github.com/mstorsjo/vo-aacenc
pdf: https://github.com/mstorsjo/vo-aacenc/blob/...CEncoderSDK.pdf

seems to be LC only, CBR only, limited to max 2 channels (from pdf). I did compile an ffmpeg that is using it (for OSX), but no abxing so far.

(It is interesting, since such ffmpeg bin should be freely redistributable)
  • Last Edit: 21 January, 2012, 07:19:57 PM by smok3
PANIC: CPU 1: Cache Error (unrecoverable - dcache data) Eframe = 0x90000000208cf3b8
NOTICE - cpu 0 didn't dump TLB, may be hung

  • IgorC
  • [*][*][*][*][*]
VisualOn AAC Encoder
Reply #19
  • Last Edit: 21 January, 2012, 08:59:33 PM by IgorC

  • smok3
  • [*][*][*][*][*]
  • Moderator
VisualOn AAC Encoder
Reply #20
Nice, so it does not really make sense to use VisualOn to replace the internal ffmpeg AAC encoder.
PANIC: CPU 1: Cache Error (unrecoverable - dcache data) Eframe = 0x90000000208cf3b8
NOTICE - cpu 0 didn't dump TLB, may be hung

  • lvqcl
  • [*][*][*][*][*]
  • Developer
VisualOn AAC Encoder
Reply #21
I did compile an ffmpeg that is using it (for OSX), but no abxing so far.

Try dogies or rawhide ( http://www.ff123.net/samples.html ) or apocalypse. Easy to abx even at 320 kbps.

Nice, so it does not really make sense to use VisualOn to replace the internal ffmpeg AAC encoder.

The internal AAC encoder (-acodec aac -strict experimental) seems to be even worse (according to the results at http://d.hatena.ne.jp/kamedo2/20110430/1304181738)

  • nu774
  • [*][*][*][*][*]
  • Developer
VisualOn AAC Encoder
Reply #22
What I tried was this song (and next song in this same album triggered the bogus bitstream bug). Quite easy to ABX at 320k.
[ Specified attachment is not available ]
Looking inside of resulting bitstream, you will find it's mostly padded with continuous NUL(0x00) bytes. You will effectively get half the size down or so just by compressing the resulting AAC with gzip or something.
Therefore, audible quality at 320k is not surprising at all.

  • /mnt
  • [*][*][*][*][*]
VisualOn AAC Encoder
Reply #23
What I tried was this song (and next song in this same album triggered the bogus bitstream bug). Quite easy to ABX at 320k.

Oh great, yet another crappy AAC encoder! It seems to be just as bad as ffmpeg's internal one.

IMO Google's AAC support on Android is pretty poor.

Code: [Select]
foo_abx 1.3.4 report
foobar2000 v1.1.10
2012/01/22 17:32:38

File A: C:\Downloads\samp\samp\01 Nin-Com-Pop.flac
File B: C:\Downloads\samp\samp\01 Nin-Com-Pop.m4a

17:32:38 : Test started.
17:32:48 : 01/01  50.0%
17:32:51 : 02/02  25.0%
17:32:56 : 03/03  12.5%
17:33:01 : 04/04  6.3%
17:33:04 : 05/05  3.1%
17:33:09 : 06/06  1.6%
17:33:14 : 07/07  0.8%
17:33:18 : 08/08  0.4%
17:33:25 : 09/09  0.2%
17:33:30 : 10/10  0.1%
17:33:37 : 11/11  0.0%
17:33:42 : 12/12  0.0%
17:33:43 : Test finished.

 ----------
Total: 12/12 (0.0%)

Flanging and obvious disortion on the vocals.
"I never thought I'd see this much candy in one mission!"

  • smok3
  • [*][*][*][*][*]
  • Moderator
VisualOn AAC Encoder
Reply #24
Thanks, finally found some time to patch my scripts - so now apple AAC is used and the sound is just piped back when ffmpeg does the video...

true vbr example
Code: [Select]
afconvert -v -f "m4af" -d aac -s 3 input.aif


or maybe
Code: [Select]
afconvert -v -f m4af -d aac -s 3 -u vbrq 46 input.aif


would that be the same as qtaacenc -tvbr 46 --highest --samplerate keep ?
  • Last Edit: 23 January, 2012, 02:21:18 PM by smok3
PANIC: CPU 1: Cache Error (unrecoverable - dcache data) Eframe = 0x90000000208cf3b8
NOTICE - cpu 0 didn't dump TLB, may be hung