美文网首页
ijk 集成过程

ijk 集成过程

作者: 雪月965 | 来源:发表于2021-12-22 17:49 被阅读0次

    1. 获取 ijkplayer 源码

    cd 到自己想要保存的文件中,执行一下命令

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

    2. 获取 ffmpeg 并初始化

    此过程需要从网上拉取ffmpeg,需要花些时间

    执行脚本获取 ffmpeg ,输入一下命令

    cd ..
    ./init-ios.sh
    

    3. 添加 https 支持

    获取 openssl 并初始化

    ./init-ios-openssl.sh
    

    cd ios

    在模块文件中添加一行配置 以启用 openssl 组件

    echo 'export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --enable-openssl"' >> ../config/module.sh
    

    ./compile-ffmpeg.sh clean

    4. 编译 ffmpeg

    编译openssl, 如果不需要https可以跳过这一步

    ./compile-openssl.sh all
    

    编译ffmpeg

    ./compile-ffmpeg.sh all

    如果编译ffmpeg提示如下错误:

    
    ./libavutil/arm/asm.S:50:9: error: unknown directive
    
            .arch armv7-a
    
            ^
    
    make: *** [libavcodec/arm/aacpsdsp_neon.o] Error 1
    
    

    最新的 Xcode 环境中iOS SDK最低支持从iOS 8.0开始了,弱化了对 32 位iOS系统的支持,解决方法:

    在compile-ffmpeg.sh中删除armv7, 修改如:
    
    FF_ALL_ARCHS_IOS8_SDK="arm64 i386 x86_64"
    

    再重新执行出现错误的命令:

    ./compile-ffmpeg.sh all

    5. 打开IJKMediaPlayer项目

    选择 Targets ——> IJKMediaFrameworkWithSSL ——> General ——> Linked Frameworks and Libraries ,选择 Add Other... , 然后在 ijkplayer-ios 目录下(也可能是别的名字)的 ios —— build —— universal —— lib 中,选中 libcrypto.a 和 libssl.a 文件,添加进去

    6. 打包 framework

    1)选择 Xcode 上方导航栏中的 Product ——> Scheme ——> Edit Scheme..., 打开后选择 Run ——> Info ——> Build Configuration,将 Debug 改为 Release。
    如图:

    2)Cmd + b 直接运行,会报错 avconfig.h 文件找不到,这时候去一下路径找到 avconfig.h 文件,如:

    ~/Desktop/ijkplayer-ios/ios/build/universal/include/libavutil

    打开 avconfig.h ,注释掉

    include "armv7/avconfig.h"

    2546763-df6c38d042d912fa.png

    Cmd + b 再运行,又报错 config.h 文件找不到,去

    ~/Desktop/ijkplayer-ios/ios/build/universal/include/libffmpeg
    中打开 config.h , 同上注释掉

    include "armv7/avconfig.h"

    7.合并框架

    打开终端, 先 cd 到 Products 目录下

    然后执行: lipo -create 真机framework路径 模拟器framework路径 -output 合并的文件路径

    
    lipo -create Release-iphoneos/IJKMediaFramework.framework/IJKMediaFramework Release-iphonesimulator/IJKMediaFramework.framework/IJKMediaFramework -output IJKMediaFramework
    
    

    相关文章

      网友评论

          本文标题:ijk 集成过程

          本文链接:https://www.haomeiwen.com/subject/umaqqrtx.html