写在前面 ffafaf这个编译真的太垃圾了 一堆毛病 感受下webrtc 傻瓜式编译
环境首先必须ndk 是android-ndk-r15c 或者 android-ndk-r14b
ubuntu 系统随便22或者20,18都行 有个非常重要的点python必须是2.7 不然你会看到一大堆报错
高版本的ubuntu默认都是python3了 所以你得查看下python版本配置python 为python2 怎么搞百度 不贴了
配置下android ndk android_NDK版本到环境变量 我这是.bash_profile 弄完后source ~/.bash_profile一下 (他这个脚本写的很垃圾一定要用ANDROID_NDK ANDROID_SDK脚本才能认出来)
然后就是参照befovy这份开源代码来的 下ffmpeg libsrt openssl 并且编译ijkplayer 增加 SRT 协议指南与踩坑 - 掘金
首先按官方步骤 装yasm git 有一点他没写那就是要装 pkg-config 不然后面编译会报错
yasm,git,pkg-config首先
brew install git
brew install yasm
# add these lines to your ~/.bash_profile or ~/.profile
# export ANDROID_SDK=<your sdk path>
# export ANDROID_NDK=<your ndk path>
下代码 搞完后 这里会编译运行
compile-ffmpeg这里生成的还是ffmepg的库可以后期自己替换官方高版本的ffmpeg
compile-ijk.sh 打包生成的ffmpeg以及ijkmedia里面的关于ffplay 跟ijksdl的内容生成三个so库
ijkffmpeg.so ijkffplay.so ijksdl.so 这里还需要拷贝到c++_shared.so到项目中总共四个库
git clone https://github.com/Bilibili/ijkplayer.git ijkplayer-android
cd ijkplayer-android git checkout -B latest k0.8.8
./init-android.sh //这里下ffmepg源码 版本号4.0
./init/init-android-openssl.sh //这里下openssl源码
./init/init-android-libsrt.sh // 这里下libsrt源码版本号1.4.1
cd android/contrib
./compile-openssl.sh arm64
./compile-libsrt.sh arm64
./compile-ffmpeg.sh arm64
cd ..
./compile-ijk.sh arm64
修改的点在git上链接
然后放在android studio debug的时候注意点
首先这里configuration一定要选上ijkmedia的目录不然进不了c 的debug
项目的目录结构是
具体的修改 这里改了官方的用 android.mk来编译c++ 用的cmake 可以看项目源码
https://github.com/heylee-svg/fork_ijkplayer