近来在抄抖音短首页短视频部分,用腾讯的TXVodPlayer做了一版,七牛PLPlayer做了一版,现在在开始想认真地优化一下这个部分,对于上述两个播放器,始终并非开源的产品,于是现在打算窥探一下Bilibili基于FFMpeg的ijkPlayer播放器。基于近来老年痴呆症日渐严重,还是把整个过程做个笔记写下来记录一下。
第一步,首先安装homebrew、git、yasm、pkg-config等工具,TMD在自己的手提安装这些东西完全没阻碍整个流程顺滑如丝,但用手上公司这台电路却一路遇坑,安装个homebrew,各种权限问题,各种路径错误。把朕折腾了半个钟头。https://www.jianshu.com/p/8bcd99042b7c
安装完homebrew后,各种brew install,such as:brew install yasm、brew install pkg-config、brew install git
第二步,然后就到了在githup上下载ijkplayer:https://github.com/Bilibili/ijkplayer 。
cd 进你要安装的路径,然后git clone https://github.com/Bilibili/ijkplayer
第三步,下载完ijkplayer后,cd 进ijkplayer根目录,然后下载ffmpege
下载命令为:./init-ios.sh
第四步,下载完ffmpege后,cd 进里面的一个ios文件夹
./compile-ffmpeg.sh clean
完后了编译ffmpege
编译命令为:./compile-ffmpeg.sh all
然后,耐心等到坑的来临,好的,坑来了:
不知为啥就是编译不了,貌似网上也不是每个人都遇到这种情况,知道原因请告诉我,各种尝试后,命令重新选择Xcode,sudo xcode-select --switch /Applications/Xcode.app,奇迹般地越过这个坑。同学,过坑了开心么,等会,越过坑,等待你的,必然是另一个坑。。。。
armv7,32位的东西,貌似不支持打开ios文件夹,点开compile-ffmpeg.sh
打下图原有的armv7去掉,弄成当前图中的模样,笔者这两图已去掉
重新编译ffmepge.....
编译成功后,重新打开ijkplayer的demo,跑起来,如丝般顺滑。
ijkplayer的demo最后一步了,要把ijkplayer为我所用,打包成framework.
1.打开IJKMediaPlayer工程,随便真机或者模拟器build 一下,它娘亲马上给你报错,弄了一轮是不是很想砸东西?反正我是......
报avconfig.h not find啊,找不到armv7之类一堆,然后我不知道网上他们是怎样关联跳到avconfig.h文件和config.h文件的,朕只能在ijkplayer的文件夹里面搜索这两个文件,把里面的armv7注释掉
然后build一下,succeed了····
选到release状态把模拟器和真机各build一次,把两个库合并。
把合并出来的IJKMediaFramework随便扔到release IJKMediaFramework.framework里替换掉,最后把这IJKMediaFramework.framework拖到你自己的工程里面去用,别以为搞掂吃碗面,默认的debug版里真机模拟器都能跑,但你把测试工程换成release真机,它娘的又给你报一个armv7的错,哎,你烦不烦啊到底!!
在buildsetting里,搜索valid archi...如上图,把32位的armv7去掉,跑起来吗,OK了他是要多恨32位,要赶尽杀绝!!!!!!!
至此,也并非没有问题,真tm的烦人!!!!!
如果你是直接开一个新project来玩来试,直接把player建在根路径默认的viewcontroller,他只有声音没有画面,但是你跳转到非根路径,他就能顺滑如丝地跑起来了,到底什么卵问题呢?能否指教下小弟,万分感激。
把ijkplayer的framework放在新开的项目试验,在非root控制器跑起来顺滑如丝完,等朕下周开始瞧瞧这个播放器的具体用法!!!
网友评论