asterisk / asterisk

The official Asterisk Project repository.
https://www.asterisk.org
Other
1.97k stars 924 forks source link

[new-feature]: new module: format_aac #692

Closed viktike closed 5 days ago

viktike commented 1 month ago

Feature Description

Advanced Audio Coding (MP4) format module. Uses libfaac and libfaad external libraries. The configure script needs upgrading to check the new dependencies, but running bootstrap.sh resulted more than the wanted changes, so I didn't add it to my commit.

seanbright commented 1 month ago

running bootstrap.sh resulted more than the wanted changes, so I didn't add it to my commit.

What version of autoconf are you using? If you use 2.71 that should minimize the number of changes.

viktike commented 1 month ago

running bootstrap.sh resulted more than the wanted changes, so I didn't add it to my commit.

What version of autoconf are you using? If you use 2.71 that should minimize the number of changes.

I have 2.69 from Ubuntu 20.04 LTS (focal).

It's not looking good:

git diff configure | egrep "^(\+|\-)" | wc -l
18435

Let me know if I should add it to my commit anyway.

viktike commented 1 month ago

Managed to update to 2.71, it's better, but...

git diff configure | egrep "^(\+|\-)" | wc -l
621
seanbright commented 1 month ago

It’s fine to be added to the PR and will need to end up there before merge regardless.

viktike commented 1 month ago

It’s fine to be added to the PR and will need to end up there before merge regardless.

Added, thanks.

viktike commented 1 month ago

According to this document: https://web.archive.org/web/20170213191747/https://graphics.ethz.ch/teaching/mmcom12/slides/mp3_and_aac_brandenburg.pdf It's beneficial to enable Tns (Temporal Noise Reduction) for speech workloads in the encoder, so I just did that.

seanbright commented 1 month ago

I've done zero research before asking this question - are there publicly available UACs that support AAC?

viktike commented 1 month ago

I've done zero research before asking this question - are there publicly available UACs that support AAC?

No, I don't think so. But please note, this is a format module (not a codec module), used to read/write files in the filesystem, and has nothing to do with VoIP, just digital audio. This module can be used to Record() or do MixMonitor() with great audio compression and retaining most of the sound quality, which was my primary goal. It can also be used to Playback() or Background() voice prompts in IVRs.

I hope it adds context to your question.

seanbright commented 1 month ago

I've done zero research before asking this question - are there publicly available UACs that support AAC?

No, I don't think so. But please note, this is a format module (not a codec module), used to read/write files in the filesystem, and has nothing to do with VoIP, just digital audio.

Ah yes. Boneheaded of me. Thank you for the clarification.

viktike commented 5 days ago

Due to license issues, this module cannot be merged into Asterisk. It's available here: https://github.com/viktike/asterisk-aac