直播技术原理讲解

作者: 奔跑吧李博 | 来源:发表于2019-10-30 20:35 被阅读0次

现如今App中接入直播功能越来越普遍,接入直播可通过各大厂的云直播平台接入SDK来实现,但是,需要接入直播功能的朋友,做之前还是需要了解直播的过程及原理。

直播App架构图:
推流端过程:

1.音视频采集
2.美颜滤镜处理
3.编码压缩
4.推流

服务器端过程:

1.实时转码
2.录制回放
3.自动鉴黄

拉流端过程:

1.拉流
2.解码
3.播放

功能所需技术:
1. 音视频采集

音频的采集过程主要通过麦克风等设备将环境中的模拟信号采集成 PCM 编码的原始数据,经过降噪、混音等处理后编码压缩成 MP3 等格式的数据分发出去。常见的音频压缩格式有:MP3,AAC,OGG,WMA,FLAC,APE,m4a 和 AMR 等。

视频的采集过程主要由摄像头等设备拍摄成 YUV 编码的原始数据,然后经过编码压缩成 H.264 等格式的数据分发出去。常见的视频封装格式有:MP4、3GP、AVI、MKV、WMV、MPG、VOB、FLV、SWF、MOV、RMVB 和 WebM 等。

2. 美颜滤镜

美颜滤镜依靠开源库GPUImage实现。
GPUImage:基于OpenGL图像和视频处理的跨平台框架。GPUImageFilter提供了各种各样的滤镜。
滤镜处理的原理:把静态图像或者视频的每一帧进行图片处理,通过像素点坐标和RGB颜色值变化实现。

3.编码

通常采用H264编码。
特点:高压缩、高质量,支持多种网络流媒体传输。
编码依据:
在相邻几帧图像中,有差别的像素只有10%以内的点,亮度差变化不超过2%,色度差的变化只有1%以内。
过程:
先编码一个完整图像帧I,P帧不编码全部图像,只编入与I帧的差别,这样P帧既能保存自己的信息,又只要原大小的1/10以内,同理以后的编码,就将一段图像压缩了。这段图像称为一个序列,表示有相同特点的一段数据。

H264协议定义了三种帧:完整编码的帧为I帧;参考前面的帧只包含差异部分编码的帧为P帧;参考前后帧编码的帧叫B帧。H264核心算法是帧内压缩和帧间压缩。生成I帧的算法用的帧内压缩,生成B、P帧算法用的帧间压缩。

4. 推流、拉流

推流就是将编码后的数据通过直播协议发送给流媒体服务器的过程。主流的推拉流协议有httpflv、rtmp、hls。
httpflv:
这种直播传输实际上就是利用的flv文件的特点,只需要一个matedata和音视频各自header,后面的音视频数据就可以随意按照时间戳传输,这种直播数据实际上就是一个无限大的http传输的flv文件,客户端利用flv特性,可以一边接受数据边解码播放。

rtmp:Real Time Messaging Protocol(实时消息传输协议):
rtmp是adobe研发的开放协议,rtmp其实实质上也是传输的flv格式的数据,同样是flv tag,只不过rtmp在传输上封装了一层,比如rtmp不仅可以直播,也可以推流。rtmp的直播原理同样也是利用了flv文件的特性,只需要一些头信息,后面就可以随意传输音视频数据,达到边传输边播放。

hls:
hls是苹果公司开发的协议,http轮询传输,该协议主要的数据格式是ts视频文件,大致就是将裸流h264和音频直播数据,切片封装成ts段,形成无数的ts小文件,客户端先请求一个m3u8文件,该文件内部会有一列ts文件的地址,客户端按照顺序依次播放ts。

5. 解码

硬解码:用GPU来解码,减少CPU运算
优点:播放流畅、低功耗,解码速度快。
缺点:兼容不好
软解码:用CPU来解码
优点:兼容好
缺点:加大CPU负担,耗电增加、没有硬解码流畅,解码速度相对慢。

6.鉴黄、恐、暴力

每间隔时间对视频采集关键帧图像进行鉴定判断。识别图像中是否存在人物体征并统计人数;识别图像中人物的性别、年龄区间;识别人物的肤色、肢体器官暴露程度;识别人物的肢体轮廓,分析动作行为;提取音频信息关键词,判断是否存在敏感信息。

相关名词解释:
  • CDN (Content Delivery Network)

即内容分发网络,它是一个经策略性部署的整体系统,包括分布式存储、负载均衡、网络请求的重定向和内容管理4个要件。确保内容以一种极为高效的方式为用户的请求提供服务,可在推拉流阶段实现加上功能。

  • 帧率(单位 fps)

每秒显示的图片数。

  • 码率(单位 kb/s或者Mb/s)

图片进行压缩后每秒显示的数据量。

  • GOP(Group of Pictures):

