iOS 直播技术总结。

作者: Cocojiang | 来源:发表于2020-10-11 21:52 被阅读0次

    本文仅仅盘点iOS端直播技术的搭建

    话不多说先上图,让大家对直播技术有一个全局的认识。

    手残 简单划了一下,如果有不对的地方请私信我,大概技术用到的就这么多 ,其他的也没有罗列出来,比如说聊天系统,礼物系统,总结一下,一个完整的直播 需要  采集->处理->编码->推流 - >拉流 - > 播放 细分的话 就更多了。接下来就让我为大家慢慢梳理这些知识吧!本篇最后有惊喜。

    1采集

    iOS上采集音视频主要用到AVFoundation这个框架。 对于这个框架详细的介绍请移步  这里,里面介绍的非常详细。一定要仔细看完。如果观众老爷不想看的话,我在这里简单的阐述下。

    AVFoundation 的几个类

    1 捕捉会话:AVCaptureSession

    2捕捉设备:AVCaptureDevice

    3捕捉输入设备:AVCaptureDeviceInput

    4捕捉设备输出:AVCaptureOutPut

    图片输出:AVCaptureStillImageOutPut 

    视频输出:AVCaputureMovieFileOutput

    音频数据输出 :AVCaputureAudioDataOutput

    视频数据输出 :AVCaputureVideoDataOutput

    5捕捉连接􏰄􏰅􏰕􏰖: AVCaptureConnection

    􏰄􏰅􏰗􏰘􏰄􏰅􏰗􏰘6捕捉预览: AVCaptureVideoPreviewLayer

    说了这么多类其实也很抽象,代码在这里,请自行阅读.

    2.采集完的视频的处理

    关于GPUImage 的介绍在这个章节里 ,欢迎观看 。 顺便提一句,GPUImage 也可以采集数据,另外GPUImage 只能处理滤镜上面的东西,如果你需要做到 大眼,瘦脸 的话,可能很麻烦,需要用到人脸识别 和算法,这里有一遍大眼的文章,欢迎大家阅读。 

    3.音视频的编码与压缩。

    这里有一个音视频编码和解码的demo 欢迎观看 顺便说下 这里是编码与解码(图片上,是国内知名女大神写的)

    关于为什么要进行编码和解码,和编解码的注意事项在这里

    4推流

    这里着重介绍下这个RTMP

    实时消息传输协议,Adobe Systems公司为Flash播放器和服务器之间音频、视频和数据传输开发的开  放协议,因为是开放协议所以都可以使用了。RTMP协议用于对象、视频、音频的传输。这个协议建立在TCP协议或者轮询HTTP协议之上。RTMP协议就像一个用来装数据包的容器,这些数据可以是FLV中的视音频数据。一个单一的连接可以通过不同的通道传输多路网络流,这些通道中的包都是按照固定大小的包传输的

    对于推流,有一个很好 而且很全面的框架 包含了 采集,滤镜 ,编码 , 这就是大名顶顶的 LFLiveKit。在Github 上,请自行去下载观看,而且及其简单。 看到这里是不是有些观众老爷激动了,有这玩意你怎么不早说,😂。但是要全自定义,就要一步一步来搭建这个直播,这些流程还是要走的。 具体的代码欢迎大家补充,需要服务器做配合不方便写。

    5.拉流

    这个不想多说 ijkplayer,大厂小厂都在用。有大佬集成过的fameWork,网上有很多,请自行搜索。

    直播是一个非常大的功能,说简单简单,说复杂复杂,说简单是因为我们站在巨人的肩膀上编程,说复杂是因为我们对他底部的那一套东西,原理,概念很陌生 。 写的不对的地方,欢迎提出来。还有推流那个地方 ,如果自行搭建的推流代码我没写 ,有大神 的话,帮忙补充下。(message 封装 trunk)

    相关文章

      网友评论

        本文标题:iOS 直播技术总结。

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