1. What is AAC? Now that MP3 is so popular, why AAC?

  • AAC (Advanced Audio Coding) was developed by Fraunhofer IIS, Dolby LABS, AT&T, Sony, Nokia, and otherslossyAudio encoding and file format
  • AAC: The encoding side provides higher quality with a smaller file size and the decoding side requires less processing power

2. The development process from AAC LC to AAC HE V2? (Understand can be)

3. What is an encoder? What is a decoder? What are the two common ACC codecs?

  • If you want to compress PCM data with AAC encoding, you need to useAAC encoder
  • If you want to extract the AAC encoded data into PCM data, use thisAAC decoder
  • Ffmpeg_aac and fdk_aac

4. Download FFMpeg source code

  • Official download FFMpeg

5. Run the following command to manually compile ffmpeg:

// Ensure that the following libraries are installed

  • brew install yasm,brew install sdl2,brew install fdk-aac,brew install x264,brew install x265

// Go to the source folder of FFmpeg and run the following command

./configure --prefix=/usr/local/ffmpeg --enable-shared --disable-static --enable-gpl  --enable-nonfree --enable-libfdk-aac --enable-libx264 --enable-libx265
Copy the code
// To specify the directory to which the compiled FFmpeg is installed
--prefix=/usr/local/ffmpeg
// Create a dynamic library
--enable-shared
// Do not generate static libraries
--disable-static
X264 and X265 require THE GPL License to be enabled
--enable-gpl
// FDK-AAC is incompatible with GPL and needs to be configured by enabling nonfree
--enable-nonfree
// build FDK-ACC into FFmpeg
--enable-libfdk-aac
// Build X264 into FFmpeg
--enable-libx264
// Build x265 into FFmpeg
--enable-libx265
Copy the code
  • You can go throughconfigure --helpCommand to view the function of each configuration item
  • The last runmake installorsudo make installComplete manual compilation of FFmpeg

6. Run the following command to verify that FFmpeg is compiled manually and fdK_AAC is integrated successfully

ffmpeg -ar 44100 -ac 2 -f s16le -i 44100_s16le_2.pcm -c:a libfdk_aac out.aac
Copy the code

7. Uninstall the original FFMpeg installed with BREW

brew uninstall ffmpeg
Copy the code

Will 8.ffmpegRelated commands are configured in the environment variable path

  • findopen ~/.bash_profileFile, write the following content
export FFMpeg=/usr/local/ffmpeg
export PATH=$FFMpeg/bin:$PATH
Copy the code
  • Make the configuration worksource ~/.bash_profile
  • Then reopen a command line tool and type directlyffmpegSuccess can be indicated by a prompt

9. What isMakefileFile?

  • MakefileDescribes rules for compiling and linking the entire project, which makes compiling a project automatic without manually entering a bunch of source files and parameters each time
  • For example, which files need to be compiled? Which files do not need to be compiled? Which files need to be compiled first? Which files need to be postcompiled? , etc.

10. How does FFMPEG find the FDK_aAC library?

  • otool -L libavcodec.dylib