关于直播间源码和直播app开发的基础知识

yq20191120 2020-03-30

算法 源码 Processing 序列 mp3 unit

很多想进行直播app开发的朋友,可能并不太了解音视频软件开发基础知识,以下这篇文章来源网络,都是一些基础概念,转载与大家分享。

当然,这只是一篇基础知识文档,如果有需要更深度了解直播app开发知识的朋友欢迎看我的其他博客文章。

一、 直播app开发之软编码和硬编码
CPU是指中央处理器(英文全名:Central Processing Unit),包括运算器(算术逻辑运算单元,ALU,Arithmetic Logic Unit)和高速缓冲存储器(Cache)及实现它们之间联系的数据(Data)、控制及状态的总线(Bus)。

GPU是指图形处理器(英语全名:Graphics Processing Unit),专为执行复杂的数学和几何计算而设计的,拥有2D或3D图形加速功能。

硬解和软解
直播app开发中所谓的硬解是指是利用硬件模块来替代软件算法解析视频、音频文件等,而直播app开发中提到的软解即是用CPU去计算解析。硬解码的优势是迅速且不占用CPU。

二、 直播app开发基础概念
帧率(Frame Rate)
帧率(Frame rate) = 帧数(Frames)/时间(Time),单位为帧每秒(f/s, frames per second, fps)。

刷新率
屏幕每秒画面被刷新的次数,分为垂直刷新率和水平刷新率,一般我们提到的都是指垂直刷新率,以赫兹(Hz)为单位,刷新率越高,图像就越稳定,图像显示就越自然清晰。

分辨率
视频、图片的画面大小或尺寸。

码率/比特率
单位时间播放连续的媒体如压缩后的音频或视频的比特数量。常用单位“比特每秒”,缩写是“bit/s”。比特率越高,带宽消耗得越多。

三、 视频封装格式(Container format)
直播app开发常用的几种视频封装格式如下:

五. 视频编码格式(Codec)

视频封装格式 & 视频编码格式
直播app开发的封装格式是提供了一个容器,用于存放视频、音频以及其他配置信息,而编码格式是指对视频画面内容进行压缩的一种标准。

六. 音频格式
WAV:因其文件扩展名为wav,微软和IBM联合开发的标准,数据本身的格式为PCM或压缩型,属于无损格式。
MP3 : MP3是一种音频压缩技术,其全称是动态影像专家压缩标准音频层面3(Moving Picture Experts Group Audio Layer III),简称为MP3。压缩比4:1~10:1之间。
AAC:Advanced Audio Coding, 出现于1997年,由Fraunhofer IIS、杜比实验室、AT&T、Sony、Nokia等公司共同开发。AAC压缩比通常为18:1。相比MP3,采用更高效的编码算法,音质更佳,文件更小。
Opus:Opus格式是一个开放格式,使用上没有任何专利或限制,比MP3、AAC、HE-AAC等常见格式,有更低的延迟和更好的声音压缩率。2012年7月2日,Opus被IETF批准用于标准化。
七. 直播app开发H.264编码介绍
IPB帧
I帧:帧内编码帧(intra picture),采用帧内压缩去掉空间冗余信息。
P帧:前向预测编码帧(predictive-frame),通过将图像序列中前面已经编码帧的时间冗余信息来压缩传输数据量的编码图像。参考前面的I帧或者P帧。
B帧:双向预测内插编码帧(bi-directional interpolated prediction frame),既考虑源图像序列前面的已编码帧,又顾及源图像序列后面的已编码帧之间的冗余信息,来压缩传输数据量的编码图像,也称为双向编码帧。参考前面一个的I帧或者P帧及其后面的一个P帧。
PTS和DTS
DTS(Decoding Time Stamp)是标识读入内存中bit流在什么时候开始送入解码器中进行解码。也就是解码顺序的时间戳。
PTS(Presentation Time Stamp)用于度量解码后的视频帧什么时候被显示出来。在没有B帧的情况下,DTS和PTS的输出顺序是一样的,一旦存在B帧,PTS和DTS则会不同。也就是显示顺序的时间戳。
GOP
即Group of picture(图像组),指两个I帧之间的距离,Reference(参考周期)指两个P帧之间的距离。

一个I帧所占用的字节数大于一个P帧,一个P帧所占用的字节数大于一个B帧。所以在码率不变的前提下,GOP值越大,P、B帧的数量会越多,平均每个I、P、B帧所占用的字节数就越多,也就更容易获取较好的图像质量;Reference越大,B帧的数量越多,同理也更容易获得较好的图像质量。

简而言之:

字节大小:I > P > B
解码顺序:I -> P -> B
GOP解码案例

以上便是直播app开发必须了解的一些基础知识,更多相关知识请关注我

登录 后评论
下一篇
云栖号资讯小编
1838人浏览
2020-06-01
相关推荐
0
0
0
195