LFLiveKit架构简介。LFLiveKit框架的介绍。

LFLiveSession

LFLiveSession
是满sdk的核心,提供针对性表面的严重性接口。主要功用产生:管理推流开关、管理音视频录制以及渲染、管理录制渲染后的音视频编码、管理编码后底数码上传、管理音视频的根基配置,回调推流状态及生申报等。

LFLiveKit的背景啊的尽管不一一介绍了,这里最主要介绍她的机能实现的基础架构如下表:

LFLiveAudioConfiguration

音配配置,配置相关音频信息(音频质量、码率、采样率、声道数)

LFLiveSession
是成套sdk核心,提供针对性标的根本接口。其根本功用发生:管理推流开关,管理音视频录制以及渲染,管理录制渲染后底音视频编吗,管理编吗后的数码上传,管理音视频的根底配置,回调推流状态和生申报等。
LFLiveAudioConfiguration
音频配置,配置相关音频信息(音频质量,码率,采样率,声道数)
LFLiveVideoConfiguration
视频配置,配置相关音频基本信息(视频质量,码率,帧数,分辨率)和运配置如最可怜无比小帧率等。
LFVideoCapture
视频管理类,管理视频的输入和输出。同时处理事务需使:美颜,亮度,水印等作用。用了一个叔正在:GPUIImage处理渲染效果
LFAudioCapture
音频管理,管理音频的输入开关。这并尚未多很之定制,应用的原生的API即可。LFH264VideoEncoder,LFHardwareVideoEncoder
视频编码类,分别对应8.0在先与8.0下的星星栽配备的视频编码类。都守LFVideoEncoding协商,并安装LFStreamSocketDelegate协议为session管理
LFHardwareAudioEncoder
音频编码类,遵守LFVideoEncoding商谈,并安装LFStreamSocketDelegate协议被session管理
LFFrame 数据信息的基类,作为上传到服务器数据的基本型
LFVideoFrame 视频信息,作为上传到服务器视频数据的模子
LFAudioFrame 音频信息,作为上传到服务器音频数据的范
LFLiveStreamInfo
推流信息:推流地址(目前根本用rtmp推流);流状态;音视频配置信息;异常信息
LFStreamRTMPSocket
数据上传管理类:开关数据上传,回调连接状态与死。遵循LFStreamSocket协议,并安装LFStreamSocketDelegate给session管理
LFLiveDebug 调试信息:这个是付出上的中间表示,主要用以记录调试作用。
LFStreamingBuffer
本地采样:通过地面采样监控缓冲区,可实现相关切换帧率码率等政策

LFLiveVideoConfiguration

视频配置,配置相关视频的着力信息(视频质量、码率、帧数、分辨率)和动配置如最要命、最小帧率等。

其要成效流程如下:

LFVideoCapture 

视频管理类,管理视频的输入和输出。同时处理业务需求,如:美颜、亮度、水印等作用,使用了一个老三正GPUImage处理渲染效果。

1.内部:LFLiveSession是漫天sdk对外要提供的接口,除了对外提供工作需要接口,而且管理了任何推流过程的两样功能的兑现,并加加了同样多样之回调接口。

LFAudioCapture

节奏管理,管理音频的输入开关,这并没有多可怜的定制,应用原声的API即可。

2.由此LFLiveAudioConfiguration,LFLiveVideoConfiguration这半只布局信息作一个参数,给各个类传值基本码率等骨干信息。

LFH264VideoEncoder,LFHardwareVideoEncoder

视频编码类,分别对应8.0之前与8.0自此的蝇头栽配备的视频编码类。都遵循LFVideoEncoding协和,并设置LFStreamSocketDelegate协议被session管理。

3.LFVideoCapture,LFAudioCapture作为LFLiveSession的一个性,可以管理视频类的输入的输入设备和输出设备,并且通过GPUIImage来进展有图形的滤镜的操作,然后输出,通过代办方回调给LFLiveSession。

LFHardwareAudioEncoder

音频编码类,遵守LFVideoEncoding商,并安装LFStreamSocketDelegate协议被session管理。

4.LFH264VideoEncoder,LFHardwareVideoEncoder,LFHardwareAudioEncoder是管理音视频编吗的类似。LFLiveSession接受到通过滤镜处理后底回调后,通过音视频编码类对buffer进行编码,并且在编码结束以后通过代理方回调给LFLiveSession。

LFFrame

多少信息之基类,作为上传到服务器数据的主导模型。

5.LFStreamRTMPSocket凡是数量上传管理类(目前只用rtmp上传),在LFLiveSession接收至编吗结束的回调后,就可就此LFStreamRTMPSocket进行数量上传。并提供网络状态回调和网很回调。

LFVideoFrame

视频信息,作为上传到服务器视频数据的型。

6.LFStreamingBuffer相对便较灵活了,其职能也主要是供了相同仿根据本地缓冲区在确定时外之计量来回调缓冲区buffer是当添还是当调减。如果欲以当下地方拓展自然的优化可以在回调中贯彻切换帧率等方式。在LFLiveKit里面是没具体实现这种政策的连续处理方式,只是回调了充实还是减少的状态。

LFAudioFrame

