本文可以编译出集成了x264和fdk_aac的库,而且支持neon


下载源码:

https://github.com/mstorsjo/fdk-aac

http://sourceforge.net/projects/opencore-amr/files/fdk-aac/
fdk_aac目前最新版是0.1.4,详见其ChangeLog,此处用的是0.1.1版


http://www.videolan.org/developers/x264.html

ffmpeg-2.7.2

解压后重命名文件夹:

mv fdk-aac-0.1.1 fdk-aac
mv ffmpeg-2.7.2 ffmpeg
mv x264-snapshot-20150813-22455 x264 
cp  cmdl_parser.cpp fdk-aac/libSYS/src/
cp genericStds.h fdk-aac/libSYS/include/
需要修改脚本里面ndk的路径
 
 
chmod777build_android_static.sh
./build_android.sh > result.log

结果:

本文所用脚本下载:


https://yunpan.cn/c6SrYusQUPWqm访问密码5b38


附录:

问题1:

编译libSYS/src/cmdl_parser.cpp出错

stdio.h:57:9: error: 'off_t' does not name a type  

解决:注释掉cmdl_parser.cpp中的下面语句:

//#define _SYS_TYPES_H_  

问题2:

libSYS/src/genericStds.cpp:108 : stdio.h:57:9: error: 'off_t' does not name a type  

解决:修改libSYS\include\genericStds.h

注释掉:

 问题3: 
