编译x264:
下载最新版的x264
ftp://ftp.videolan.org/pub/videolan/x264/snapshots/
1.解压到指定的目录
2.切换当前目录为该目录
3.创建一个shell脚本build_x264.sh,内容如下:
export NDK=/home/robin/桌面/android-ndk-r8c export PREBUILT=$NDK/toolchains/arm-linux-androideabi-4.4.3/prebuilt export PLATFORM=$NDK/platforms/android-8/arch-arm export PREFIX=/home/robin/android-x264 ./configure --prefix=$PREFIX \ --enable-static \ --enable-pic \ --disable-asm \ --disable-cli \ --host=arm-linux \ --cross-prefix=$PREBUILT/linux-x86/bin/arm-linux-androideabi- \ --sysroot=$PLATFORM
执行如下命令编译和安装
make
sudo make install
sudo ldconfig
编译ffmpeg:
下载最新版的ffmpeg
http://ffmpeg.org/releases/ffmpeg-snapshot.tar.bz2
1.解压到指定的目录
2.切换当前目录为该目录
3.创建一个shell脚本build_ffmpeg.sh,内容如下:
#!/bin/sh export PREBUILT=$NDK/toolchains/arm-linux-androideabi-4.4.3/prebuilt export PLATFORM=$NDK/platforms/android-8/arch-arm export PREFIX=/home/robin/android-x264 build_one(){ ./configure --target-os=linux --prefix=$PREFIX \ --enable-cross-compile \ --enable-runtime-cpudetect \ --disable-asm \ --arch=arm \ --cc=$PREBUILT/linux-x86/bin/arm-linux-androideabi-gcc \ --cross-prefix=$PREBUILT/linux-x86/bin/arm-linux-androideabi- \ --disable-stripping \ --nm=$PREBUILT/linux-x86/bin/arm-linux-androideabi-nm \ --sysroot=$PLATFORM \ --enable-nonfree \ --enable-version3 \ --disable-everything \ --enable-gpl \ --disable-doc \ --enable-avresample \ --enable-demuxer=rtsp \ --enable-muxer=rtsp \ --disable-ffplay \ --disable-ffserver \ --enable-ffmpeg \ --disable-ffprobe \ --enable-libx264 \ --enable-encoder=libx264 \ --enable-decoder=h264 \ --enable-protocol=rtp \ --enable-hwaccels \ --enable-zlib \ --disable-devices \ --disable-avdevice \ --extra-cflags="-I/home/robin/android-x264/include -fPIC -DANDROID -D__thumb__ -mthumb -Wfatal-errors -Wno-deprecated -mfloat-abi=softfp -mfpu=vfpv3-d16 -marm -march=armv7-a" \ --extra-ldflags="-L/home/robin/android-x264/lib" make -j4 install $PREBUILT/linux-x86/bin/arm-linux-androideabi-ar d libavcodec/libavcodec.a inverse.o $PREBUILT/linux-x86/bin/arm-linux-androideabi-ld -rpath-link=$PLATFORM/usr/lib -L$PLATFORM/usr/lib -L$PREFIX/lib -soname libffmpeg.so -shared -nostdlib -z,noexecstack -Bsymbolic --whole-archive --no-undefined -o $PREFIX/libffmpeg.so libavcodec/libavcodec.a libavfilter/libavfilter.a libavresample/libavresample.a libavformat/libavformat.a libavutil/libavutil.a libswscale/libswscale.a -lc -lm -lz -ldl -llog -lx264 --warn-once --dynamic-linker=/system/bin/linker $PREBUILT/linux-x86/lib/gcc/arm-linux-androideabi/4.4.3/libgcc.a } build_one
执行build_ffmpeg.sh编译完成,编译输出在$PREFIX指定的目录
原文:http://hi.baidu.com/duizhe_memory/item/482e6fd6ccfee7fa93a974be
转自:http://www.cnblogs.com/uvsjoh/archive/2013/04/01/2994301.html
相关推荐
在Android的ARM平台上,编译FFmpeg需要考虑处理器架构,因为不同的ARM架构可能需要不同的优化。通常会为armeabi、armeabi-v7a、arm64-v8a等架构分别编译对应的库。在这个压缩包"ff-onelib"中,可能包含的是针对某种...
要在Android下从事音视频开发,绕不开ffmpeg+opencv,不管是初学者还是有一定经验的程序,面临的首要问题就是环境的搭建和库文件的编译配置等问题,特别是初学者,往往会在实际开发前浪费大量的时间来编译ffmpeg及...
本文档旨在详细介绍如何在Windows环境下以及Android平台上编译FFmpeg、x264和x265。这对于希望在不同平台上进行音视频处理开发的开发者来说非常重要。 #### 二、Windows平台编译指南 ##### 1. 准备工作 - **下载...
在编译FFmpeg和x264时,通常需要编写特定的编译脚本来配置和构建这两个项目,使其适应Android平台。编译脚本可能会涉及设置交叉编译环境、选择要编译的组件、设置目标架构等步骤。这个压缩包可能不包含编译脚本,但...
总之,Android编译FFmpeg并构建测试工程涉及到FFmpeg的源码获取、配置、编译、库集成、JNI接口设计、Java调用以及最终的测试与调试。这个过程虽然复杂,但完成后的应用将具备强大的音视频处理能力。
集成FFmpeg+x264到Android应用中,通常需要将预编译的库文件(如`libffwith264.so`)添加到项目的jniLibs目录下,并通过Java Native Interface (JNI) 进行调用。在Java代码中,可以创建并初始化`AVFormatContext`、`...
FFmpeg+x264 解码器支持多种处理器架构,包括 x86_64(适用于64位的Intel或AMD处理器)、armv7(针对ARM架构的V7版本)、arm64(适用于64位ARM设备,如现代的Android和iOS设备)以及 i386(32位Intel处理器)。...
这篇我们将深入探讨如何在Android环境中编译FFmpeg并集成x264。 首先,你需要理解Android的NDK(Native Development Kit),这是一个用于开发原生C/C++代码的工具集,使得我们可以在Android平台上使用像FFmpeg这样...
ffmpeg6.0 x264 支持h264_mediacodec 解码编码
"build-scripts-of-ffmpeg-x264-for-android-ndk-master"这个压缩包文件很可能包含了一系列用于编译FFmpeg和x264(H264的开源实现)的脚本。这些脚本会指导编译过程,包括选择要编译的组件、指定目标架构、设置优化...
高分项目,基于FFmpeg4.0+X264+mp3lame编译的适用于 Android 平台的音视频编辑、视频剪辑的快速处理框架 基于 ( FFmpeg 4.0 + X264 + mp3lame + fdk-aac + opencore-amr + openssl ) 编译的适用于 Android 平台的音...
5. **编译库**:运行`ndk-build`或`cmake`命令,编译FFmpeg和x264库。编译过程中可能会遇到依赖库的问题,需要确保所有依赖项都已正确安装。 6. **测试和集成**:编译完成后,将生成的SO库添加到Android项目的jni...
在编译FFmpeg和x264时,还需要注意以下几点: - 安装依赖:在Ubuntu环境下,可能需要安装一些编译依赖,如`build-essential`、`yasm`、`libssl-dev`等。 - 设置环境变量:需要设置`ANDROID_NDK`指向NDK的路径,`JAVA...
这两个文件会指导Android编译系统如何编译和链接FFmpeg及其依赖。 5. **执行构建**:运行`make`命令进行编译,这将在指定的`--prefix`目录下生成所需的.so文件。确保在正确的Android ABI目录下找到这些库。 6. **...
【项目资源】: 包含前端、后端、移动开发、操作系统、人工智能、物联网、信息化管理、数据库、硬件开发、大数据、课程资源、音视频、网站开发等各种技术项目的源码。 ... 【项目质量】: 所有源码都经过严格测试,...
总结,将FFmpeg与x264、x265和xfade整合到Android应用中,是一项涉及编译、JNI接口、音视频处理等多个层面的工作。通过这一过程,开发者可以为用户提供强大的音视频编辑功能,满足多样化的多媒体需求。
3、然后在build_ffmpeg.sh中指定x264编译出来的lib和include目录,4、执行build_ffmpeg.sh编译ffmpeg生成相应的静态库文件,最后再结合你想要的静态库和你写的调用ffmpeg的接口生成相应的so文件,供Android中应用...
2. **编译FFmpeg**:为了在Android上运行,FFmpeg需要进行交叉编译,这通常涉及到设置NDK环境,定义目标平台、架构和编译选项。编译过程会生成适用于Android的静态库文件,如libavcodec.a和libx264.a。 3. **添加...
使用ndk编译ffmpeg x264 faac使用该脚本可以一键编译完成,编译的生成的库比较小,方便快捷。使用android ndk-r9d编译测试通过,特别适合jni方法调用更适合qt for android 开发。
此压缩包"ffmpeg3.3.9+lame3.99.5+fdkaac+x264.zip"是FFmpeg的一个特定版本(3.3.9),已经预先编译并集成了几个重要的编解码库,使得在不同平台上使用更加方便。这些编解码器包括: 1. **lame3.99.5**: LAME是一个...