美文网首页
ios直播基础篇二集成ijkplayer

ios直播基础篇二集成ijkplayer

作者: 子夏的不语 | 来源:发表于2017-09-22 14:36 被阅读0次

    一:ijkplayer简介

    ijkplayer 是一款做视频直播的开源框架, 基于ffmpeg, 支持 Android 和 iOS, 对于 App 中的直播功能,如果我们成功集成ijkplayer,视频播放的功能就基本完成一半了。下面详细介绍一下ijkplayer 从下载源码到打包的流程。

    二:下载ijkplayer源码

    下载地址:https://github.com/Bilibili/ijkplayer

    三:相关知识简介

    README.md文件:框架的描述文件,描述这个框架怎么使用

    编译语言:程序在被执行之前,需要一个专门的编译过程,把程序编译成为机器语言的文件,运行时不需要翻译,所以编译型语言的程序执行效率高,比如OC,C,C++

    解释性语言:解释性语言的程序不需要编译,在运行程序的时候才翻译,每个语句都是执行的时候才翻译。这样解释性语言每执行一次就需要逐行翻译一次,效率比较低

    解释性语言执行和编译语言执行的区别:

    解释性语言一行一行的解析,如果有错误,就不会执行,直接执行下一行。

    编译语言,只要有错,就不能编译,一行都不能执行。

    脚本语言:属于解析语言,必须通过解释器解析,将其一条条的翻译成机器可识别的指令,并按程序顺序执行。

    python:脚本语言,适合网络应用程序的开发,有利于开发效率,现在显得越来越强大

    PHP:服务器端脚本语言,适合做动态网站

    JS:作为客户端的脚本语言,在浏览中解释执行,

    shell:操作系统脚本语言,一般指Unix/Linux中使用的命令行

    编译语言,执行文件是二进制。脚本语言是解释执行的,执行文件是文本

    shell解释器:shell是一个命令行解释器,相当于windows的cmd,处于内核和用户之间,负责把用户的指令传递给内核并且把执行结果回显给用户.

    默认Unix都有shell,OS基于Unix,因此OS自带shell。

    bash: bash是一种shell解释器版本,shell有很多种版本,就像人,也分不同国家的人。

    牛程序员看到不爽的Shell解释器,就会自己重新写一套,慢慢形成了一些标准,常用的Shell解释器有这么几种,sh、bash、csh等

    shell:通常我们说的shell,指的是shell脚本语言,而不是shell解释器。

    在编写shell时,第一行一定要指明系统需要哪种shell解释器解释你的shell脚本,如:#! /bin/bash,使用bash解析脚本语言

    什么时候使用shell命令,比如有些系统命令经常需要用到,可以把命令封装到一个脚本文件,以后就不用再敲一遍了,直接执行脚本语言。

    比如ijkplayer,就用脚本文件下载ffmpeg,因为下载ffmpeg需要执行很多命令,全部封装到脚本文件中。

    在导入一些第三方框架的时候,经常需要用到一些命令,所以一般都会封装到一个脚本文件中,以后只要执行脚本,就会自动执行集成第三方框架的命令。

    sh:sheel脚本文件后缀名

    四 编译ijkplayer

    1 打开下载的demo 如图

    2.编译会发现报如下错误,原因是libavformat是ffmpeg中的库,而ijkplayer是基于ffmpeg这个库的,因此需要导入ffmpeg(这些在demo中的readme文件中有写)

    3 打开终端 cd到jkplayer-master文件夹中, 也就是下载完解压后的文件夹, 如下图:

    执行命令行./init-ios.sh, 这个命令是下载 ffmpeg到当前目录下 

    4  下载完成后执行cd ios, 也就是进入到 ios目录中, 如下图:

    5  进入 ios 文件夹后, 在终端依次执行./compile-ffmpeg.sh clean和./compile-ffmpeg.sh all命令, 编译 ffmpeg, 也就是README.md中这两步,

    ./compile-ffmpeg.sh clean:删除一些文件和文件夹,为编译ffmpeg.sh做准备,在编译ffmpeg.sh的时候,会自动创建刚刚删除的那些文件,为避免文件名冲突,因此在编译ffmpeg.sh之前先删除等会会自动创建的文件夹或者文件

    ./compile-ffmpeg.sh all :编译ffmepg

    6 编译成功开始打包

    五 打包IJKMediaFramework.framework框架

    1 首先打开工程IJKMediaPlayer.xcodeproj, 位置如下图:

    打开后是这样的, 如下图:

    2.工程打开后设置工程的 scheme, 具体步骤如下图:

    3  设置好 scheme 后, 分别选择真机和模拟器进行编译, 编译完成后, 进入 Finder, 如下图:

    4  然后合并真机和模拟器版本的 framework, 注意不要合并错了, 合并的是这个文件, 如下图:

    5 打开终端, 进行合并, 命令行具体格式为:

    lipo -create "真机版本路径" "模拟器版本路径" -output "合并后的文件路径" (ps 这里合并后的文件路径可以选择前两个路径之一 会省几个替换的步骤)这里我合并后的文件路径我选的是真机版本路径 合并完成后如图(这个framework我们就可以直接用了)

    六 验证framework 

    将合并后的framework导入到新工程中并引用framework里的头文件编译成功即表示合并成功:

    相关文章

      网友评论

          本文标题:ios直播基础篇二集成ijkplayer

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