首页 > 系统服务 > 详细

linux 下编译ijkplayer的so库

时间:2019-06-16 10:31:13      阅读:166      评论:0      收藏:0      [点我收藏+]
BIliBIli开源播放器github地址:
这个播放器是没有编译过的,没有so文件,只是个播放器壳,播放支持的格式内容取决于你下载他的ffmpeg编译时设定的配置。个人觉得播放器ijkplayer和内核ffmpeg分开放有助于解耦,方便播放器升级时候,不用重新下载ffmpeg。
 
ijkplayer 最新版本:k0.8.8
ffmpeg 基于内核:3.4
 
编译环境需要下载 git  和yasm
1,linux环境,安装好NDK,设置好环境代码,最好把它写到当前用户的.bashrc下。
 
export JAVA_HOME=/home/lee/Desktop/jre1.8.0_191/bin
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH
//NDK
export ANDROID_NDK=/home/leesoo/Desktop/android-ndk-r10e
export PATH=$ANDROID_NDK:$PATH
2,初始化android (比较久,下载半个小时)
./init-android.sh
看脚本就是git https://github.com/Bilibili/FFmpeg.git   到extra/ffmpeg 文件夹里面
再复制  到android/contrib/ffmpeg-$1 各个平台
最后./init-config.sh
./init-android-libyuv.sh           
./init-android-soundtouch.sh       // 声音处理,可不要?视频倍速播放时候,声音变调用
3,编译脚本配置
就是自动化编译时的一些配置选项,比如支持什么协议啊,支持什么音视频类型等, 
这个配置文件是:config/module.sh,你喜欢可以打开看看这个文件: 
比如这里是配置处理什么类型的数据的,enable启用,disable禁用。
另外官方给我们提供了三个模板给我们使用:
module-default.sh:默认,如果你喜欢更多类型可以用这个;
module-lite-hevc.sh:如果您更喜欢较小的二进制大小的编解码器/格式(包括hevc功能)
module-lite.sh:如果您更喜欢较小的二进制大小的编解码器/格式(默认情况下)!
反正体积最小,就用module-lite.sh这个就行了,使用也很简单:
 
rm module.sh
ln -s module-lite.sh module.sh  //建立软链接到module-lite.sh,先删掉原来的,不然提示已存在
source module.sh
技术分享图片
 
4,编译ijk用的FFmpeg  (编译一个平台大概5-10分钟,不写平台默认是ARMV7A)
执行    . /compile-ffmpeg.sh
会生成对应平台的ffmpeg库文件。 用来做预编译Prebuilt。
/ijkplayer-android/android/contrib/build/ffmpeg-armv7a/output/ 目录
生成 libijkffmpeg.so (15-20MB大)
技术分享图片
5,编译ijkpalyer,生成libijkffmpeg.so   libijkplayer.so    libijksdl.so  3个库文件。
 
执行./compile-ijk.sh 
 
因为编译FFmpeg 只有一个平台,所以compile-ijk.sh  不写平台参数也默认编译armv7a的库文件,生成so路径为。把它拷贝到安卓项目下对应的libs目录即可使用。
技术分享图片
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

linux 下编译ijkplayer的so库

原文:https://www.cnblogs.com/qq511430890/p/11029539.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!