/********************************************************************************************
* author:conowen@大钟
* E-mail:conowen@hotmail.com
* http://blog.csdn.net/conowen
* 注:本文为原创,仅作为学习交流使用,转载请标明作者及出处。
********************************************************************************************/
首先说明一点,此FFmpeg时官方原版,没有实现JNI层与java层,个人推荐使用移植havlenapetr的FFMpeg工程,已经实现了实现JNI层与java层,工作量少很多。
havlenapetr的FFMpeg工程编译可以参考我的博文:http://blog.csdn.net/conowen/article/details/7526398
一、编译环境说明
系统:windows 7 (64bit)+cygwin
NDK版本:android-ndk-r7b(windows)
FFmpeg版本:FFmpeg 0.10.2 "Freedom"
二、安装工具
2.1、安装cygwin的时候,默认为在线安装
当出现Select Packages对话框时,搜索“devel”,为了以防万一,把安装选项“default”更改为“install”,安装所以必须的编译工具。然后进入漫长的下载状态,差不多一两个小时,接下来的步骤默认就行。
2.2、安装Android NDK
安装完cygwin后,去到其安装目录,可以发现有一个“home”目录,里面有一个“当前windows用户名”的文件夹,就相当于linux系统下面的/home/userName了。然后把Android NDK(windows版本)安装到home目录下的那个“当前windows用户名”文件夹中。
2.3、配置NDK环境变量
在home目录下的那个“当前windows用户名下,用文本编辑器打开“.bash_profile”文件,在后面加入如下配置信息
2.4、完毕
打开cygwin,执行
若成功跳转,则证明环境变量已经配置成功。
三、编译FFmpeg
3.1、在http://ffmpeg.org/download.html网站可以下载最近的FFmpeg源码包,也可以通过git clone方式下载。
然后在windows系统中,随便在一个地方新建一个目录,如“myplayer”,在其下新建一个名为“jni”的目录,然后把下载回来的FFmpeg源码包解压在这里,文件名可以命名为“ffmpeg”。
3.2、下载下来的FFmpeg是一份纯C&C++的代码,为了编译它,需要configure,来配置所需要的模块和开启哪些功能,然后才能make。
在ffmpeg里面新建一个config.sh批处理文件,来实现configure。
config.sh内容如下:
然后在cygwin跳到ffmpeg目录下,执行
成功之后会生成config.h,config.log,config.mak等文件,可以通过查看config.h,是否开启成功了。
如我的上面的config.sh里面时开启了neon汇编优化选项,所以在config.h可以发现以下语句后面的值为1,表示开启。
注意:
后面的
表示在config.h里面,把HAVE_SYMVER 0修改为1。
3.3、编写Android.mk文件
最终会在myplayer目录下的libs目录下生产一个libffmpeg.so文件。大概3~6M左右
分享到:
相关推荐
在android上学习使用jni技术,也就是ndk。在应用层java调用c代码,并在c中回调java代码的示例,值得学习参考,具体请查看:http://blog.csdn.net/jan_s/article/details/43833443
(1)Android NKD开发示例源代码; (2)在实机(Android 2.2)上验证通过; (3)使用android-ndk-r7编译。
NDK 命令编译生成Android动态so或可运行程序Demo,欢迎下载,本demo需要配置好NKD 环境变量,并修改Demo中NDK 指向的头文件路径后,执行cmd命令即可生成
backup the script , Licensed under the Apache License
而且一些训练库没有集成进系统,这样只要下载本应用源代码,编译完就可以使用,由于资源库比较大100多MB,在编译的时候也比较慢,最后apk也有100多MB,总之这是一站式打包功能来在android上来验证seeface。...
android nkd develop example source code
android-ndk-r10e各种操作系统的下载
jar放在eclipse\plugins目录下面
android ndk 开发简单示例代码
jpbc-pbc是本身,使用nkd-build 。 gmp是; 由中国人民银行用于其计算。 jnidispatch来自 ,是.so文件包含在文件中。 这些构建中的每一个都包含在ARM和ARMv7平台中。用法假设您使用gradle,请执行以下步骤: git ...
debuggable-ndk-示例 一个简单的示例,说明如何使用nkd-build命令使用稳定的gradle 2.2.2链接本机模块。
2.将android mk文件添加到src/main/jni* 安卓.mk 应用程序.mk 核心文件 第三方.mk 3.添加C文件* mupdf.c 编译可以通过两种方式完成 * gradle build * nkd-build command 编译后的 .so 文件放在 src/main/obj/...
迷你打印机 支持Android的蓝牙打印机 ...编辑文件“ ./wnprinter/local.properties” 更改“ sdk.dir =(您的Android-SDK路径)” 更改“ ndk.dir =(您的Android-NKD路径)” 3.导入wnprinter 4.构建
iOS 条码生成 使用NKD xcode7 iOS9
nkd sdk ant and jdk is the neccesery tools in develop the android
NKD_certs 我将所有证书存储在哪里
NKD开发入门例子:一个简单的NDK HelloWorld的例子.
NDK中输出日志
TS House风格NKD 切线Snowball房屋风格存储库的准系统版本,可用于快速原型制作该存储库基于 此存储库中有一个gulpfile.js ,可加快房屋风格的开发速度。 您需要做的只是: 安装Node( )和Gulp( ) 运行npm ...
NKD(NestOS Kubernetes Deployer)是专为在NestOS上部署和维护Kubernetes集群而打造的解决方案。其旨在通过在集群外提供一系列服务,涵盖了基础设施和Kubernetes核心组件的部署、更新和配置管理等,从而简化了集群...