Mac下编译OpenH264 for android
2017-07-11 14:34
330 查看
来源:彩色世界(https://blog.ibaoger.com/2017/07/10/compile-openh264-for-android/index.html)
由于OpenH264项目的文档较少,初学的门槛较高,所以整理一些文章来帮忙初学者入门。
系列文章包括:
编译OpenH264 for Windows
编译OpenH264 for Android
编译OpenH264 for iOS
编译OpenH264 for Windows Phone
OpenH264编码示例
OpenH264解码示例
OpenH264项目结构
Android Studio v2.2.3
Android NDK r10b
注:Android Studio自带的 SDK 中 SDK Tools 版本必须小于等于 25.2.5
Apache Ant v1.10
NASM v2.10.07
注:NASM 版本必须小于等于 2.10.07
https://dl.google.com/dl/android/studio/install/2.3.3.0/android-studio-ide-162.4069837-mac.dmg?hl=zh-cn
注:把 ANDROID_SDK 替换为真实的 SDK 完整路径
注:Mac 自带有 nasm,因此 export 时,新下载的 nasm 路径在放在 $PATH 前面,以覆盖原版本
注:把 ANDROID_NDK 替换为真实的 NDK 完整路径
注:Android NDK 从 level21 开始支持 64位架构,因此 TARGET 低于 android-21 的将无法编译 arm64、x86_64、mips64 库
注:官方已经注明 mips、mips64 两种架构未做优化处理,不建议使用
libcommon.a
libdecoder.a
libencoder.a
libopenh264.a
libprocessing.a
libopenh264.so
简介
OpenH264 是思科的开源项目,可以编码解码H264,常见的H264编码器还有x264项目。由于OpenH264项目的文档较少,初学的门槛较高,所以整理一些文章来帮忙初学者入门。
系列文章包括:
编译OpenH264 for Windows
编译OpenH264 for Android
编译OpenH264 for iOS
编译OpenH264 for Windows Phone
OpenH264编码示例
OpenH264解码示例
OpenH264项目结构
编译环境
Mac OS X 10.12.5 x86_64Android Studio v2.2.3
Android NDK r10b
注:Android Studio自带的 SDK 中 SDK Tools 版本必须小于等于 25.2.5
Apache Ant v1.10
NASM v2.10.07
注:NASM 版本必须小于等于 2.10.07
安装过程
OpenH264 官网有简要的编译说明,只是其中有不周全的地方;安装 Android Studio
从官网下载 Android Studio 并安装到默认位置;https://dl.google.com/dl/android/studio/install/2.3.3.0/android-studio-ide-162.4069837-mac.dmg?hl=zh-cn
安装 nasm
从官网下载 mac 版本的 [nasm](http://www.nasm.us/pub/nasm/releasebuilds/2.10.07/macosx/nasm-2.10.07-macosx.zip,并把解压后的 nasm.exe 文件拷贝到 ~/app/nasm 目录下;安装 ant
使用 brew 命令行安装,命令如下brew install ant
设置环境变量
在命令行中设置环境变量export PATH=$PATH:ANDROID_SDK/tools export PATH=~/app/nasm:$PATH
注:把 ANDROID_SDK 替换为真实的 SDK 完整路径
注:Mac 自带有 nasm,因此 export 时,新下载的 nasm 路径在放在 $PATH 前面,以覆盖原版本
下载 OpenH264 源码
从官网下载 OpenH264 源码,并解压到 ~/openh264编译 OpenH264
在命令行中,执行以下命令cd ~/openh264 # armeabi make OS=android NDKROOT=$NDK TARGET=android-21 ARCH=arm NDKLEVEL=21 APP_ABI=armeabi clean make OS=android NDKROOT=$NDK TARGET=android-21 ARCH=arm NDKLEVEL=21 APP_ABI=armeabi # armeabi-v7a make OS=android NDKROOT=$NDK TARGET=android-21 ARCH=arm NDKLEVEL=21 clean make OS=android NDKROOT=$NDK TARGET=android-21 ARCH=arm NDKLEVEL=21 # arm64-v8a make OS=android NDKROOT=$NDK TARGET=android-21 ARCH=arm64 NDKLEVEL=21 clean make OS=android NDKROOT=$NDK TARGET=android-21 ARCH=arm64 NDKLEVEL=21 # x86 make OS=android NDKROOT=$NDK TARGET=android-21 ARCH=x86 NDKLEVEL=21 clean make OS=android NDKROOT=$NDK TARGET=android-21 ARCH=x86 NDKLEVEL=21 # x86_64 make OS=android NDKROOT=$NDK TARGET=android-21 ARCH=x86_64 NDKLEVEL=21 clean make OS=android NDKROOT=$NDK TARGET=android-21 ARCH=x86_64 NDKLEVEL=21 # mips make OS=android NDKROOT=$NDK TARGET=android-21 ARCH=mips NDKLEVEL=21 clean make OS=android NDKROOT=$NDK TARGET=android-21 ARCH=mips NDKLEVEL=21 # mips64 make OS=android NDKROOT=$NDK TARGET=android-21 ARCH=mips64 NDKLEVEL=21 clean make OS=android NDKROOT=$NDK TARGET=android-21 ARCH=mips64 NDKLEVEL=21
注:把 ANDROID_NDK 替换为真实的 NDK 完整路径
注:Android NDK 从 level21 开始支持 64位架构,因此 TARGET 低于 android-21 的将无法编译 arm64、x86_64、mips64 库
注:官方已经注明 mips、mips64 两种架构未做优化处理,不建议使用
OpenH264 生成文件
生成的文件位于 ~/openh264 目录下,共计5个静态库,1个动态库libcommon.a
libdecoder.a
libencoder.a
libopenh264.a
libprocessing.a
libopenh264.so
使用方法
参见OpenH264编码示例、OpenH264解码示例两篇文章;相关文章推荐
- macosx 交叉编译 valgrind For Android
- Mac下编译OpenCV for android
- mac 平台下编译android版本 ffmpeg+h264
- Qt for Android on Mac:源码编译及环境配置
- mac下配置Qt for Android编译环境
- Mac下编译OpenH264 for iOS
- You asked for an OpenJDK 7 build but your----Android源码编译之JDK下载问题
- 在Mac上安装编译OpenCV (for Cpp / Java / Android / Python)
- [转]ubuntu下编译opencv for android及sample demo
- Android 4.0 x86 Linux3.0.8内核编译简介/Compile kernel for Android-x86
- 【Android Native Code开发系列】七 使用NDK进行交叉编译 & 编译ACE for android
- Mac OS X下搭建Android Source编译环境的问题及解决方法
- 编译truecrypt for android
- Mac OS X 10.6下android源码编译
- opencv for android 编译
- 下载CyanogenMod 7.2 for Motorola Defy (Android 2.3.7 AOSP)的CM源码并编译
- How to Cross Compile the Bash shell for Android 1.5 (为Android平台编译Bash shell)
- ffmpeg的编译大全(包括 ffmpeg for android)
- mac os set the path for android