Git Product home page Git Product logo

ijkplayer's Introduction

项目介绍

https://github.com/bilibili/ijkplayer 的fork,有所改动

  • 升级openssl 至1.1.1o,提升安全性,原有的有安全漏洞风险,切换到官方上游
  • 默认开启x264,x265,启用dash(还是用不了?),opus支持,启用libxml2
  • x86_64(目标平台)因为编译错误原因默认关闭汇编加速
  • 支持Android NDK r21(其他版本需要有llvm和gcc 4.9共存的版本?)
  • 测试系统Archlinux最新的
  • 暂不支持ios(因为我没设备测试)
  • 打开Linux多线程编译

构建(Android)

拉取ffmpeg,libyuv,soundtouch

sh init-android.sh

拉取openssl

sh init-android-openssl.sh

指定Android NDK变量

export ANDROID_NDK=NDK所在文件夹

切到构建目录

cd android/contrib

清理可能干扰的文件

sh compile-openssl.sh clean
sh compile-ffmpeg.sh clean

编译FFmpeg前,要把当前目录下的每个ffmpeg-平台架构的文件夹里面的configure改下,不然100%报错(原因是openssl更新了测试用的函数,然后ffmpeg没有跟进(是b站的fork没跟进,还在4.0))

关于libxml2(仍待测试,实在不行去module-lite.sh里面把dash,libxml2关掉)

删除以下代码(前提是你系统有libxml2库,debian/ubuntu可能叫做libxml2-dev,archlinux默认带,叫做libxml2)

require_pkg_config libxml2 libxml-2.0 libxml2/libxml/xmlversion.h xmlCheckVersion

关于OpenSSL的修改

check_pkg_config openssl openssl openssl/ssl.h OPENSSL_init_ssl ||

改成

check_pkg_config openssl openssl openssl/ssl.h OPENSSL_init_ssl ||
check_lib openssl openssl/ssl.h OPENSSL_init_ssl -lssl -lcrypto ||

开始编译OpenSSL,FFmpeg(注意有没有报错比如说Error:这样的)

sh compile-openssl.sh all
sh compile-ffmpeg.sh clean

开始编译ijkplayer

cd ..
sh compile-ijk.sh all

然后去当前目录的ijkplayer\ijkplayer-平台架构\src\main\libs里面的文件夹里面找so,拿到项目里面替换就好

License

Copyright (c) 2017 Bilibili
Copyright (c) 2022 Hydrogenium2020
Licensed under LGPLv2.1 or later

ijkplayer's People

Contributors

bbcallen avatar raymond1012 avatar xinzhengzhang avatar zccicy avatar yuvesy avatar johnwenjunwu avatar chodison avatar tewilove avatar yrom avatar ilibilib avatar ctiao avatar lowlevel-mboton avatar cwq avatar gdier avatar xqq avatar stuckless avatar matrixreload avatar linjiansheng avatar epruseal avatar shingwasix avatar chrisjenx avatar zmzhuai avatar lsk-boy-f avatar willerce avatar teddyla avatar tatowilson avatar nxzhou91 avatar midoreigh avatar jovisayhehe avatar maytrue avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.