0%

视音频技术

1、视频播放原理

视频播放原理

1.1、播放器

视音频技术包括流媒体协议技术、封装技术、视音频压缩编码技术。

播放器
Media Player Classic - HC
MPlayer
FFPlay
XBMC

1.2、流媒体协议

流媒体协议是服务器与客户端之间通信遵循的规定,视音频采用各种流媒体协议,在网络上传输视音频数据的同时,也会传输信令数据,包括对播放的控制或者对网络状态的描述等。

名称 推出机构 传输层协议 客户端 目前使用领域
RTSP+RTP IETF TCP+UDP VLC,WMP IPTV
RTMP Adobe Inc. TCP Flash 互联网直播
RTMFP Adobe Inc. UDP Flash 互联网直播
MMS Microsoft Inc. TCP/UDP WMP 互联网直播+点播
HTTP WWW+IETF TCP Flash 互联网点播
名称 概览
RTSP+RTP 采用UDP传输视音频,支持组播,效率较高,常用于IPTV领域。
但其缺点是网络不好的情况下可能会丢包,影响视频观看质量,因而围绕IPTV视频质量的研究较多。
因为互联网网络环境的不稳定性,RTSP+RTP较少用于互联网视音频传输。
RTMP,MMS,HTTP 互联网视频服务通常采用TCP作其流媒体的传输层协议,因而RTMP,MMS,HTTP这类协议广泛用于互联网视音频服务之中。
这类协议不会发生丢包,因而保证了视频的质量,但是传输的效率会相对低一些。
RTMFP 较新的流媒体协议,特点是支持P2P。

1.3、解协议

将流媒体协议的数据,解析为标准的相应的封装格式数据。
解协议的过程中会去除掉信令数据而只保留视音频数据。
例如,采用RTMP协议传输的数据,经过解协议操作后,输出FLV格式的数据。

1.4、封装格式

将已经压缩编码的视频数据和音频数据按照一定的格式放到一起。
有些封装格式支持的视音频编码标准十分广泛,算比较优秀的封装格式,比如MKV;
而有些封装格式支持的视音频编码标准很少,属于落后的封装格式,比如RMVB。

名称 推出机构 流媒体 支持的视频编码 支持的音频编码 目前的使用领域
AVI Microsoft Inc. 不支持 几乎所有格式 几乎所有格式 BT下载影视
MP4 MPEG 支持 MPEG-2, MPEG-4, H.264, H.263等 AAC, MPEG-1 Layers I, II, III, AC-3等 互联网视频网站
TS MPEG 支持 MPEG-1, MPEG-2, MPEG-4, H.264 MPEG-1 Layers I, II, III, AAC IPTV,数字电视
FLV Adobe Inc. 支持 Sorenson, VP6, H.264 MP3, ADPCM, Linear PCM, AAC等 互联网视频网站
MKV CoreCodec Inc. 支持 几乎所有格式 几乎所有格式 互联网视频网站
RMVB Real Networks Inc. 支持 RealVideo 8, 9, 10 AAC, Cook Codec, RealAudio Lossless BT下载影视
其他封装格式
MOV
WMV

1.5、解封装

将输入的封装格式数据,分离成音频流压缩编码数据和视频流压缩编码数据。
例如,FLV格式的数据,经过解封装操作后,输出H.264编码的视频码流和AAC编码的音频码流。

1.6、编码

1.6.1、视频压缩编码标准

视频编码的主要作用是将视频像素数据RGB,YUV等压缩成为【视频码流】,从而降低视频的数据量。
高效率的视频编码在同等的码率下,可以获得更高的视频质量。
当前使用最多的视频编码方案就是H.264。
在码率一定的情况下,编码标准的比较:

1
HEVC > VP9 > H.264> VP8 > MPEG4 > H.263 > MPEG2
名称 推出机构 推出时间 目前使用领域
HEVC(H.265) MPEG/ITU-T 2013 研发中心
H.264 MPEG/ITU-T 2003 各个领域
MPEG4 MPEG 2001 不温不火
MPEG2 MPEG 1994 数字电视
VP9 Google 2013 研发中
VP8 Google 2008 不普及
VC-1 Microsoft Inc. 2006 微软平台

视频压缩编码器

编码器 编码标准
JM H.264
x264 H.264
HM H.265/HEVC
x265 H.265/HEVC

1.6.2、音频压缩编码标准

音频编码的主要作用是将音频采样数据PCM等压缩成为【音频码流】,从而降低音频的数据量。
高效率的音频编码在同等的码率下,可以获得更高的音质。

名称 推出机构 推出时间 目前使用领域
AAC MPEG 1997 各个领域
AC-3 Dolby Inc. 1992 电影
MP3 MPEG 1993 各个领域
WMA Microsoft Inc. 1999 微软平台

1.7、解码

将视频/音频压缩编码数据,解码成为非压缩的视频/音频原始数据。
通过解码,压缩编码的视频数据输出成为非压缩的颜色数据,例如YUV420P、RGB等等;
压缩编码的音频数据输出成为非压缩的音频抽样数据,例如PCM数据。

视频原始数据
YUV
RGB
音频原始数据
PCM

1.8、视音频同步

根据解封装模块处理过程中获取到的参数信息,同步解码出来的视频和音频数据,并将视频音频数据送至系统的显卡和声卡播放出来。

1.9、网络视音频

1.9.1、直播

1
直播服务普遍采用了RTMP作为流媒体协议,FLV作为封装格式,H.264作为视频编码格式,AAC作为音频编码格式。

FLV是RTMP使用的封装格式,H.264是当今实际应用中编码效率最高的视频编码标准,AAC则是当今实际应用中编码效率最高的音频编码标准。

1.9.2、点播

1
点播服务普遍采用了HTTP作为流媒体协议,H.264作为视频编码格式,AAC作为音频编码格式。

采用HTTP作为点播协议有以下两点优势:
一方面,HTTP是基于TCP协议的应用层协议,媒体传输过程中不会出现丢包等现象,从而保证了视频的质量;另一方面,HTTP被绝大部分的Web服务器支持,因而流媒体服务机构不必投资购买额外的流媒体服务器,从而节约了开支。
点播服务采用的封装格式有多种:MP4,FLV,F4V等,它们之间的区别不是很大。视频编码标准和音频编码标准是H.264和AAC。这两种标准分别是当今实际应用中编码效率最高的视频标准和音频标准。

1.10、视频参数对比

名称 对比
流媒体系统 https://en.wikipedia.org/wiki/Comparison_of_streaming_media_software
封装格式 https://en.wikipedia.org/wiki/Comparison_of_video_container_formats
视频编码器 https://en.wikipedia.org/wiki/Comparison_of_video_codecs
音频编码器 https://en.wikipedia.org/wiki/Comparison_of_audio_coding_formats
视频播放器 https://en.wikipedia.org/wiki/Comparison_of_video_player_software

2、视音频数据处理

2.1、RGB、YUV视频像素数据处理

RGB/YUV视频像素数据在视频播放器的解码流程中的位置:

视频像素数据