板信息,作为上传到服务器音频数据的型。

缺陷:每一个buffer数据上传后,没有回调上传的结果。如果可以这样的话,可以根据上传的结果来判定推流端的具体网络状况。自身逻辑可以长切换线路要降低码率来贯彻直播质量的优化。

LFLiveStreamInfo

推流信息:推流地址(目前任重而道远行使rtmp推流),流状态,音视频配置信息,异常信息

LFStreamRTMPSocket 

数码上传管理类:开关数据上传,回调连接状态和充分,遵循LFStreamSocket协议,并安排LFStreamSocketDelegate给session管理。

LFLiveDebug

调试信息:这个事出上的内标示,主要用来记录调试作用。

LFStreamingBuffer

地方采样:通过当地采样监控缓冲区,可实现相关切换帧率码率等方针

彼关键的法力流程如下:

1、其中:LFLiveSession是合sdk对外要提供的接口,除了对外提供工作需要接口,而且管理了全体推流过程的两样功效的贯彻,并加加了同一系列之回调接口。

2、通过LFLiveAudioConfiguration,LFLiveVideoConfiguration这半独布局信息作一个参数,给各个类传值基本码率等中心信息。

3、LFVideoCapture、LFAudioCapture作为LFLiveSession的一个性质,可以管理视频类的输入的输入设备的输出设备,并且通过GPUImage来展开有图形的滤镜的操作,然后输出,通过代办方回调给LFLiveSession。

4、LFH264VideoEncoder,LFHardwareVideoEncoder,LFHardwareAudioEncoder是治本音视频编码的切近。LFLiveSession接收到通过滤镜处理后底回调后,通过音视频编码类对buffer进行编码,并且以编码结束后通过代理方回调给LFLiveSession。

5、LFStreamRTMPSocket是数据上传管理类(目前只用rtmp上传),在LFLiveSession接收至编码结束之回调后,就足以为此LFStreamRTMPSocket进行数据上传,并提供网络状态回调和网络特别回调。

6、LFStreamingBuffer相对就较灵活了,其作用要是供了平等模拟根据本地缓冲区在规定时外之计量来回调缓冲区buffer是搭或减少。如果急需在即时点进行自然的优化可以在回调中实现切换帧率等艺术。在LFLiveKit里面是绝非切实可行实现这种政策的继续处理方法,只是回调了添还是回落的状态。

缺点:每一个buffer数据上传后,没有回调上传的结果。如果可以这样的话,可以依据上传的结果来判定推流端的切实可行网络状况。自身逻辑可以增长切换线路或退码率来促成直播质量之优化。

视频配置

分辨率:视频画面的大大小小,分辨率越强画面更清楚,分辨率控制着镜头的清晰度。

采样帧数:每秒的镜头数,视频是由于许多幅画面连贯起来的。帧数越强逾流畅。人眼识别16轴(别人统计的数字我吗不了解)以上就是怪麻烦感觉出画面的卡顿。帧率控制画面的流畅度。

码率:每秒显示的图片压缩后的数据量。码率控制在镜头的清晰度。

注:

1、体积 = 码率 * 时间

2、压缩前每秒的数据量= 帧率 * 分辨率 = 码率 * 压缩比

1.分辨率是让AVCaptureSession控制的,它来加上宽固定比例之价值提供选,不克起定义比例。例:AVCaptureSessionPreset640x480
 2.帧率和码率虽然能自定义设置,但是未建议于定义设置,可以由此一直装LFLiveVideoQuality来配套的布这些性的价。
 3.LFLiveVideoConfiguration还噙了太充分最小帧率、最要命无比小码率和极其要命重点帧的安装。

声道数:单声道的声道数为1只声道,双声道的声道数为2独声道,立体声道的声道数默认是2个声道,立体声道(4声道)的声道数为4单声道。普通食物是鲜单声道,左右声道。也就是错耳麦和右手耳麦,多数视频还是横混合及一头了,有的配音视频区分左右声道,一边是原声,一边是配音。还有第三种声道形式,就是2.1看望道,那个.1特的是不及频段环绕立体声。

采样率:节奏采样率是依录音设备以同秒钟内对声音信号的采样次数,采样频率尤其强声音的复原就是愈加真是自然。在现之主流的采集卡上,采样频率一般分为22.05KHz、44.1KHz、48KHz三独号。22.05KHz只能达到FM广播的音响品质,44.1KHz则是辩论及的CD音质界限,48KHz则更进一步精确一些。LFLiveKit中默认是44.1KHz。

文章频码率(比特率)比特率是依赖用数字音由模拟格式转化成为数字格式的采样率。比特率表示单位时(1秒)内传递的比特数bps的速度。通常我们利用kbps(通俗的道就是是各国秒钟1000较不过)作为单位。128kbps

磁带(手机立体声MP3播放器最佳设定值,低档MP3播放器最佳设定值)。LFLive默认是96kbps。

缓存区之尺寸:本条啊是SDK自己定义之,用于声音在视频编码的时段判断,内存过非常的时节暂缓编码的意向,保证内存的平安的作用。缓存区长及声道数相关,这个以SDK里面是定位1024*2*
numberOfChannels

相关文章

admin

网站地图xml地图