前面系列文章已经讲过使用 FFmpeg 对音频和视频进行解码以及视频添加滤镜渲染,接下来文章将会介绍音频和视频编码相关,包括为视频添加好玩的滤镜、音频添加搞笑的变声效果。
关于 x264、fdk-aac、FFmpeg 开源库的编译介绍网上“满大街”都是的,可参考资料很多。 本文只是采用高一些的 NDK 版本,使用 clang 编译,以防止后面二次开发时出现编译问题。
编译环境
按照套路先说明编译环境:
编译环境:
- android-ndk-r20b-linux-x86_64
- ffmpeg-4.2.2
- libfdk-aac version:0.1.5
- x264
编译 fdk-aac
fdk-aac 是指:Fraunhofer FDK AAC 编解码器库,是一个开源软件库,用于编码和解码高级音频编码格式 AAC 的音频。
在 fdk-aac 解压目录下创建编译脚本 build_fdk_aac_clang.sh
:
#!/bin/bash
NDK=/root/workspace/android-ndk-r20b # 这里需要替换成你本地的 NDK 路径,其他的不用修改
HOST_TAG=linux-x86_64
TOOLCHAIN=$NDK/toolchains/llvm/prebuilt/$HOST_TAG
ANDROID_LIB_PATH="$(pwd)/android"
API=21
function build_android
{
echo "Build fdk-aac for android $CPU"
./configure \
--host=$HOST \
--disable-shared \
--enable-static \
--prefix="$ANDROID_LIB_PATH/$CPU" \
CPPFLAGS="-fPIC"
make clean
make -j8
make install
echo "Build fdk-aac for android $CPU completed"
}
# armeabi-v7a
CPU=armv7-a
HOST=arm-linux-android
export AR=$TOOLCHAIN/bin/arm-linux-androideabi-ar
export AS=$TOOLCHAIN/bin/arm-linux-androideabi-as
export LD=$TOOLCHAIN/bin/arm-linux-androi