WSL和Ubuntu编译IJKPlayer

Ubuntu、WSL上编译 IJKPlayer,您可以按照以下步骤进行操作:

系统准备
#更新包
sudo apt update 
 #安装编译所需的依赖项
sudo apt install -y autoconf automake build-essential cmake git libtool nasm pkg-config python3 unzip
#安装当前正在运行的内核版本对应的 Linux 内核头文件
sudo apt-get install linux-headers-$(uname -r) 
环境准备
# /home/user
wget https://dl.google.com/android/repository/android-ndk-r10e-linux-x86_64.zip
#解压NDK(先找到目标文件夹),NDK下载地址:https://dl.google.com/android/repository/android-ndk-r10e-linux-x86_64.zip
unzip /home/user/android-ndk-r10e-linux-x86_64.zip 
#编辑环境文件
nano ~/.bashrc
#添加环境参数内容如下
export ANDROID_NDK=/path/to/your/ndk
export PATH=$PATH:$ANDROID_NDK
#应用配置环境
source ~/.bashrc 
#查看当前NDK环境
echo $ANDROID_NDK 
源码下载
#下拉IJKPlayer源代码
git clone https://github.com/Bilibili/ijkplayer.git ijkplayer-android 
#进入源代码目录
cd ijkplayer-android

#下载指定的 ffmpeg 源码
./init-android.sh 
#下载指定的 ffmpeg 源码,支持https
./init-android-openssl.sh 
编译文件
#在项目根目录下
cd android/contrib  

#编译openssl
./compile-openssl.sh clean
./compile-openssl.sh all  

#编译ffmpeg 
./compile-ffmpeg.sh clean
./compile-ffmpeg.sh all  
编译IJK
#编译ijkplayer
cd ..  
./compile-ijk.sh all
#最终编译成功后文件在./android/ijkplayer/目录下
#例如arm64 so文件路径:./android/ijkplayer/ijkplayer-arm64/src/main/libs/
编译问题
#如果需要更改编译版本类型
cd config 
rm module.sh 
ln -s module-default.sh module.sh # 完整版 
ln -s module-lite.sh module.sh # 精简版 
ln -s module-lite-hevc.sh module.sh # 包含 HEVC 的精简版

#编译如果报错linux相关,添加内容到module.sh末尾
export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --disable-linux-perf"
export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --disable-bzlib"
#报错Unknown option "--disable-ffserver"和Unknown option "--disable-vda",注释如下参数
export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --disable-vda" 
export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --disable-ffserver"
#报错 :libavcodec/eac3_core_bsf.c:39: error: undefined reference to 'ff_ac3_parse_header',添加如下参数
export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --disable-bsf=eac3_core" 
export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --enable-parser=ac3"
#如果需要支持rtsp配置如下
export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --enable-demuxer=rtsp"
export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --enable-demuxer=sdp"
export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --enable-demuxer=rtp"
#如果部分播放无声音
export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --enable-decoder=nellymoser"
export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --enable-decoder=pcm"
export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --enable-decoder=pcm_alaw"
export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --enable-decoder=pcm_mulaw"
export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --enable-decoder=flac"
export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --enable-decoder=vorbis"
export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --enable-decoder=opus"
export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --enable-decoder=amr"

export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --enable-demuxer=wav"
export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --enable-demuxer=flac"
export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --enable-demuxer=ogg"
export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --enable-demuxer=matroska"
module.sh
#! /usr/bin/env bash

#--------------------
# Standard options:
export COMMON_FF_CFG_FLAGS=
# export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --prefix=PREFIX"

# Licensing options:
export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --disable-gpl"
# export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --enable-version3"
export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --disable-nonfree"

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值