#10420 closed defect (invalid)
Can't convert from WAV to HE-AACv2
| Reported by: | Jaden LeMieux | Owned by: | |
|---|---|---|---|
| Priority: | normal | Component: | ffmpeg |
| Version: | unspecified | Keywords: | WAV ffmpeg Audiotoolbox audio libfdk-aac AAC aac bugs |
| Cc: | Blocked By: | ||
| Blocking: | Reproduced by developer: | no | |
| Analyzed by developer: | no |
Description
Summary of the bug:
How to reproduce: Do this command...
This is my command:
./ffmpeg -i "Cinnamon Road.wav" -b:a aac_at -profile:a aac_he_v2 -b:a 160k "Cinnamon Road_HE-AACv2_160k.m4a"
ffmpeg version is 6.0 or the latest dev build, I tried everything on both.
built on ... I have no idea what it's built on...
}}}
Patches should be submitted to the ffmpeg-devel mailing list and not this bug tracker.
Basically I'm just trying to convert a WAV from WAV to HE-AACv2, and it's not working, I followed all guides, wikis, and infos that I could find and that people told me.
Change History (19)
follow-up: 2 comment:1 by , 3 years ago
comment:2 by , 3 years ago
Replying to Balling:
But we do not support encoding HE! You need a lib for that.
Ok… how do I do that?
follow-up: 4 comment:3 by , 3 years ago
-c:a libfdk_aac
ffmpeg.exe -h encoder=libfdk_aac
Encoder libfdk_aac [Fraunhofer FDK AAC]:
General capabilities: delay small
Threading capabilities: none
Supported sample rates: 96000 88200 64000 48000 44100 32000 24000 22050 16000 12000 11025 8000
Supported sample formats: s16
Supported channel layouts: mono stereo 3.0 4.0 5.0 5.1 7.1(wide) 7.1
libfdk_aac AVOptions:
-afterburner <int> E...A...... Afterburner (improved quality) (from 0 to 1) (default 1)
-eld_sbr <int> E...A...... Enable SBR for ELD (for SBR in other configurations, use the -profile parameter) (from 0 to 1) (default 0)
-eld_v2 <int> E...A...... Enable ELDv2 (LD-MPS extension for ELD stereo signals) (from 0 to 1) (default 0)
-signaling <int> E...A...... SBR/PS signaling style (from -1 to 2) (default default)
default -1 E...A...... Choose signaling implicitly (explicit hierarchical by default, implicit if global header is disabled)
implicit 0 E...A...... Implicit backwards compatible signaling
explicit_sbr 1 E...A...... Explicit SBR, implicit PS signaling
explicit_hierarchical 2 E...A...... Explicit hierarchical signaling
-latm <int> E...A...... Output LATM/LOAS encapsulated data (from 0 to 1) (default 0)
-header_period <int> E...A...... StreamMuxConfig and PCE repetition period (in frames) (from 0 to 65535) (default 0)
-vbr <int> E...A...... VBR mode (1-5) (from 0 to 5) (default 0)
comment:4 by , 3 years ago
Replying to Balling:
-c:a libfdk_aac
ffmpeg.exe -h encoder=libfdk_aac
Encoder libfdk_aac [Fraunhofer FDK AAC]: General capabilities: delay small Threading capabilities: none Supported sample rates: 96000 88200 64000 48000 44100 32000 24000 22050 16000 12000 11025 8000 Supported sample formats: s16 Supported channel layouts: mono stereo 3.0 4.0 5.0 5.1 7.1(wide) 7.1 libfdk_aac AVOptions: -afterburner <int> E...A...... Afterburner (improved quality) (from 0 to 1) (default 1) -eld_sbr <int> E...A...... Enable SBR for ELD (for SBR in other configurations, use the -profile parameter) (from 0 to 1) (default 0) -eld_v2 <int> E...A...... Enable ELDv2 (LD-MPS extension for ELD stereo signals) (from 0 to 1) (default 0) -signaling <int> E...A...... SBR/PS signaling style (from -1 to 2) (default default) default -1 E...A...... Choose signaling implicitly (explicit hierarchical by default, implicit if global header is disabled) implicit 0 E...A...... Implicit backwards compatible signaling explicit_sbr 1 E...A...... Explicit SBR, implicit PS signaling explicit_hierarchical 2 E...A...... Explicit hierarchical signaling -latm <int> E...A...... Output LATM/LOAS encapsulated data (from 0 to 1) (default 0) -header_period <int> E...A...... StreamMuxConfig and PCE repetition period (in frames) (from 0 to 65535) (default 0) -vbr <int> E...A...... VBR mode (1-5) (from 0 to 5) (default 0)
Yea, I already did that. That's one of the many things I tried. Doesn't even say it's an option for me, says something like encoder not found.
follow-up: 6 comment:5 by , 3 years ago
ffmpeg -i input.wav -c:a libfdk_aac -profile:a aac_he_v2 -b:a 32k output.m4a
I know where to get it, but it is illegal.
comment:6 by , 3 years ago
Replying to Balling:
ffmpeg -i input.wav -c:a libfdk_aac -profile:a aac_he_v2 -b:a 32k output.m4a
I know where to get it, but it is illegal.
Then why in the world would I even use FFMPEG if it doesn’t support normal codecs? This seems like an extreme oversight.
That’s almost the exact command I tried, just the bitrate was higher, lower bitrates still don’t work either though.
comment:7 by , 3 years ago
I am on a Mac, so I have a built-in AAC encoder that is apparently better than any thing else, stated by multiple sites, but again I can’t seem to use it either. Nothing works, ffmpeg appears to be useless for audio on my end and I have no idea why.
follow-up: 9 comment:8 by , 3 years ago
| Resolution: | → invalid |
|---|---|
| Status: | new → closed |
Okay, you know what. Here is the build, but it is illegal to download it. https://github.com/marierose147/ffmpeg_windows_exe_with_fdk_aac/actions/runs/5231164043
comment:9 by , 3 years ago
Replying to Balling:
Okay, you know what. Here is the build, but it is illegal to download it. https://github.com/marierose147/ffmpeg_windows_exe_with_fdk_aac/actions/runs/5231164043
That would work, except it's not a Mac version and there isn't a download button. I'm kinda new to Github.
comment:11 by , 3 years ago
Replying to Balling:
Learn how to compile stuff. It is also not illegal then.
I tried. Couldn’t. Don’t have the time, plus I really really don’t want to, nor should I have to learn how to compile anything. There should very clearly be a pre-built binary to do something as simple as converting PCM to HE-AAC. It’s not an other worldly thing to do, and if ffmpeg costed 60 bucks because of it, I’d happily pay that. It’s not the users fault if they simply for one reason or another can’t build a program, and that mindset is just ignorant if anything, let alone not helpful to anyone. I don’t care if something is “technically illegal”, I need to get stuff done without having to learn a million new concepts, following confusing guides that don’t even work when they’re done, and doing this unsuccessfully for WEEKS like I’ve been doing.
“Just” is a four letter word. If you’re saying “just”, it’s probably not that easy, or I would have god damn done it. I’ve been trying to learn how to compile, I’ve even gotten people to help me IRL, but we ALL are having problems, so I know it’s not just me.
This should be remedied, and I can’t believe I actually have to bring this shizz to someone’s attention, not everyone can “just” compile stuff. Most people aren’t that advanced, but some of those people NEED a tool like ffmpeg.
Ok I kinda went off the deep end, I hate when people don’t have reasonable expectations, it makes everything so much harder.
follow-up: 13 comment:12 by , 3 years ago
I tried. Couldn’t.
Well, I cannot provide you the build. It is illegal to destribute it.
There should very clearly be a pre-built binary to do something as simple as converting PCM to HE-AAC
HE-AAC is highly patented. What?
and if ffmpeg costed 60 bucks because of it
We are not paying the patent nutjobs. Thank you very much.
comment:13 by , 3 years ago
Replying to Balling:
I tried. Couldn’t.
Well, I cannot provide you the build. It is illegal to destribute it.
There should very clearly be a pre-built binary to do something as simple as converting PCM to HE-AAC
HE-AAC is highly patented. What?
and if ffmpeg costed 60 bucks because of it
We are not paying the patent nutjobs. Thank you very much.
Why not? Seems pretty damn simple to me how it’s SUPPOSED to work. People should get payed for their efforts. That’s how business works. Not doing this is noble, but also doesn’t make any sense and is a double edge sword, as has been proven here, not including necessary codecs and such.
So wait, you send me a link to a build that is what I need, but I can’t download it? Why even bother?
If the nutjobs are the only ones that have what you need, you suck it up and pay the nutjobs, or you simply don’t get that capability. Open-source isn’t good for everything, and I’m kinda mad this is the only program that will (maybe??) do what I need and the fact that’s it’s open source above all else is annoying and it makes it a pain in the ass to use, or in this case even get a hold of a working program. I have too much bullshit debugging in my life as it is, I don’t need a simple encoder program to fail on top of all that.
This shouldn’t even have been allowed to be a problem in the first place.
follow-up: 15 comment:14 by , 3 years ago
Seems pretty damn simple to me how it’s SUPPOSED to work
We do not provide any binaries because even h264 decoder technically violates a bunch of patents. By not compiling we make it go away.
People should get payed for their efforts.
Pantents cannot be held by people, patent is always held by corporations because per the law you must actively seek lawsuites to enforce the patent or it will be voided. That is impossible to do for a singular person.
That’s how business works.
What business?
not including necessary codecs and such.
It is not part of ffmpeg, it is a separate library and we provide a wrapper.
the nutjobs are the only ones that have what you need, you suck it up and pay the nutjobs
Pay? It is criminal penalty. No one will do it. VLC and FFmpeg are based IN france and thus are avoiding prosecution, genius.
Open-source isn’t good for everything,
Libfdk is open source.
need a simple encoder program to fail on top of all that.
We are the most important media library in the world used on Mars and in Youtube. So LOL, it is not simple.
comment:15 by , 3 years ago
Replying to Balling:
Seems pretty damn simple to me how it’s SUPPOSED to work
We do not provide any binaries because even h264 decoder technically violates a bunch of patents. By not compiling we make it go away.
People should get payed for their efforts.
Pantents cannot be held by people, patent is always held by corporations because per the law you must actively seek lawsuites to enforce the patent or it will be voided. That is impossible to do for a singular person.
That’s how business works.
What business?
not including necessary codecs and such.
It is not part of ffmpeg, it is a separate library and we provide a wrapper.
the nutjobs are the only ones that have what you need, you suck it up and pay the nutjobs
Pay? It is criminal penalty. No one will do it. VLC and FFmpeg are based IN france and thus are avoiding prosecution, genius.
Open-source isn’t good for everything,
Libfdk is open source.
need a simple encoder program to fail on top of all that.
We are the most important media library in the world used on Mars and in Youtube. So LOL, it is not simple.
if libfdk was open source, why isn’t it included in the base executable that I got from ffmpeg.org?
What I mean by “pay” is pay to get a license to use AAC or whatever the problem is.
Ok I used the wrong word. Companies should get paid for their efforts.
I wish there was a simple guide on how to build ffmpeg with all of the libraries. Each one seems to leave out a bunch of stuff and I really need to know to be able to build ffmpeg, or just skips over major steps, like getting the libraries, where to put them, how to make them work, none of that is covered in the 15 guides I’ve read and tried to follow.
follow-up: 17 comment:16 by , 3 years ago
if libfdk was open source, why isn’t it included in the base executable that I got from ffmpeg.org?
It is just source code, it is not executable. Because when compiled in GPL mode to include x265 and others we cannot compile with libfdk, that will not be destributable.
What I mean by “pay” is pay to get a license to use AAC or whatever the problem is.
The problem is GPL lisense vs lisense libfdk uses.
Companies should get paid for their efforts.
Our whole idea is that to not allow that.
there was a simple guide on how to build ffmpeg with all of the libraries
There cannot be. The complexity is insane.
comment:17 by , 3 years ago
Replying to Balling:
if libfdk was open source, why isn’t it included in the base executable that I got from ffmpeg.org?
It is just source code, it is not executable. Because when compiled in GPL mode to include x265 and others we cannot compile with libfdk, that will not be destributable.
What I mean by “pay” is pay to get a license to use AAC or whatever the problem is.
The problem is GPL lisense vs lisense libfdk uses.
Companies should get paid for their efforts.
Our whole idea is that to not allow that.
there was a simple guide on how to build ffmpeg with all of the libraries
There cannot be. The complexity is insane.
Then… make it not as complex.. remember: people actually have to use this tool, and many people not are devs.
What possible tangible reason would there be to not pay companies what they’re owed? It’s counterproductive and leaves you out of things like many normal codecs, and of your own doing, no-less.
If the file I got isn’t an executable, why can I execute it? It’s just l
“ffmpeg”, no file extension. I can execute it on Mac using Terminal.
(SELF-CORRECTION:)
There is no executable download on the site itself, the executable section links to external websites that do, the one I got mine from is “evermeet”.
follow-up: 19 comment:18 by , 3 years ago
… make it not as complex
It is already is not complex for x86_64 and Windows, there is autbuilder on github. ARM MacOS is a different thing though.
There is no executable download on the site itself
Yes. That is what I said.
comment:19 by , 3 years ago
Replying to Balling:
… make it not as complex
It is already is not complex for x86_64 and Windows, there is autbuilder on github. ARM MacOS is a different thing though.
There is no executable download on the site itself
Yes. That is what I said.
I got a build error when using the autobuilder, didn't seem easily fixable, and this was at a stage where no one was responding to my messages in the ffmpeg Discord server, so I didn't even bother mentioning this. This was about 4 days ago or so.



But we do not support encoding HE! You need a lib for that.