音视频处理中的基本概念


要想入门并学好音视频处理,明白理解音视频处理中的各种基本概念是第一步。这是音视频处理工作中的基石。掌握了解这些概念,对于在音视频领域的发展大有裨益。这里总结了音视频处理中常涉及到的一些概念,希望对想从事音视频工作的人有所帮助。

编码(encode)

所谓视频编码方式就是指通过压缩技术,将原始视频格式的文件转换成另一种视频格式文件的方式。视频流传输中最为重要的编解码标准有国际电联的H.261、H.263、H.264。

解码(decode)

通过特定的解压缩技术,将某个视频格式的视频流转换成原始的视频格式。

转码(transcode)

使用视频转码技术将视频信号从一种格式转换成另一种格式。

视频编码

视频的原始数据采用的编码方式包括:
YUV(Y表示亮度信息, UV表示色彩信息) 常见的YUV格式有YUV444、YUV422、YUV420
RGB也是对颜色的一种编码方式。RGB(红、绿、蓝)经过叠加组合可以展现出所有的色彩。常见的RGB格式有RGB888。

视频的原始数据通过固定标准压缩编码形成对应的视频流格式,常见的视频流格式包括H263、H264、H265。
H263是由ITU-T制定的视频会议用的低码率视频编码标准。
H264也是由ITU-T提出的高度压缩数字视频编解码器标准,也是现在主流使用的编码标准。
H265H.265是新的编码协议,是H.264的升级版,压缩率更高。

音频编码

音频的原始数据的编码方式为PCM(脉冲编码调制),是一种模拟信号。原始的PCM数据通过编码之后形成对应的音频流格式,音频流格式包括:AAC、G726、G711。其中G711音质最好,但是压缩效率低。G726音质好,算法简单,但是压缩效率低。AAC是有损压,缩压缩效率高。

视频编码参数解析

帧率(Frame Rate)
每秒显示帧数(Frames Per Second)。电影的帧率一般是25fps和29.97fps,3D游戏要保持流畅则需要30fps以上的效果。

分辨率
指视频宽高的像素数值。标准1080P的分辨率为1920×1080,帧率为60fps,也就是真高清。而最常见的网络传播的1080P高清片帧率通常为 23.976 fps。

画面比例(Aspect Ratio)
指视频画面宽和高的比例。常见的比例有16:9和4:3

采样率
每秒从连续信号中提取并组成离散信号的采样个数,它用赫兹(Hz)来表示。视频转换器的默认采样率是44100Hz。

封装格式
多媒体封装格式也称多媒体容器 (Multimedia Container),它不同于H.264、 AAC这类编码格式,它只是为多媒体编码提供了一个“外壳”,也就是所谓的视频格式。如MP4、AVI、MKV、FLV、WMA等。

码率(Bit Rate)
指视频或音频文件在单位时间内使用的数据流量(单位通常是Kbps也就是千比特每秒)。通常2000kbps~3000kbps就已经足以将画质效果表现到极致了。码率参数与视频文件最终体积大小有直接性的关系。

音频编码参数解析

声道数
现在主要有单声道和双声道之分。双声道又称为立体声,在硬件中要占两条线路,音质、音色好,但立体声数字化后所占空间比单声道多一倍。

码率
比特率也叫码率,指音乐每秒播放的数据量,单位用bit表示。一般mp3在128比特率左右为益。

采样率
指每秒钟取得声音样本的次数,22050 的采样频率是常用的,44100已是CD音质。为了保证声音不失真,采样频率应该在40kHz左右。

采样位数
采样位数也叫采样大小或量化位数。它是用来衡量声音波动变化的一个参数,也就是声卡的分辨率或可以理解为声卡处理声音的解析度。它的数值越大,分辨率也就越高,常见的声卡主要有8位和16位两种。

视频封装(mux)
复用,按照一定的的格式组织视频流和音频流,包装成固定的格式。

视频解封装(demux)
解复用,按照一定格式解析出原始视频流和音频流。

各种音视频流介绍

ES流
原始流,直接从编码器里面出来的数据流。包括,视频流、音频流和数据流。

PES流
是将基本的码流ES流根据需要分成长度不等的数据包,并加上包头就形成了打包的基本码流PES流。

TS流(Transport Stream)
是将一个节目的多个组成部分按照它们之间的互相关系进行组织并加入各组成部分关系描述和节目组成信息,并进一步封装成传输包后的码流。TS流是将视频、音频、PSI等数据打包成传输包进行传送。主要用于节目传输。TS的传输包长度固定,一般为188字节。

rtsp流(Real Time Streaming Protocoal)实时流传输协议流
rtsp协议用于控制具有实时性的数据(例如多媒体流)的传送,对媒体流提供了诸如开始、暂停、快进等控制功能。是TCP/IP协议体系中的一个,应用层协议。

rtmp流(Real Time Messaging Potocol) 实时消息传输协议流
该协议基于TCP,是一个协议族,包括RTMP基本协议及RTMPT/RTMPS/RTMPE等多种变种。RTMP是一种设计用来进行实时数据通信的网络协议,主要用来在Flash/AIR平台和支持RTMP协议的流媒体/交互服务器之间进行音视频和数据通信。支持该协议的软件包括Adobe Media Server/Ultrant Media Server/red5等。RTMP与HTTP一样,都属于TCP/IP四层模型的应用层。

HLS流(HTTP Live Streaming)
是Apple的动态码率自适应技术。主要用于PC和Apple终端的音视频服务。包括一个m3u(8)的索引文件,TS媒体分片文件和key加密串文件。

流媒体传输部署结构

流媒体传输主要结构由三部分组成:服务端、客户端、流媒体。
服务端:用来为客户端提供服务,向客户端提供资源,并保存客户端数据。
客户端:也称为用户端,与服务端相对应,为客户提供本地服务。
流媒体:采用流传输方式在Internet播放的媒体格式

实时流式传输工作流程

1.视频捕捉
2.压缩和编码(h264,h265,VP9,AV1)
3.视频分段
4.CDN分发和缓存
5.客户端解码和视频播放

直播过程的几种工作模式

推模式
当通知消息来临之时,把所有相关信息都通过参数的形式"推送"给观察者

拉模式
当通知消息来临之时,观察者主动去拉去信息。


版权声明:本文为yang1fei2原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。