• ijkPlayer 集成


    代码地址如下:
    http://www.demodashi.com/demo/11957.html

    概述
    ijkplayer 是一款做视频直播的框架,基于FFmpeg,支持Android和iOS。这里介绍一下iOS中集成ijkplayer

    一、FFmpeg

    FFmpeg是一套可以用来记录、转换数字音频、视频,并能将其转化为流的开源计算机程序。它包括了领先的音/视频编码库libavcodec等。

    libavformat:用于各种音视频封装格式的生成和解析,包括获取解码所需信息以生成解码上下文结构
    和读取音视频帧等功能;

    libavcodec:用于各种类型声音/图像编解码;

    libavutil:包含一些公共的工具函数;

    libswscale:用于视频场景比例缩放、色彩映射转换;

    libpostproc:用于后期效果处理;

    ffmpeg:该项目提供的一个工具,可用于格式转换、解码或电视卡即时编码等;

    ffsever:一个 HTTP 多媒体即时广播串流服务器;

    ffplay:是一个简单的播放器,使用ffmpeg 库解析和解码,通过SDL显示;

    支持的编码

    源自FFmpeg项目组的两个视频编码:

    Snow

    FFV1

    支持的格式

    ASF、AVI、BFI[7]、IFF[8]、RL2[9]、FLV、MXF

    Material eXchange Format, SMPTE 377M

    Matroska、Maxis XA[10]、MSN Webcam stream[11]

    MPEG transport stream、TXD[6]、OMA[12]

    GXF,General eXchange Format, SMPTE 360M

    mov,mp4,m4a,3gp,

    支持的协议

    HTTP RTP RTSP RealMedia RTSP/RDT

    TCP UDP Gopher RTMP

    RTMPT, RTMPE, RTMPTE, RTMPS (via librtmp)

    SDP

    MMS over TCP

    二、下载ijkplayer

    下载完成后解压, 解压后文件夹内部目录如下图:
    ijkplayer.png

    三、编译

    其实这里主要是编译FFmpeg,因为他是一个C语言的跨平台库,需要sh脚本来进行编译

    1. 打开终端, cd 到jkplayer-master文件夹中, 也就是下载完解压后的文件夹, 如下图:1.png
    2. 执行命令行./init-ios.sh, 这一步是去下载 ffmpeg 的, 时间会久一点, 耐心等一下.如下图:2.png
    3. cd 到ios目录中
    4. 执行./compile-ffmpeg.sh clean3.png
    5. 执行./compile-ffmpeg.sh all进行FFmpeg的编译,时间较久4.png

    四、打包IJKMediaFramework.framework框架

    其实集成ijkplayer有两种方法,一种是按照Demo中的导入IJKMediaPlayer.xcodeproj,此方法不是很推荐

    下面主要说另一种把 ijkplayer 打包成framework导入工程中使用.
    首先打开工程IJKMediaPlayer.xcodeproj,IJKMediaPlayer.xcodeproj

    选择IJKMediaFramework点击EditScheme

    选择release

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

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

    打开终端, 进行合并, 命令行具体格式为:
    lipo -create 真机版本路径 模拟器版本路径 -output 合并后的文件路径

    合并后如下图

    用合并后的IJKMediaFramework把原来的IJKMediaFramework替换掉

    五、在iOS项目中集成ijkplayer

    新建工程, 导入合并后的IJKMediaFramework.framework以及相关依赖框架以及相关依赖框架,如下图:
    5.png

    导入框架后在ViewController.m中进行buid,如果成功,说明集成成功。然后可以在控制器中写一个Demo测试Snip20170831_10.png
    可以是mp4格式,也可以是m3u8,rtmp,hls等流媒体

    六、效果图

    QQ20171116-1510342x.pngijkPlayer 集成

    代码地址如下:
    http://www.demodashi.com/demo/11957.html

    注:本文著作权归作者,由demo大师代发,拒绝转载,转载需要作者授权

  • 相关阅读:
    路径
    JSTL-3
    JSTL-2
    JSTL-1
    EL和JSTL的关系
    Mybatis控制台打印SQL语句的两种方式
    centOS7安装JDK
    centOS7下安装GUI图形界面
    centOS7配置IP地址
    Office2016专业增强版永久激活
  • 原文地址:https://www.cnblogs.com/demodashi/p/8509961.html
Copyright © 2020-2023  润新知