Bilibili

引言:主要是因为刚开始接触的时候整个人都是懵逼呵呵的。

时间:2018年03月27日

作者:JustDo23

官方:https://github.com/Bilibili/ijkplayer

基于:Mac OS

01. 简介

  1. Android/iOS video player based on FFmpeg , with MediaCodec, VideoToolbox support.
  2. Video player based on ffplay
  3. remove rarely used ffmpeg components to reduce binary size config/module-lite.sh
  4. 顶层封装使用与平台原生方法基本相同。

02. 准备

  1. 在编译之前需要安装必要的工具软件

    # install homebrew$ ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"# install git$ brew install git# install yasm$ brew install yasm
  2. 需要配置相关的环境变量

    # add these lines to your ~/.bash_profile or ~/.profile# export ANDROID_SDK=# export ANDROID_NDK=# 或者直接执行$ export ANDROID_NDK=/Users/JustDo23/app/android/android-ndk-r10e$ export ANDROID_SDK=/Users/JustDo23/app/android/android-sdk-macosx

03. 编译

  1. 逐行执行命令

    # 克隆项目到指定文件夹$ git clone https://github.com/Bilibili/ijkplayer.git ijkplayer-android# 进入文件夹$ cd ijkplayer-android# 创建并切换分支$ git checkout -B latest k0.8.8# 执行初始化脚本$ ./init-android.sh# 进入目录$ cd android/contrib$ ./compile-ffmpeg.sh clean$ ./compile-ffmpeg.sh all$ cd ..$ ./compile-ijk.sh all
  2. 编译完成。编译是一个漫长的过程。

04. 导入

  1. 编译成功之后会生成完整的 Android 项目
  2. 目录:ijkplayer-android/android/ijkplayer/
  3. 使用 Android Studio 在指定目录打开项目
  4. 在各个依赖下可以找到相应平台的 .so 文件

05. 配置

config 目录下有三个不同等级的配置和一个配置指向文件。

  1. If you prefer more codec/format

    $ cd config$ rm module.sh$ ln -s module-default.sh module.sh
  2. If you prefer less codec/format for smaller binary size (include hevc function)

    $ cd config$ rm module.sh$ ln -s module-lite-hevc.sh module.sh
  3. If you prefer less codec/format for smaller binary size (by default)

    $ cd config$ rm module.sh$ ln -s module-lite.sh module.sh

因此可以根据需求选择不同的配置。

06. 支持 amr 格式

默认配置并不支持播放 amr 格式音频文件。在 module-lite.sh 文件中添加如下配置

# ./configure --list-decodersexport COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --enable-decoder=amrnb"export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --enable-decoder=amrwb"# ./configure --list-muxersexport COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --enable-muxer=amr"# ./configure --list-demuxersexport COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --enable-demuxer=amr"

07. 支持 Https

默认配置并不支持 https 网络地址。需要在编译时 openSSL

$ ./init-android-openssl.sh$ ./init-android.sh$ cd android/contrib$ ./compile-openssl.sh clean$ ./compile-ffmpeg.sh clean$ ./compile-openssl.sh all$ ./compile-ffmpeg.sh all$ cd ..$ ./compile-ijk.sh all

更多相关文章

  1. Android(安卓)Studio 混淆打包及常见第三方依赖的混淆配置
  2. Android解压及打包system.img
  3. 关于getSharedPreferences 使用注意条件
  4. 获取android配置文件的版本信息
  5. 手动安装配置Android(安卓)Studio
  6. 使用Jenkins做Java、Android项目开发持续集成
  7. 2018.10月Android优质开源项目
  8. 针对Android(安卓)Studio安装完之后activity_main.xml前几行报错
  9. 第一章:初入Android大门(教程篇)(下)

随机推荐

  1. php多进程处理
  2. 基于MySQL查询的Laravel路由
  3. 【实战】如何通过html+css+mysql+php来快
  4. 在使用PHP编程时,使用存储过程还是硬编码S
  5. 如何在php / mysql中使用事务
  6. Zend Studio-8.0.0中文汉化教程及入门教
  7. 使用php codeigniter进行Mysql数据库同步
  8. 填充PHP数组:首先检查索引?
  9. 整理一些Thinkphp开发的实用的一些系统源
  10. Win7安装php7 + apache2.4,成功启动