画面组,一个GOP就是一组连续的画面,每个画面都是一帧,一个GOP就是很多帧的集合。

附录:

音频格式:

1、 WAV
WAV是微软公司开发的一种声音文件格式,用于保存windows平台的音频信息资源。是目前PC机上广泛使用的声音文件格式,几乎所有的音频编辑软件都识别WAV格式。
2、 FLAC
Free Lossless Audio Codec的缩写,中文可理解为无损音频压缩编码。FLAC是一套著名的音频压缩编码,其特点是无损压缩。
3、 MP3
也就是指的是MPEG标准中的音频部分,也就是MPEG音频层。根据压缩质量和编码处理的不同分为3层,分别对应 .mp1 , mp2, . mp3 这3种声音文件。
其特点是文件小,音质好;知道现在还是主流音频格式。
4、 WMA
Windows Media Audio, 这种格式以减少数据流量但保持音质的方法来达到比MP3压缩率更高的木器,WMA的压缩率一般可以达到1:18左右;
5、 OGG
OGG格式完全开源,完全免费。与MP3类似,OGG也是对音频进行有损压缩编码,但通过使用更加先进的声学模型去减少损失。因此,相同码率的OGG比MP3的音质更好,文件也更小一些。
6、 AC-3
全称“杜比AC-3“,是杜比公司开发的新一代家庭影院多声道数字音频编码方式。杜比数字AC-3是根据感觉来开发的编码系统多声道环绕声。主流的编解码标准的压缩对象都是YUV图像。

视频格式:

1、 AVI
即音频视频交错格式。是将语音和影响同步组合在一起的文件格式。采用一种有损压缩方式,压缩比较高,画面质量不是太好,但由于绝大多数视频编辑及转换软件导入导出avi格式较快。
2、 MP4
MP4大多使用mpeg-4或H.264视频编码器压缩。RMVB使用real media视频编码器压缩。
3、 MKV
MKV严格的来说并不是一个视频格式,它是多媒体封装格式,最大的特点就是能容纳多种不同类型编码的视频、音频及字幕流,主流的编解码标准的压缩对象都是YUV图像。
4、 FLV
FLV是FLASH VIDEO的简称。由于形成的文件极小;加载速度极快,在网络视频中,运用极为广泛。但仅基本用于网络视频。
5、 MOV
QuickTime具有跨平台、存储空间要求小等特点,采用了有损压缩方式的MOV格式文件,画面效果较AVI格式要稍微好一些。
目前基本仅见于IOS、mac上,但大多数播放器仍支持该格式。
6、3GP
3GP是一种3G流媒体的视频编码格式,3GP是MP4格式的一种简化版本,减少了储存空间和较低的频宽需求,让手机上有限的储存空间可以使用。

YUV:

一般的视频采集芯片输出的码流一般都是YUV数据流的形式。YUV是指亮度参量和色度参量分开表示的像素格式,作用是描述影像色彩及饱和度,用于指定像素的颜色。
Y:亮度分量 (Luminance)
UV:2个色度分量 (Chrominance)

相关文章

  • 直播技术原理讲解

    现如今App中接入直播功能越来越普遍,接入直播可通过各大厂的云直播平台接入SDK来实现,但是,需要接入直播功能的朋...

  • 发布会直播技术及业务实践

    一、背景 随着直播行业的近年来的发展,直播技术现已日趋成熟。本文主要介绍目前主流的直播技术原理,以及在直播在发布会...

  • iOS直播技术原理

    直播的技术 直播技术概况来说,可以分为 采集,前处理,编码,传输,解码,渲染 这几个环节 一个完整直播app实现流...

  • 直播大火,H5直播技术你知道吗?H5直播方案分析讲解

    直播大火,H5直播技术你知道吗?H5直播方案分析讲解 2017年视频直播可谓是大火,各种视频直播平台陆续登场,H5...

  • 直播App开发技术原理

    OneTea对应blog 袁峥Seemygo对应blog

  • 快购快退

    今晚收到某手发来的直播提醒,于是就点进去看直播。 直播的是电瓶车充电器电路原理讲解。主播讲得比较详细,作为刚入门开...

  • ElasticSearch应用实战

    已经全部过了一遍《Elasticsearch核心技术与实战》,感觉更偏向于实战,核心技术、实现原理没有怎么讲解,肤...

  • 直播平台测试

    1. 直播技术的原理 https://www.jianshu.com/p/3b8590543cf2[https:/...

  • es原理--两篇文章

    infoQ讲解倒排索引 博客园讲解压缩原理,以及es搜索原理

  • 基于测序数据的m6A数据库

    基本原理讲解 随着测序技术的发展,我们可以通过二代测序的技术来预测m6A。关于m6A测序的技术叫做meRIP-se...

网友评论

    本文标题:直播技术原理讲解

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