美文网首页
iOS中集成ijkplayer视频、直播框架

iOS中集成ijkplayer视频、直播框架

作者: 怀念裸奔的童年 | 来源:发表于2017-12-02 16:06 被阅读0次

    1)ijkplayer 是一个基于 ffplay 的开源视频播放器核心,支持 iOS/Android 平台

    项目地址:https://github.com/Bilibili/ijkplayer

    2)确保你的机器上已经安装了Git和yasm,如果没有请在终端执行以下命令:

    sudo apt-get update

    sudo apt-get install git

    sudo apt-get install yasm

    //由于笔者已经按照,可以执行version指令,查看当前的安装版本

    git --version

    yasm --viersion

    3)确认了git和yasm的安装后,开始编译的具体步骤

    //在本地桌面上创建一个IJKPlayer文件夹,并移动到该文件夹下

    cd ./Desktop/IJKPlayer/

    //直接拉取源代码到本地

    git clonehttps://github.com/Bilibili/ijkplayer.gitijkplayer-iOS

    //拉去分支后,会看到本地路径下出现一个ijkplayer-ios的文件夹,将当前路径移动到该目录下

    cd ijkplayer-ios

    //检查更新代码 这一步是切换到0.8.4版本,这是一个本地分支的切换,具体的你可以看自己而定

    git checkout -B latest k0.8.4

    //支持所有解码器

    cd config

    rm module.sh

    ln -s module-default.sh module.sh

    //预编译先,先vim一下module脚本

    vim module.sh

    //添加预编译脚本内容为一下内容,然后点击 esc 退出 vim编译模式,执行 :wq 保存

    export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --enable-openssl"

    //初始化,会把ffmpeg的代码拉取到本地

    cd ..

    ./init-ios.sh

    ./init-ios-openssl.sh

    //移动当前目录到ios文件夹下

    cd ios

    //先clean一下FFmpeg相关的数据,避免在执行all时出现新旧数据冲突

    ./compile-openssl.sh clean

    ./compile-openssl.sh all

    ./compile-ffmpeg.sh clean

    ./compile-ffmpeg.sh all

    4)打framework文件

    http://blog.csdn.net/block_xh/article/details/64122118

    //由于ijkplayer本身默认不支持https,因此在预编译FFmpeg和openssl时,工程的 ijkplayer-ios/ios/build/universal/lib 路径下会生成如下的.a静态包:

    但是IJKMediaPlayer这个framework工程中,默认是不导入libcrypto.a和libssl.a文件的,而这两个文件恰恰是ijkplayer编译支持https的关键

    打开 IJKMediaPlayer工程

    进入 Build Phases -> Link Binary With Libraries

    点击 “+”号  -> Add Other

    添加 ijkPlayer-ios/ios/build/universal/lib 路径下的 libcrypto.a 和 libssl.a文件到 IJKMediaPlayer这个framework工程中

    把模式从 debug调整为 release模式

    编译IJKMediaPlayer工程(真机和模拟器均要编译)

    cd 到 IJKMediaPlayer工程中的 products文件夹下,

    //合并真机和模拟器:

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

    //此时products目录下会多出一个合并文件,注意:上一个操作中的合并指令中,合并的对象是IJKMediaFramework.framework文件中的IJKMediaFramework文件

    //将上一步中的合并文件替换掉iphoneos/IJKMediaFramework.framework中

    cp IJKMediaFramework Release-iphoneos/IJKMediaFramework.framework/

    播放器初始化设置

    [options setPlayerOptionIntValue:1 forKey:@"fast"];

    [options setPlayerOptionIntValue:1 forKey:@"mediacodec-all-videos"];

    [options setPlayerOptionIntValue:0 forKey:@"opensles"];

    [options setPlayerOptionIntValue:1 forKey:@"framedrop"];

    [options setFormatOptionIntValue:1 forKey:@"seekable"];

    [options setFormatOptionIntValue:0 forKey:@"seek2any"];

    [options setFormatOptionValue:"" forKey:@"user_agent"];

    相关文章

      网友评论

          本文标题:iOS中集成ijkplayer视频、直播框架

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