首页
登录 | 注册

编译Android下可用的FFmpeg+x264

原文来源http://hi.baidu.com/duizhe_memory/item/482e6fd6ccfee7fa93a974be
这是搜索到最简单的,同时生成.a & .so的配置脚本了。
编译x264:

下载最新版的x264

ftp://ftp.videolan.org/pub/videolan/x264/snapshots/

1.解压到指定的目录

2.切换当前目录为该目录

3.创建一个shell脚本build_x264.sh,内容如下:

???NDK= NDK=/home/duizhe/android-ndk-r6(你自己的NDK根目录)

PREBUILT=$NDK/toolchains/arm-linux-androideabi-4.4.3/prebuilt

PLATFORM=$NDK/platforms/android-8/arch-arm (or any other android platform you want)

PREFIX=/home/android-ffmpeg

./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/bash

export NDK=/home/duizhe/android-ndk-r6

export PREBUILT=$NDK/toolchains/arm-linux-androideabi-4.4.3/prebuilt

export PLATFORM=$NDK/platforms/android-8/arch-arm

export PREFIX=/home/android-ffmpeg

function 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/android-ffmpeg/include -fPIC -DANDROID -D__thumb__ -mthumb -Wfatal-errors -Wno-deprecated -mfloat-abi=softfp -mfpu=vfpv3-d16 -marm -march=armv7-a" \

--extra-ldflags="-L/home/android-ffmpeg/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


编译完成。


相关文章

  • 编译过程: 1 http://ffmpeg.zeranoe.com/builds/  下载官方提供的源码,win32库和dll. 2 新建vc2005 console空工程,把ffmpeg.h,ffmpeg.c,cmdutils.c,cmd ...
  • 在ffmpeg的源代码中,有新旧版本的编解码接口调用示例,但是demux.mux然后decode.encode的联动起来的接口调用实例并没有,在使用旧版本的编解码接口在编译时会报接口弃用告警信息,所以最好尽快把原有的调用方式切换到新的编解码 ...
  • FFmpeg使用手册 - FFmpeg 的编译安装-T
    FFMpeg在官方网站中提供了已经编译好的可执行文件,用FFmpeg的人很多,因为FFmpeg是开源的,并且可以自己DIY,而且很强大,所以,FFmpeg还有一个优势就是开源.而在使用Linux时,无论是用ubuntu或者redhat,如果 ...
  • FFmpeg使用手册 - FFmpeg 的基本组成-T
    1 FFmpeg 的基本组成 FFmpeg 的基本组成包含Format.Codec.Filter.Devices.Utils等,结构如图: AvFormats: 主要为媒体文件的封装格式,也可以称之为多媒体编码数据的容器,包含了音频数据,视 ...
  • 【Xamarin.Android】 Async / Await入门
    异步编程是风靡一时的移动应用程序开发的很好的理由.使用异步方法对于长时间运行的任务,比如下载数据,有助于保持您的用户界面响应,而不是使用异步方法,或不当使用 async/await,可以使应用程序的UI停止响应用户输入,直到长时间运行的任务 ...
  • RTC的驱动移植和JNI修改 唠叨几句,本文目的是: 1>移植hym8563的rtc驱动,硬件板载是S905X,操作系统是Android7.1. 2>从drivers分析道DateTimeSetting.java的执行过程. 首 ...

2019 unjeep.com webmaster#unjeep.com
12 q. 0.025 s.
京ICP备10005923号