编译Android下可用的FFmpeg+x264

编译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

编译完成。

http://hi.baidu.com/duizhe_memory/item/482e6fd6ccfee7fa93a974be?qq-pf-to=pcqq.group

编译Android下可用的FFmpeg+x264的更多相关文章

  1. FFmpeg: mac下手动编译android上使用的FFmpeg(支持x86、armeabi-v7a、arm64-v8a)

    之前一直在linux下编译FFmpeg,最近换电脑了,尝试了下在mac下编译ffmpeg,特记录之. 一. 准备工作 1. 下载FFmpeg.(http://ffmpeg.org/download.h ...

  2. 编译vs下可调试的ffmpeg和x264

    以前随手记的笔记,翻出来,整理下哈 ffmpeg 在windows上的编译还是比较麻烦的,而且如果mingw-gcc编译的话,是无法在vs下调试的 所以以前刚开始玩ffmpeg的时候,费了一些功夫,用 ...

  3. ubuntu下使用脚本交叉编译windows下使用的ffmpeg + X264

    这里主要是补充一些遇到的问题和解决方法. 2013-06 下旬 由于项目需要,重新编译ffmpeg+264+其他. 这里使用的环境Ubuntu 13.04,脚本依然是cross_compile_ffm ...

  4. 在linux下编译android下的opencv,使用cmake的方法

    #前一篇帖子实验了build_sdk.py来编译opencv,失败了.#本篇尝试使用cmake来编译#感谢这篇帖子提供的指导:https://www.cnblogs.com/jojodru/p/100 ...

  5. macos下命令行通过ndk编译android下可以执行的ELF程序(并验证opencl的调用)

    源码如下,实现把一个JPG保存成灰度图格式的BMP 1 //jpg2bmp.cpp 2 #include <stdio.h> 3 #include <inttypes.h> 4 ...

  6. android下m、mm、mmm编译命令的使用

    android下m.mm.mmm编译命令的使用 通过查看android源码目录下的build/envsetup.sh文件,可知: - m:       Makes from the top of th ...

  7. linux环境下编译Android apk

    Android源码目录下的build/envsetup.sh文件,描述编译的命令 - m:       Makes from the top of the tree. - mm:      Build ...

  8. 编译android源码m、mm、mmm命令的使用

    http://blog.163.com/zz_forward/blog/static/212898222201442873435471/ gcc怎么查看它的默认include路径和库的路径呢? //- ...

  9. ffmpeg学习笔记-Linux下编译Android动态库

    Android平台要使用ffmpeg就需要编译生成动态库,这里采用Ubuntu编译Android动态库 文件准备 要编译生成Android需要以下文件 NDK ffmpeg源代码 NDK下载 NDK可 ...

随机推荐

  1. golang round

    func Round(f float64, n int) float64 {pow10_n := math.Pow10(n)return math.Trunc((f+0.5/pow10_n)*pow1 ...

  2. 错误 make: Nothing to be done for 'default'

    Makefile书写格式非常严格,all:<TAB缩进>make -C $(KDIR) M=$(PWD) $(EXTRA_CFLAGS) modulesdefault:<TAB缩进& ...

  3. position(static-relative-absolute-fixed),margin(top-right-bottom-left),top-right-bottom-left

    最近写css遇到一些问题,所以准备写下来捋一下思路. 1.position=satic下看margin的使用.(top-right-bottom-left在这种case下无效) 1-1)margin ...

  4. Linux 服务器初始配置步骤

    1.IP配置 vim /etc/sysconfig/network-scripts/ifcfg- BOOTPROTO=dhcp 改成 static ONBOOT=no 改成 yes 添加 IPADDR ...

  5. innodb next-key lock解析

    參考http://blog.csdn.net/zbszhangbosen/article/details/7434637#reply 这里补充一些: (1)InnoDB默认加锁方式是next-key ...

  6. 字串乱序 PHP&JS

    <?php /** * 字串乱序 PHP&JS * * php 中把字串乱序后输出给客户机的 JAVASCRIPT , JAVASCRIPT 中恢复 * 在指定长度提取一个字符,并把这一 ...

  7. HTML基础第五讲---控制表格及其表项的对齐方式

    转自:https://i.cnblogs.com/posts?categoryid=1121494 缺省情况下,表格在浏览器屏幕上左对齐,你可以使用<TABLE>的ALIGN属性来指定表格 ...

  8. 含有打印、统计DataGridView(2)

    /// <summary>        /// 导出数据到Excel                /// </summary>        public void loa ...

  9. 【Codeforces Round #446 (Div. 2) A】Greed

    [链接] 我是链接,点我呀:) [题意] 在这里输入题意 [题解] 贪心选容量大的瓶子就好 [代码] #include <bits/stdc++.h> #define int long l ...

  10. Jenkins学习总结(1)——Jenkins详细安装与构建部署使用教程

    Jenkins是一个开源软件项目,旨在提供一个开放易用的软件平台,使软件的持续集成变成可能.Jenkins是基于Java开发的一种持续集成工具,用于监控持续重复的工作,功能包括: 1.持续的软件版本发 ...