libavcodec/libavcodec.a(fft_fixed_init_arm.o): In function `ff_fft_fixed_init_arm':
fft_fixed_init_arm.c:(.text.unlikely+0x2c): undefined reference to `ff_fft_fixed_calc_neon'
libavcodec/libavcodec.a(fft_init_arm.o): In function `ff_fft_init_arm':
fft_init_arm.c:(.text.unlikely+0x30): undefined reference to `ff_fft_permute_neon'
fft_init_arm.c:(.text.unlikely+0x34): undefined reference to `ff_fft_calc_neon'

但好像编译出了.a,只是最后Buildingone...时报错了。

解决:使用最新的ffmpeg版本,并注释掉build_one那一行。

艺搜参考

https://github.com/nxtreaming/FFmpegAndroid/blob/master/FFmpegLibrary/jni/build_android.sh

http://www.jb51.cc/article/p-oxxseypv-ce.html

http://www.51testing.com/html/88/377588-834412.html

在CentOS中编译FFmpeg for Android静态库(含fdk aac,x264)的更多相关文章

  1. HTML5 播放 RTSP 视频的实例代码

    目前大多数网络摄像头都是通过 RTSP 协议传输视频流的,但是 HTML 并不标准支持 RTSP 流。本文重点给大家介绍HTML5 播放 RTSP 视频的实例代码,需要的朋友参考下吧

  2. ios – 我可以使用AVCaptureSession将AAC流编码到内存吗?

    解决方法我最后向Apple寻求建议.似乎AVCaptureSession抓住了AAC硬件编码器,但只允许您使用它直接写入文件.您可以使用软件编码器,但您必须专门询问它而不是使用AudioConverterNew:同当然,软件编码器会占用cpu资源,但会完成工作.

  3. ios – ffmpeg不会在我的项目中构建,在示例应用程序中运行良好

    我已经尝试了几个小时,但我无法弄清楚这一点.我在我的项目中使用KXMOVIE.我按照指示下载并编译了ffmpeg二进制文件.示例应用程序实际上工作正常,但我不能让它在我自己的项目中构建.所有.a文件都在那里,它与示例应用程序中的文件完全相同.当我尝试为模拟器构建时,我收到此错误.我究竟做错了什么?我甚至不知道从哪里开始.解决方法您还需要与libiconv链接.假设你拥有它,请将-liconv作为链接选项.

  4. ios – 如何将YUVJ420P中的FFMPEG AVFrame转换为AVFoundation cVPixelBufferRef?

    我在YUVJ420P中有一个FFMPEGAVFrame,我想用CVPixelBufferCreateWithBytes将它转换为CVPixelBufferRef.我想这样做的原因是使用AVFoundation来显示/编码帧.我选择了kCVPixelFormatType_420YpCbCr8BiPlanarVideoRange并尝试转换它,因为AVFrame有三个平面的数据Y480Cb240Cr24

  5. 用swift和Accelerate的快速傅里叶变换(FFT)来实现对波形的整形

    Swift提供了一个机会,通过方法重载或为Accelerate框架进行包装后,可以让交互更加容易。Accelerate框架提供了另一个解决方案,叫做快速傅里叶变换,关于这个方案这里有一个很好的解释。我们在例子AccelerateFunctions.playground中实现了这个原型,你可以对照这个例子来看下面的内容。从这里开始Accelerate将帮助我们完成工作。这里我们要使用到Accelerate的vDSP库,它正好有这类功能的方法。

  6. android – UnsatisfiedLInkError使用NDK链接到FFMPEG

    我使用bambuser的文件编译了FFMPEGforandroid.编译运行正常.没有错误.我还确保在build.sh中更改包名称.但是,一旦我尝试链接到文件,手机就会抛出UnsatisfiedLinkError.这是Androkd.mk文件:Video.c很简单:相应的Java代码也很简单:但我得到这个错误:我尝试用Java手动加载预构建的共享库(bambuser文件)(使用System.loa

  7. android – 使用FFmpeg检索专辑封面

    我正在开发一个依赖于FFmpeg来检索音频元数据的Android应用程序.我知道可以使用FFMpeg以编程方式检索专辑封面.但是,一旦您解码了艺术,如何生成图像文件以便在应用程序中使用?

  8. Android:如何移动输出声音的音高(实时)

    我是Android开发的新手.我正在寻找任何将音高变换应用于输出声音的方法(实时).但我找不到任何开始的意义.我发现这个topic,但我仍然不知道如何应用这个.有什么建议?

  9. 如何从android流式传输到ffserver

    我需要从一个Android摄像头/文件流到一个远程ffserver,它将播放我的视频.我可以通过发出如下命令在ubuntu的桌面上执行此操作:或流式传输这样的文件:所以基本上我希望能够从android做到以上.经过几次搜索,这是我到目前为止所做的–我遇到了这个链接http://bambuser.com/opensource,我从中下载了ffmpeg源并构建了它.构建输出几件事:1.共享库[liba

  10. 如何在Android中下载m3u8格式的媒体文件

    我需要解析m3u8媒体文件,这是一个播放列表,并下载实际的媒体内容.据我了解,以下是涉及的过程:>解析m3u8文件并获取’.TS’块>检索完所有块后,将其合并为单个文件>将合并的TS文件转换为mp4格式.不幸的是,我找不到任何lib/模块来执行上述步骤.任何人都可以提供更好的方法或工作样本来处理和下载m3u8文件吗?

随机推荐

  1. 在airgapped(离线)CentOS 6系统上安装yum软件包

    我有一个CentOS6系统,出于安全考虑,它已经被空气泄漏.它可能从未连接到互联网,如果有,它很长时间没有更新.我想将所有.rpm软件包放在一个驱动器上,这样它们就可以脱机安装而无需查询互联网.但是,我在测试VM上遇到的问题是,即使指定了本地路径,yum仍然会挂起并尝试从在线存储库进行更新.另外,有没有办法使用yum-utils/yumdownloader轻松获取该包的所有依赖项和所有依赖项?目前

  2. centos – 命名在日志旋转后停止记录到rsyslog

    CentOS6.2,绑定9.7.3,rsyslog4.6.2我最近设置了一个服务器,我注意到在日志轮换后,named已停止记录到/var/log/messages.我认为这很奇怪,因为所有日志记录都是通过rsyslog进行的,并且named不会直接写入日志文件.这更奇怪,因为我在更新区域文件后命名了HUPed,但它仍然没有记录.在我停止并重新启动命名后,记录恢复.这里发生了什么?

  3. centos – 显示错误的磁盘大小

    对于其中一个磁盘,Df-h在我的服务器上显示错误的空白区域:Cpanel表明它只有34GB免费,但还有更多.几分钟前,我删除了超过80GB的日志文件.所以,我确信它完全错了.fdisk-l/dev/sda2也显示错误:如果没有格式化,我该怎么做才能解决这个问题?并且打开文件描述符就是它需要使用才能做到这一点.所以…使用“lsof”并查找已删除的文件.重新启动写入日志文件的服务,你很可能会看到空间可用.

  4. 如何在centos 6.9上安装docker-ce 17?

    我目前正在尝试在centOS6.9服务器上安装docker-ce17,但是,当运行yuminstalldocker-ce时,我收到以下错误:如果我用跳过的标志运行它我仍然得到相同的消息,有没有人知道这方面的方法?

  5. centos – 闲置工作站的异常负载平均值

    我有一个新的工作站,具有不寻常的高负载平均值.机器规格是:>至强cpu>256GB的RAM>4x512GBSSD连接到LSI2108RAID控制器我从livecd安装了CentOS6.564位,配置了分区,网络,用户/组,并安装了一些软件,如开发工具和MATLAB.在启动几分钟后,工作站负载平均值的值介于0.5到0.9之间.但它没有做任何事情.因此我无法理解为什么负载平均值如此之高.你能帮我诊断一下这个问题吗?

  6. centos – Cryptsetup luks – 检查内核是否支持aes-xts-plain64密码

    我在CentOS5上使用cryptsetupluks加密加密了一堆硬盘.一切都很好,直到我将系统升级到CentOS6.现在我再也无法安装磁盘了.使用我的关键短语装载:我收到此错误:在/var/log/messages中:有关如何装载的任何想法?找到解决方案问题是驱动器使用大约512个字符长的交互式关键短语加密.出于某种原因,CentOS6中的新内核模块在由旧版本创建时无法正确读取512个字符的加密密钥.似乎只会影响内核或cryptsetup的不同版本,因为在同一系统上创建和打开时,512字符的密钥将起作用

  7. centos – 大量ssh登录尝试

    22个我今天登录CentOS盒找到以下内容这是过去3天内的11次登录尝试.WTF?请注意,这是我从我的提供商处获得的全新IP,该盒子是全新的.我还没有发布任何关于此框的内容.为什么我会进行如此大量的登录尝试?是某种IP/端口扫描?基本上有4名匪徒,其中2名来自中国,1名来自香港,1名来自Verizon.这只发生在SSH上.HTTP上没有问题.我应该将罪魁祸首子网路由吗?你们有什么建议?

  8. centos – kswap使用100%的CPU,即使有100GB的RAM也可用

    >Linux内核是否应该足够智能,只需从内存中清除旧缓存页而不是启动kswap?

  9. centos – Azure将VM从A2 / 3调整为DS2 v2

    我正在尝试调整前一段时间创建的几个AzureVM,从基本的A3和标准A3到标准的DS2v2.我似乎没有能力调整到这个大小的VM.必须从头开始重建服务器会有点痛苦.如果它有所不同我在VM中运行CentOS,每个都有一个带有应用程序和操作系统的磁盘.任何人都可以告诉我是否可以在不删除磁盘的情况下删除VM,创建新VM然后将磁盘附加到新VM?

  10. centos – 广泛使用RAM时服务器计算速度减慢

    我在非常具体的情况下遇到服务器速度下降的问题.事实是:>1)我使用计算应用WRF>2)我使用双XeonE5-2620v3和128GBRAM(NUMA架构–可能与问题有关!

返回
顶部