天天看点

直播技术汇总

<a href="http://www.jianshu.com/p/5b1341e97757" target="_blank">做一款仿映客的直播App?看我就够了</a>

<a href="http://www.jianshu.com/p/53c393098ba3" target="_blank">直播时代--IOS直播客户端SDK,美颜直播</a>

<a href="https://github.com/erduoniba/HDLiveVideoCoreDemo/blob/master/%E7%9B%B4%E6%92%AD%E6%8A%80%E6%9C%AF%E6%B1%87%E6%80%BB.md" target="_blank">直播技术汇总</a>

技术相对都比较成熟,设备也都支持硬编码。iOS还提供现成的 Video ToolBox框架,可以对摄像头和流媒体数据结构进行处理,但Video ToolBox框架只兼容8.0以上版本,8.0以下就需要用x264的库软编了。

github上有现成的开源实现,推流、美颜、水印、弹幕、点赞动画、滤镜、播放都有。技术其实不是很难,而且现在很多云厂商都提供SDK,七牛云、金山云、乐视云、腾讯云、百度云、斗鱼直播伴侣推流端,功能几乎都是一样的,没啥亮点,不同的是整个直播平台服务差异和接入的简易性。后端现在 RTMP/HTTP-FLV 清一色,App挂个源站直接接入云厂商或CDN就OK。

1、直播项目传输方式介绍

直播技术汇总

2、直播项目采集端(推送端)介绍

目前国内很多知名的推流框架都是对VideoCore的二次开发。这个框架主要使用C++写的,支持RTMP推流,但对于iOS开发者来说有点晦涩难懂(精通C++的除外)。想开源和免费的可以选择现在的几个知名项目VideoCore + GPUImage+基于GPU的美颜滤镜 ,播放用IJKPlayer自己修改。

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

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

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

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

2.4.美颜功能

3、直播项目播放端介绍

播放方法:

<a href="https://github.com/runner365/LiveVideoCoreSDK" target="_blank">基于LiveVideoCoreSDK完整项目源码</a>

直播技术汇总

ii. 配置nginx和RTMP:

找到<code>nginx.conf</code> 文件所在位置<code>(/usr/local/etc/nginx/nginx.conf)</code> , 点击<code>Finder</code> -&gt;<code>前往</code> -&gt;<code>前往文件夹</code> -&gt;<code>输入/usr/local/etc/nginx/nginx.conf</code> -&gt; 用记事本工具(推荐<code>Sublime Text</code>) 打开 <code>nginx.conf</code>。直接滚到最后一行, 在最后一个<code>}</code> (即最后的空白处, 没有任何<code>{}</code>)后面添加:

然后重启nginx(其中的1.10.1要换成你自己安装的<code>nginx</code>版本号, 查看版本号用<code>nginx -v</code>命令即可):

iii. 安装FFmpeg:

下载后安装,打开 VLC,然后 File-&gt;open network(<code>command+N</code>)输入:

直播技术汇总

v.开始FFMpeg推流:

<a href="http://7xqhx8.com1.z0.glb.clouddn.com/loginmovie.mp4" target="_blank">mp4视频下载地址</a>

下载视频到桌面后,执行推流命令:

VLC便开始播放流媒体:

直播技术汇总

将项目中<code>ViewController.m</code> 的<code>viewDidLoad</code> 中改为如下:

<code>iOS10</code> 以上的手机需要在 <code>info.plist</code> 中加入直播所需要的权限:

运行即可直播!

3、直播项目采集端:从0到1开始集成LiveVideoCoreSDK

i. 在<code>Desktop</code> 新建文件夹<code>HDLiveVideoCoreDemo</code> 使用Xcode建立项目组(Workspace),命名为<code>HDLiveVideoCoreDemo.xcworkspace</code> 并保存在 <code>HDLiveVideoCoreDemo</code> 中:

直播技术汇总
直播技术汇总
直播技术汇总

iii、打开<code>HDLiveVideoCoreDemo.xcworkspace</code> ,新建 <code>LiveVideoCoreDemo.xcodeproj</code> 项目:

直播技术汇总
直播技术汇总
直播技术汇总

iv、分别将<code>LiveVideoCoreSDK.xcodeproj</code> 和 <code>RtmpLivePushSDK.xcodeproj</code> 拖入到项目组中:

直播技术汇总
直播技术汇总

v、将<code>libLiveVideoCoreSDK</code> 加入到<code>LiveVideoCoreDemo</code> 项目中,并添加对应所需要的系统框架和tdb文件:

直播技术汇总

vi、到此为止,<code>LiveVideoCoreSDK</code> 依赖的环境系统文件已经集成到新项目中,接下来对项目进行必要的配置:

因为<code>LiveVideoCoreSDK</code> 不支持<code>Bitcode</code> , 所以需要设置<code>Enable Bitcode</code> 为<code>NO</code>

因为<code>LiveVideoCoreSDK.h</code> 不在<code>LiveVideoCoreDemo</code> 项目中,所以需要 设置

<code>Header Search Paths</code> : <code>../LiveVideoCoreSDK/</code>

<code>../LiveVideoCoreSDK/</code> 这个是 <code>LiveVideoCoreSDK.h</code> 相对于<code>LiveVideoCoreDemo.xcodeproj</code> 的路径。

vii、添加代码运行。

<code>LiveVideoCoreSDK</code> 集成完毕!

4、直播播放端:

from:http://blog.csdn.net/u012390519/article/details/52871859

继续阅读