1.2 使用ndk编译x264
1. 下载源码并编译
$ cd /opt/android/ndk/android-ndk-r10e/resources
$ git clone http://git.videolan.org/git/x264.git
$ cd x264
修改configure文件
$ vim configure
将下面的这四句:
else
echo "SOSUFFIX=so" >> config.mak
echo "SONAME=libx264.so.$API" >> config.mak
echo "SOFLAGS=-shared -Wl, -soname, \$(SONAME)$SOFLAGS" >> config.mak
中的这句:
echo "SONAME=libx264.so.$API" >> config.mak
改成:
echo "SONAME=libx264.so" >> config.mak
【保存并退出】
创建配置脚本
$ vim android_x264_configure.sh
#!/bin/bash
NDK=/opt/android/ndk/android-ndk-r10e
SYSROOT=$NDK/platforms/android-9/arch-arm/
TOOLCHAIN=$NDK/toolchains/arm-linux-androideabi-4.8/prebuilt/linux-x86_64
function build_one
{
./configure \
--prefix=$PREFIX \
--enable-shared \
--enable-static \
--disable-gpac \
--disable-cli \
--cross-prefix=$TOOLCHAIN/bin/arm-linux-androideabi- \
--host=arm-linux \
--sysroot=$SYSROOT \
--extra-cflags="-Os -fpic $ADDI_CFLAGS" \
--extra-ldflags="$ADDI_LDFLAGS" \
$ADDITIONAL_CONFIGURE_FLAG
}
CPU=arm
PREFIX=$(pwd)/android/$CPU
ADDI_CFLAGS=""
build_one
【保存并退出】
$ chmod +x android_x264_configure.sh
$ ./android_x264_configure.sh
platform: ARM
byte order: little-endian
system: LINUX
cli: no
libx264: internal
shared: yes
static: yes
asm: yes
interlaced: yes
avs: avxsynth
lavf: no
ffms: no
mp4: no
gpl: yes
thread: posix
opencl: yes
filters: crop select_every
debug: no
gprof: no
strip: yes
PIC: yes
bit depth: 8
chroma format: all
You can run 'make' or 'make fprofiled' now.
$ make
$ make install
$ ls -R android
android:
arm
android/arm:
Android.mk bin include lib
android/arm/bin:
x264
android/arm/include:
x264_config.h x264.h
android/arm/lib:
libx264.a libx264.so pkgconfig
android/arm/lib/pkgconfig:
x264.pc
$ vim android/arm/Android.mk
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VRS)
LOCAL_MODULE := libx264
LOCAL_SRC_FILES := lib/libx264.so
LOCAL_EXPORT_C_INCLUDES := $(LOCAL_PATH)/include
include $(PREBUILT_SHARED_LIBRARY)
分享到:
相关推荐
在FFmpeg中启用x264,需要在编译时指定`--enable-libx264`选项。编译完成后,生成的.so库文件将包含x264编码功能,可供Android应用调用。 3. **x265编码器** x265是HEVC(High Efficiency Video Coding)编码的...
这两个文件会指导Android编译系统如何编译和链接FFmpeg及其依赖。 5. **执行构建**:运行`make`命令进行编译,这将在指定的`--prefix`目录下生成所需的.so文件。确保在正确的Android ABI目录下找到这些库。 6. **...
- 使用适当的命令行参数配置FFmpeg编译,例如添加对libx264的支持。 - **编译过程** - 执行`make`开始编译过程。 - 编译完成后,将生成的库文件和头文件移动到指定位置。 #### 三、Android平台编译指南 ##### 1...
本教程将详细介绍如何在Android环境下编译FFmpeg,x264和fdk-aac生成对应的SO文件。 1. **环境准备** - 安装并配置NDK(Native Development Kit),这是Android平台开发C/C++原生代码的必备工具。 - 设置Android ...
本篇将详细介绍如何在Android上编译全平台版本的FFmpeg,并支持h264软编码以及自定义编译参数。 一、FFmpeg简介 FFmpeg是一套由各种音视频处理工具组成的项目,包括命令行工具和C/C++库。它的核心是libavcodec...
- 使用`./configure`命令进行配置,根据需求添加或移除编译选项,例如`--enable-libx264`来启用H.264编码支持。 - 对于“单个库版”和“多个库版”,区别在于编译时启用的库数量。多个库版可能会包含更多编解码器...
3. 配置编译选项:使用NDK提供的`./configure`脚本,指定目标平台、编译器、优化级别等相关参数。例如: ``` ./configure --prefix=$HOME/ffmpeg-android --target-os=android --arch=armv7a --cpu=cortex-a8 --...
在本教程中,我们将探讨如何在多个平台上编译FFmpeg,特别关注Android平台,并支持h264软编码。这涉及到理解FFmpeg的源码结构、编译流程以及针对不同平台的配置选项。 首先,我们需要从FFmpeg官方网站下载源码,如...
然后,根据你的Android Studio项目配置创建一个`build.sh`脚本,用于配置和编译FFmpeg。例如: ```bash #!/bin/bash export ANDROID_ABI="armeabi-v7a" export NDK_PATH="/path/to/your/ndk" export TOOLCHAIN=...
包括但不限于`libasound2-dev`(声音处理开发包)、`libssl-dev`(SSL开发包)、`libx264-dev`(视频编解码包)等。 2. 下载PJLIB和PJSUA2的源代码。源代码需要从官方SVN仓库获取,如果源代码是从Windows系统下载的...
本文将深入讲解如何在Ubuntu环境下,编译适用于Android的FFmpeg库,并将重点放在源码编译和构建流程上。 首先,你需要确保你的Ubuntu系统已经安装了必要的编译工具和依赖项。这通常包括Git(用于克隆FFmpeg源码仓库...
- 配置编译选项:`./configure --prefix=your_install_path --target-os=android --arch=armv7-a --cpu=cortex-a8 --disable-doc --enable-shared --disable-static --enable-cross-compile --sysroot=$NDK/...
./configure --target-os=android --arch=arm64 --cpu=armv8-a --cross-prefix=$NDK/toolchains/llvm/prebuilt/linux-x86_64/bin/aarch64-linux-android- --sysroot=$NDK/platforms/android-21/arch-arm64 --prefix=...
./configure --enable-libx264 ``` 配置完成后,执行`make`命令编译FFmpeg,编译过程中会链接x264库。如果一切顺利,你将得到一个包含了x264编码器的FFmpeg二进制文件。 在实际应用中,你可以使用FFmpeg的命令行...
Linphone编译错误及解决方法 Linphone是一款开源的VoIP电话软件,但是在编译过程中经常会遇到各种错误。这些错误可能是由于缺少依赖项、头文件、库文件等原因引起的。在这里,我们将列举一些常见的Linphone编译...
3. 配置:使用configure脚本进行配置,指定目标平台(这里是Android)、编译选项和组件。 4. 编译:执行make命令,开始编译过程。 5. 安装:编译完成后,使用make install将库文件安装到指定目录。 在编译FFmpeg时...
3. **配置编译选项**:进入源码目录,使用`configure`脚本来配置编译选项。你可以根据需要选择编译哪些组件、启用哪些特性。例如: ``` ./configure --enable-gpl --enable-nonfree --enable-libx264 --enable-...
-disable-network --enable-ffmpeg --enable-avcodec --enable-avformat --enable-avfilter --enable-swresample --enable-libmp3lame --enable-libopus --enable-libvorbis --enable-libvpx --enable-libx264 --...
本文将深入探讨FFmpeg的使用,重点在下载、编译、安装及配置,尤其关注在CentOS 7.6系统下的操作。 首先,让我们了解FFmpeg的下载。FFmpeg的源代码通常可以从其官方网站或者通过Git仓库获取。`ffmpeg-snapshot.tar....
确保你的Linux系统安装了必要的依赖,如`sudo apt-get install build-essential`以获取基础的编译工具,`sudo apt-get install yasm`安装YASM汇编器,`sudo apt-get install libx264-dev libfaac-dev libmp3lame-dev...