ijkplayer编译的踩坑之路

一、编译缘由:

公司业务需要集成播放器,市面上用的比较多的是B端的ijkplayer播放器,使用方便,功能也比较强大,所在就采用了ijkplayer。项目的要求支持的mp4,3gp,rmvp,rm,avi,mov,mpg,flv封装格式和https协议,而且ijkplayer默认的编译的格式比较少,所以要重新编译,不过在编译的过程出现了各种问题,各种坑,所以记录一下,省得后人来踩。

二、编译历程

编译ijkplayer播放器要在linux环境下生成so,小编之前都是在windows上进行开发,没有在linux上开发过,对linux指令不是很熟悉,所以就想在简单的在windows配置环境,采用了Cygwin,后来我发现在我错了,装了Cygwin后,出错了这么多软件和环境的问题。后来放弃了,采用虚拟机,VMware+Ubuntu,其实这个方式更简单,只需要在官网下载安装即可,安装的时候给ubuntu的空间可以大一点,我的是60G,小的话可能会提示空间不足。于是就兴高采烈在开始编译了。按照着https://github.com/Bilibili/ijkplayer官网上的步骤来,卧槽,不行啊。后来通过不断的尝试和查找,终于编译成功了,下面的我尝试的正确步骤。

1、配置环境

install homebrew, git, yasm
ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
brew install git
brew install yasm
去官网下载解压jdk,sdk,ndk,ndk版本用的是r10e的
$sudo gedit ~/.bashrc

将一下内容粘贴到文档最底部(具体路径以自己的机器为准)

export JAVA_HOME=/home/tan/Android/jdk1.7.0_79
export JRE_HOME=/home/tan/android/jdk1.7.0_79/jre
export CLASSPATH=.:$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/jre/lib
export PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin
export ANDROID_SDK=/home/tan/android/android-sdk-linux
export PATH=$PATH:$ANDROID_SDK/platform-tools:$ANDROID_SDK/tools
export ANDROID_NDK=/home/tan/android/android-ndk-r13b
export ANDROID_NDK

保存,输入命令:source ~/.bashrc 使环境生效

2、编译之前

git clone https://github.com/Bilibili/ijkplayer.git ijkplayer-android
cd ijkplayer-android
git checkout -B latest k0.8.8

配置编译支持所有格式
cd config
先打开module-default.sh,在尾部添加下面代码,要不然会编译失败,这里是一个大坑
export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --disable-linux-perf"
export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --disable-bzlib"

rm module.sh
ln -s module-default.sh module.sh
cd android/contrib
sh compile-ffmpeg.sh clean

ok,真正要开始编译了
回到项目根目录
cd ijkplayer-android
./init-android-openssl.sh //这里是配置ssl,https协议
./init-android.sh
这里下载ffmpeg和预编译内容,比较耗时,可以喝一杯咖啡先,
完成后接着
cd android/contrib
./compile-openssl.sh clean
./compile-ffmpeg.sh clean
./compile-openssl.sh all
./compile-ffmpeg.sh all
这里的编译也比较耗时,不过等待的就是成功的喜悦啦
结束后,编译就完成了,接下来就是生成so文件

cd ..
./compile-ijk.sh all

生成过程还不太久,会在/ijkplayer-android/android/ijkplayer目录下生成我们所想要的包,生成的包还挺大的。每一个步骤都是比较重要的,落掉某个步骤可能就会导入生成失败,每次的编译生成过程也是比较耗时的,所以少踩点坑就可以节约很多时间。

三、视频相关技术

雷霄骅的 总结视音频编解码技术零基础学习方法

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 1.下载WMware虚拟机并安装激活 2.下载ubuntu系统并在WMware中新建虚拟机安装该系统,开机在HOM...
    兣甅阅读 922评论 0 0
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 177,378评论 25 709
  • 前言 随着音视频领域的火热,在很多领域(教育,游戏,娱乐,体育,跑步,餐饮,音乐等)尝试做音视频直播/点播功能,那...
    passiontim阅读 3,410评论 1 46
  • 《爱 情》 文/随风 心中有多少爱, 想向你表白。 愿意付出真情, 又怕你的不爱。 总在苦苦等待, 等着你的到来。...
    文艺随风阅读 259评论 0 0
  • 夏雨在窗外喧嚣地叫眼泪在枕旁肆虐地笑约好的电影似等了百年还没看到删掉的拥抱叹息徘徊躺在讯息箱倘若不说破会不会另一种...
    卡夫卡说阅读 244评论 0 1

友情链接更多精彩内容