美文网首页流媒体技术
直播推流/拉流开源三方库

直播推流/拉流开源三方库

作者: xiari1991 | 来源:发表于2017-04-26 14:47 被阅读148次

    推流

    • LiveVideoCoreSDK

    框架提供IOS苹果手机的RTMP推流填写RTMP服务地址,直接就可以进行推流,SDK下载后简单的工程配置后能直接运行,实现了美颜直播和滤镜功能,基于OpenGL,前后摄像头随时切换,提供RTMP连接状态的回调。

    这个框架是国内比较早的一款推流框架有不少在使用这个SDK,功能非常齐全,作者也比较牛,用来学习推流采集相关内容非常好,但是集成到工程中有些困难(对于我来说)。总的来说这是一款非常厉害的推流SDK,几乎全部使用C++写的,编译效率非常好,如果有实力的话推荐使用这个框架来做自己项目的推流端。

    • 可读性比较好的推流LFLiveKit

    框架支持RTMP(Real Time Messaging Protocol ):实时消息传输协议,Adobe公司的。

    HlS (HTTP Live Streaming) :苹果自家的动态码率自适应技术。主要用于PC和Apple终端的音视频服务。包括一个m3u(8)的索引文件,TS媒体分片文件和key加密串文件。

    推荐这个框架第一是因为它主要使用OC写的,剩下的用C语言写的,框架文件十分清晰,这对不精通C++的初学者提供了很大的便利,并且拓展性非常强,支持动态切换码率功能,支持美颜功能

    拉流

    ijkplayer iOS项目集成教程

    iOS端集成ijkplayer实现直播#拉流#播放

    iOS中集成ijkplayer视频直播框架

    安装构建必要的环境
    # install homebrew, git, yasm
    ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
    brew install git
    brew install yasm
    
    构建

    下载ffmpeg和编译ffmpeg会花费比较长的时间,可以去泡一杯咖啡:)

    git clone https://github.com/Bilibili/ijkplayer.git ijkplayer-ios
    cd ijkplayer-ios
    git checkout -B latest k0.4.4.1
    ./init-ios.sh
    cd ios
    ./compile-ffmpeg.sh clean
    ./compile-ffmpeg.sh all
    
    运行

    用Xcode打开ios/IJKMediaDemo/IJKMediaDemo.xcodeproj,验证是否构建正确

    打包 IJKMediaFrame.framework

    要想将ijkplayer集成到项目中,有两种方法:

    • README 中的做法,这个方法比较麻烦,不推荐
    • 打包 IJKMediaFrame.framework框架,就是把 ijkplayer 打包成 framework导入工程中使用。下面开始介绍如何打包IJKMediaPlayer.framework,按照下面步骤一步一步做:

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

    1429511-437a420f6b0c1153.png

    打开后,如下图:

    1429511-a146bf2e11b38741.png

    2、设置工程的 scheme

    1429511-277210ac92ffb555.png 1429511-b2768821a3c73374.png

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

    1429511-b3e0f0ae676cb525.png

    进入 Finder 后,可以看到,有真机和模拟器两个版本的编译结果,如下图:

    1429511-9a19d83cb28f9a55.png

    3、合并真机和模拟器版本的framework

    注意: 不要合错了,要合并的是这个文件,如下图:

    1429511-3924828eadcc87ce.png

    打开终端,进行合并,命令行的格式如下:

    lipo -create "真机版本路径" "模拟器版本路径" -output "合并后的文件路径"
    

    合并后,如下图:

    1429511-70af6e832ad9997f.png

    4、用合并生成的 IJKMediaFramework 替换掉原来的IJKMediaFramework

    1429511-b156d191e80f493c.png

    图中的1、2两步完成后,蓝色框中的那个IJKMediaFramework.framework文件就是我们所需要的框架了,可以复制出来,稍后我们需要导入项目中使用。
    那么,到此,用于 调试(Debug)的 IJKMediaFramework.framework就制作完成了。
    用于发布(Release)的 IJKMediaFramework.framework 制作过程是类似的,就不再介绍。
    已经将两种模式下的 IJKMediaFramework.framework 上传至网盘,
    网盘分享链接: https://page13.ctfile.com/dir/14174113-21635467-cd9f24/

    使用打包好的 IJKMediaFramework.framework 将 ijkplayer 集成到项目中

    1、 新建工程,导入合并后的 IJKMediaFramework.framework
    调试的话,拖入调试版的 ijkplayer 库
    发布的话,拖入发布版的 ijkplayer 库

    1429511-8916f253300ac4fe.png

    2、查看 ijkplayer 的 README,导入依赖库

    1429511-4535f843fe11a649.png

    如图,导入依赖库完成

    1429511-5d8ba1782bb3aed0.png

    3、测试一下是否集成成功
    在ViewController.m中进行测试,首先导入IJKMediaFramework.h头文件,编译一下,看有没有报错,如果没有报错,就说明集成成功了。
    经过编译,证实集成成功了。

    经测试:iOS 10 以上的系统才能播放,否则崩溃了。

    相关文章

      网友评论

        本文标题:直播推流/拉流开源三方库

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