在mac或者linux环境下编译ijkplayer相对于window环境的确方便多了,编译ijkplayer首要前提就是配置好环境
1.安装homebrew, git , yasm
Homebrew是Mac OSX上的软件包管理工具,能在Mac中方便的安装软件或者卸载软件,相当于linux下的apt-get、yum神器;Homebre可以在Mac上安装一些OS X没有的UNIX工具,Homebrew将这些工具统统安装到了 /usr/local/Cellar 目录中,并在 /usr/local/bin 中创建符号链接。
ruby -e "$(curl -fsSLhttps://raw.githubusercontent.com/Homebrew/install/master/install)"
Homebrew安装成功后,会自动创建目录 /usr/local/Cellar 来存放Homebrew安装的程序。 这时你在命令行状态下面就可以使用 brew 命令了.
注意:如果在安装过程中返回400,可以在几分钟后尝试重新安装。
Homebrew的使用
- 安装软件:brew install 软件名,例:brew install wget
- 搜索软件:brew search 软件名,例:brew search wget
- 卸载软件:brew uninstall 软件名,例:brew uninstall wget
- 更新所有软件:brew update
通过 update 可以把包信息更新到最新,不过包更新是通过git命令,所以要先通过 brew install git 命令安装git。
安装git
- 更新具体软件:brew upgrade 软件名 ,例:brew upgrade git
- 显示已安装软件:brew list
- 查看软件信息:brew info/home 软件名 ,例:brew info git / brew home git
brew home指令是用浏览器打开官方网页查看软件信息
- 查看那些已安装的程序需要更新: brew outdated
- 显示包依赖:brew reps
安装好homebrew,在安装git和yasm
终端输入: brew install git
brew install yasm
2
.安装好git和yasm后就要下载NDK和SDK来配置环境
1 download NDK for mac
http://developer.android.com/tools/sdk/ndk/index.html
下载解压即可
这是我解压好的sdk 和ndk
在打开终端的当前用户目下输入:open .bash_profile
上图是已配置好的ndk截图主要是
export PATH=${PATH}:ndk绝对路径
ANDROID_NDK=ndk绝对路径
export ANDROID_NDK
sdk的配置也是一个意思
编辑完后保存修改,输入source .bash_profile更新下
输入ndk_build
出现如上结果即代表配置成功
3
.下载ijkplayer源码
下面命令就是下载ijk的库,然后进入库文件夹,切换到build Android所使用的分支
git clone https://github.com/Bilibili/ijkplayer.git ijkplayer-androidcd ijkplayer-androidgit checkout -B latest k0.8.0
执行初始化操作,主要去下载ffmpeg的代码,变化主要在extra文件
./init-android.sh
编译ffmpeg,这个过程还是很需要时间的
cd android/contrib./compile-ffmpeg.sh clean./compile-ffmpeg.sh all
编译.socd .../compile-ijk.sh all
最终成功就会生成.so库
将ijkplayer文件夹作为项目导入Android studio即可
在下载好库之后也可以修改编解码器,具体查看
https://github.com/Bilibili/ijkplayer
简化操作步骤:
git clone https://github.com/Bilibili/ijkplayer.git ijkplayer-androidcd ijkplayer-androidgit checkout -B latest k0.8.0./init-android.shcd android/contrib./compile-ffmpeg.sh clean./compile-ffmpeg.sh allcd .../compile-ijk.sh all
问题:
如果出现此问题:“You must define ANDROID_NDK, ANDROID_SDK before starting.They must point to your NDK and SDK directories.\n”
这说明NDK配置问题。需要在用户名录下的.bash_profile文件配置ANDROID_NDK,当然路径要修改成自己ndk的路径了。
export PATH=$PATH:/Users/user/tools/android-ndk-r10e/
ANDROID_NDK=/Users/user/tools/android-ndk-r10e/
export ANDROID_NDK
如果配置好后始终出现这个问题也可以直接在
compile-ijk.sh
修改ndk的路径
ffmpeg编译x86_64时出现问题如下:
/Users/user/tools/ijkplayer-android/android/contrib/build/ffmpeg-x86_64/toolchain/bin//x86_64-linux-android-gcc
yasm/nasm not found or too old. Use --disable-yasm for a crippled build.
If you think configure made a mistake, make sure you are using the latest
version from Git. If the latest version fails, report the problem to the
de.net.
Include the log file "config.log" produced by configure as this will help
solve the problem.
这是需要更新或者安装一下yasm。
yasm安装方法:
curl http://www.tortall.net/projects/yasm/releases/yasm-1.3.0.tar.gz >yasm.tar.gztar zxvf yasm-1.3.0.tar.gzcd yasm-1.3.0/./configure --prefix=/usr/local/yasmmakemake install
/etc/profile 文件末尾添加export PATH="$PATH:/usr/local/yasm/bin"
mac 下用 sudo make install 获取管理员权限安装。
这些配置后编译还是出现上述问题,
网上说只会对当前的终端生效,想要永久生效的话可以直接在.bash_profile文件中添加配置环境变量,做法如下:
$vim ~/.bash_profile
然后在打开的bash_profile中添加:export PATH=$PATH:/usr/local/yasm/bin
保存后就可以,如果有问题重启下电脑。