Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

ENCODER INIT FAIL when bitrate is set to an arbitrarily too low value #8

Open
GammaBoost opened this issue Jan 11, 2025 · 4 comments
Open

Comments

@GammaBoost
Copy link

GammaBoost commented Jan 11, 2025

MPEG-1 mode (32, 44.1, 48khz) officially supports bitrates between 32kbps and 320kbps. For some arbitrary reason this is limited to 96kbps for stereo and 48kbps for mono (both set to -B48), at least in my testing. Trying to encode at these sample rates with -B40 produces an "ENCODER INIT FAIL" error.

I understand that the audio quality at lower bitrates with these sample rates is usually quite bad, but the encoder should still be able to encode it anyway, or at least, have a flag that enables these modes for testing.

My main complaint here is that I can't encode 32khz stereo at 80kbps, which LAME can do easily (passing -q 4 gives reasonable quality). Helix requires 24khz, and the lower frequency response is noticeable compared to LAME.

@maikmerten
Copy link
Owner

I pushed 028bc2f to the dev branch.

This allows MPEG1 down to 32 kbit/s. Can you test if this meets your requirements?

(you might want to play with the -F-switch to find a suitable frequency cutoff when going for very low bitrates)

@GammaBoost
Copy link
Author

GammaBoost commented Jan 20, 2025

Perfect. I think I need to play around with the -F and -N parameters a bit to try and improve the quality, but it works for now. Similar quality to LAME. Even 64kbps sounds alright

Ah, but I can't do -B16 for 32kbps stereo. Not that I'd want to, but it gives me the same error as before.

@GammaBoost
Copy link
Author

I'm having some issues with compiling. I'm quite new to this so I don't really understand what I'm doing, but whichever environment I'm using will only compile for that environment.

Compiling with MSYS2 only makes a file that runs inside of MSYS2, and compiling with WSL only makes a file that runs in WSL. Could you help me out here? I don't really know where to ask or search, I apologise for the inconvenience. I'm just trying to make an exe file that runs directly in Windows like the release build.

@maikmerten
Copy link
Owner

Over at https://ci.appveyor.com/project/maikmerten/hmp3/build/artifacts there are automated Windows-builds that should just run directly in Windows.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants