IJKPlayer集成直播拉流播放

https://www.cnblogs.com/wang19941006/p/6761729.html

前言
  ijkplayer框架是专门用来做 视频直播 的开源框架,基于ffmpeg,同时支持 Android 和 iOS 平台。
  对于 App 中的直播功能,如果我们成功集成ijkplayer ,那么就算完成一半的工程了。接下来,只要获取到 拉流 URL,就能实现视频直播功能了。
  但是初次集成这个框架,对于新手还是有一定难度的。

  本篇主要介绍如何快速集成 ijkplayer 框架。


最终效果.gif

一、下载 ijkplayer

1、下载 ijkplayer 框架源码

ijkplayer下载地址

2、打开终端,通过 git clone 进行下载

在终端中通过 git clone 下载.png

第一步: cd 进入指定的下载路径。

cd /Users/XDLee/Desktop/Live

第二步: 通过 git clone 命令进行下载。

git clone https://github.com/Bilibili/ijkplayer.git ijkplayer-ios

下载过程比较耗时,耐心等待~~~


二、编译 ffmpeg

1、下载完成,运行Demo,看看效果。

ijkplayer框架的目录结构如下:

ijkplayer 框架的目录结构.png

2、打开 IJKMediaDemo,并编译

提示: 'libavformat/avformat.h' file not found

编译 IJKMediaDemo 报错.png

原因: libavformat 是 ffmpeg 框架中的库,而 ijkplayer 又是基于 ffmpeg 框架的,因此需要导入 ffmpeg
解决办法: 查看 ijkplayer 的 README.md。


3、按照 README 中的说明下载并编译编译 ffmpeg

以下是 iOS 环境下下载并编译 ffmpeg 的步骤

README 中的说明.png

第一步: 实际上就是下载 iOS 版的 ijkplayer,我们已经下载过了。
第二步: 切换到 ijkplayer-ios 目录。

cd ijkplayer-ios

第三步: 表示创建并切换到 latest 分支。

git checkout -B latest k0.7.9

执行第三步之前,项目分支为 master


执行第三步之前,项目在 master 主干.png

执行完第三步,项目分支为latest


执行终端命令png

执行第三步之后,项目在 latest 分支.png

注意:第三步创建分支的操作不是必须要做的,但是学习开源框架建立分支是一个好习惯。

第四步:下载 ffmpeg 源码

./init-ios.sh
  • init-ios.sh 表示一个 shell 脚本文件,它的作用就是 下载 ffmpeg 源码
  • ./ 表示在当前文件
  • ./init-ios.sh 表示在当前文件夹执行脚本文件,下载 ffmpeg 框架

  • 执行脚本文件,下载 ffmpeg 框架.png

这个过程比较耗时,耐心等待~~~
N min后!!!
下载完成,就会发现 ijkplayer 中有 ffmpeg 了。

ijkplayer 中有 ffmpeg 了.png

下载好 ffmpeg,再次编译 Demo

  • 发现: 还是报错'libavformat/avformat.h' file not found
  • 原因: 执行 init-ios.sh,仅仅是下载源码,但是源码并没有参与编译,需要把源码编译成 .a 文件。`
  • 另外: IJKMediaDemo 依赖 IJKMediaPlayer,如图

  • IJKMediaDemo依赖IJKMediaPlayer.png

第五步: 打开 IJKMediaPlayer,查看源码
IJKMediaPlayer 位置

IJKMediaPlayer的位置.png

发现找不到对应的 .a 库

找不到对应的.a库.png

发现: ffmpeg 中的库都是红的,表示不存在,需要进行编译。
解决: 继续查看 ijkplayer 的 README

编译 ffmpeg 的命令.png

第六步: 编译 ffmpeg 库,分为三小步
步骤一: 进入脚本文件的目录下

进入脚本文件所在目录.png

步骤二: 执行 ./compile-ffmpeg.sh clean

执行脚本文件.png

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

步骤三: 执行./compile-ffmpeg.sh all,真正地编译各个平台的 ffmpeg 库,并生成所有平台的通用库
执行 ./compile-ffmpeg.sh all 之前

执行脚本之前

执行 ./compile-ffmpeg.sh all 
执行脚本,编译 ffmpeg,编译需要一段时间,耐心等待

执行脚本之后.png

看到下面的界面,表示编译完成

编译完成.png

编译完成之后

编译完成之后,ijkplayer目录结构.png

第七步: 再次运行 IJKMediaDemo
首先: 打开 IJKMediaPlayer,查看 ffmpeg 的库文件是否生成


ffmpeg库文件已经生成.png

可以看到: ffmpeg 的 .a库都已经生成了。
然后: 打开 IJKMediaDemo,并运行
运行成功,但是显示如下:


Demo运行成功.png

原因: IJKMediaDemo 工程配置中,只支持横屏


屏幕方向没有支持竖屏.png

那么,到此,整个 ffmpeg 的编译工作就全部做完了。



  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值