Opened 3 years ago

Closed 3 years ago

Last modified 3 years ago

#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)

comment:1 by Balling, 3 years ago

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

in reply to:  1 comment:2 by Jaden LeMieux, 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?

comment:3 by Balling, 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)

in reply to:  3 comment:4 by Jaden LeMieux, 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.

comment:5 by Balling, 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.

Last edited 3 years ago by Balling (previous) (diff)

in reply to:  5 comment:6 by Jaden LeMieux, 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 Jaden LeMieux, 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.

comment:8 by Balling, 3 years ago

Resolution: invalid
Status: newclosed

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

in reply to:  8 comment:9 by Jaden LeMieux, 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:10 by Balling, 3 years ago

Learn how to compile stuff. It is also not illegal then.

in reply to:  10 comment:11 by Jaden LeMieux, 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.

comment:12 by Balling, 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.

Last edited 3 years ago by Balling (previous) (diff)

in reply to:  12 comment:13 by Jaden LeMieux, 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.

Last edited 3 years ago by Jaden LeMieux (previous) (diff)

comment:14 by Balling, 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.

Last edited 3 years ago by Balling (previous) (diff)

in reply to:  14 comment:15 by Jaden LeMieux, 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.

Last edited 3 years ago by Jaden LeMieux (previous) (diff)

comment:16 by Balling, 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.

Last edited 3 years ago by Balling (previous) (diff)

in reply to:  16 comment:17 by Jaden LeMieux, 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”.

Last edited 3 years ago by Jaden LeMieux (previous) (diff)

comment:18 by Balling, 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.

in reply to:  18 comment:19 by Jaden LeMieux, 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.

Note: See TracTickets for help on using tickets.