ijkplayer编译.so

来源:互联网 发布:网络水军 编辑:程序博客网 时间:2024/05/20 04:09

最近做直播平台,包括推流端、服务器、及播放端。现在用到手机播放rtmp流,查找第三方库ijkplayer可以实现该功能。

ijkplayer开源库地址https://github.com/Bilibili/ijkplayer

环境:Mac 或者ubunt

准备:git工具

        NDKr10e及以上版本

环境变量配置ANDROID_NDK

集成步骤

1 下载ijkplayer源码

git clone https://github.com/Bilibili/ijkplayer.git ijkplayer-android
我下载的版本是0.7.5

进入ijkplayer下载的目录

cd ijkplayer-android

创建一个分支


2 执行初始化操作

./init-android.sh
脚本会去下载ffmpeg的代码(下载比较慢,当然这还得看网速)



3 编译ffmpeg

cd android/contrib./compile-ffmpeg.sh clean./compile-ffmpeg.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


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

ffmpeg-user@ffmpeg.org mailing list or IRC #ffmpeg on irc.freenode.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

保存后就可以,如果有问题重启下电脑。

重新编译ffmpeg,通过。


4 编译.so

cd .. ./compile-ijk.sh all
如果./compile-ijk.sh不带all,只会编译arm-v7a的。

在android/ijkplayer/目录,各种芯片目录下会生成对应的三个.so,(分别在ijkplayer-arm64、ijkplayer-armv5、ijkplayer-armv7a、ijkplayer-x86、ijkplayer-x86_64这些项目的src/main/libs/对应的名称 目录下分别生成libijkffmpeg.so、libijkplayer.so、libijksdl.so这三个so文件)。

     

0 0
原创粉丝点击