x264和ac编译
来源:互联网 发布:淘宝店铺装修设计方案 编辑:程序博客网 时间:2024/05/17 18:44
最近在学ffmpeg时发现编译好的动态库并不能把yuv编码为h264,经过google和百度发现需要单独编译好x264和aac后在编译ffmpeg才可以使用音频和视频的编码
编译x264
下载libx264压缩文件
点击下载
编译x264
把下载好的压缩包解压缩,然后书写shell脚本放入解压后的x264文件夹
脚本如下
#!/bin/bashexport NDK=/usr/ndk/android-ndk-r10eexport SYSROOT=$NDK/platforms/android-9/arch-arm/export TOOLCHAIN=$NDK/toolchains/arm-linux-androideabi-4.8/prebuilt/linux-x86_64export PREFIX=../android-libx264function build_one{ ./configure \--prefix=$PREFIX \--enable-static \ --enable-shared \--enable-asm \--enable-pic \--enable-thread \--enable-strip \--cross-prefix=$TOOLCHAIN/bin/arm-linux-androideabi- \--host=arm-linux-androideabi \--sysroot=$SYSROOT \--extra-cflags="-Os -fpic $ADDI_CFLAGS -march=armv7-a -mfloat-abi=softfp -mfpu=neon" \--extra-ldflags="$ADDI_LDFLAGS" \$ADDITIONAL_CONFIGURE_FLAG }PREFIX="/home/wh/x264-snapshot-20170407-2245/install/"ADDI_CFLAGS=""build_one
上方的NDK路径换成你对应的路径
然后把脚本文件放入解压后的根目录,然后进入解压后的根目录依次输入下面命令
./脚本名称.shmakemake install
PREFIX对应的目录就是编译好的库文件目录
编译fdk-aac
点击下载
解压缩
编写脚本
#!/bin/bashexport NDK=/usr/ndk/android-ndk-r10eexport SYSROOT=$NDK/platforms/android-9/arch-arm/export ANDROID_BIN=$NDK/toolchains/arm-linux-androideabi-4.8/prebuilt/linux-x86_64/binCROSS_COMPILE=${ANDROID_BIN}/arm-linux-androideabi-ARM_INC=$SYSROOT/usr/include ARM_LIB=$SYSROOT/usr/libLDFLAGS=" -nostdlib -Bdynamic -Wl,--whole-archive -Wl,--no-undefined -Wl,-z,noexecstack -Wl,-z,nocopyreloc -Wl,-soname,/system/lib/libz.so -Wl,-rpath-link=$ARM_LIB,-dynamic-linker=/system/bin/linker -L$NDK_HOME/sources/cxx-stl/gnu-libstdc++/libs/armeabi -L$NDK_HOME/toolchains/arm-linux-androideabi-4.9/prebuilt/linux-x86/arm-linux-androideabi/lib -L$ARM_LIB -lc -lgcc -lm -ldl "FLAGS="--host=arm-androideabi-linux --enable-static --disable-shared"export CXX="${CROSS_COMPILE}g++ --sysroot=${SYSROOT}" export LDFLAGS="$LDFLAGS"export CC="${CROSS_COMPILE}gcc --sysroot=${SYSROOT}"./configure $FLAGS \--prefix='/home/wh/fdk-aac-0.1.4'
后面步骤与x264相同
编译ffmpeg
把x264和aac编译好的库文件合并,lib和lib中的合并,includes和includes的合并
include类似,lib和include包含了x264和aac。
编写ffmpeg脚本
#!/bin/bashexport NDK=/usr/ndk/android-ndk-r10eexport SYSROOT=$NDK/platforms/android-9/arch-arm/export TOOLCHAIN=$NDK/toolchains/arm-linux-androideabi-4.8/prebuilt/linux-x86_64export CPU=armexport PREFIX=$(pwd)/android/$CPUexport ADDI_CFLAGS="-marm"function build_one{./configure --target-os=linux --prefix=$PREFIX \--enable-cross-compile \--enable-runtime-cpudetect \--disable-asm \--arch=arm \--cc=$PREBUILT/linux-x86_64/bin/arm-linux-androideabi-gcc \--cross-prefix=$PREBUILT/linux-x86_64/bin/arm-linux-androideabi- \--disable-stripping \--nm=$PREBUILT/linux-x86_64/bin/arm-linux-androideabi-nm \--sysroot=$PLATFORM \--enable-gpl --enable-shared --disable-static --enable-nonfree --enable-version3 --enable-small --disable-vda --disable-iconv \--disable-encoders --enable-libx264 --enable-libfaac --enable-encoder=libx264 --enable-encoder=libfaac \--disable-muxers --enable-muxer=mov --enable-muxer=ipod --enable-muxer=psp --enable-muxer=mp4 --enable-muxer=avi \--disable-decoders --enable-decoder=aac --enable-decoder=aac_latm --enable-decoder=h264 --enable-decoder=mpeg4 \--disable-demuxers --enable-demuxer=h264 --enable-demuxer=avi --enable-demuxer=mpc --enable-demuxer=mov \--disable-parsers --enable-parser=aac --enable-parser=ac3 --enable-parser=h264 \--disable-protocols --enable-protocol=file \--disable-bsfs --enable-bsf=aac_adtstoasc --enable-bsf=h264_mp4toannexb \--disable-indevs --enable-zlib \--disable-outdevs --disable-ffprobe --disable-ffplay --disable-ffmpeg --disable-ffserver --disable-debug \--extra-cflags="-I ../android-lib/include -fPIC -DANDROID -D__thumb__ -mthumb -Wfatal-errors -Wno-deprecated -mfloat-abi=softfp -marm -march=armv7-a" \--extra-ldflags="-L ../android-lib/lib"} build_onemakemake install
–extra-cflags和–extra-ldflags表示的就是我们刚才aac和x264合并的文件
直接运行脚本就会产生一个android文件夹里面包含我们的动态库,这个脚本不用在单独写make和make install因为已经包含到脚本文件中
可能还不太准确,马上会改,以此作为标记
阅读全文
0 0
- x264和ac编译
- FFMPEG编译x264和mp3
- X264 的编译和移植
- IOS 编译x264和ffmpeg
- 编译x264
- x264编译
- 编译x264
- x264编译
- 编译x264
- X264编译
- x264 编译
- X264编译
- x264 编译
- x264编译
- x264编译
- windows下编译ffmpeg和x264
- ffmpeg和x264在mingw下编译
- linux编译ffmjpg和x264总结
- redis-list入门
- 信息系统项目管理师考试系列--(2)考试大纲
- bzoj4337树的同构(树hash)
- 新成员加入!
- Spring事务管理机制的实现原理
- x264和ac编译
- HNU OJ题库 1003D相邻数对问题
- BZOJ 2957: 楼房重建 [分块][线段树]
- 第4周项目5(1)猴子选大王
- HD-1213-How Many Tables(并查集)
- [BZOJ3339]Rmq Problem 线段树应用
- 动态规划算法之:最长公共子序列 & 最长公共子串(LCS)
- RMQ算法小结(st实现)
- 8、C#里面的异常处理