1、视频播放器原理

视频播放器播放一个互联网上的视频文件,需要经过以下几个步骤:解协议,解封装,解码视音频,视音频同步。如果播放本地文件则不需要解协议,为以下几个步骤:解封装,解码视音频,视音频同步。他们的过程如图所示。

Android 编码成mp3_音频编码

解协议的作用,就是将流媒体协议的数据,解析为标准的相应的封装格式数据。流媒体传输数据中包含指令数据,如暂停、播放、停止等,或者对网络状态的描述。解协议的过程中会去除掉信令数据而只保留视音频数据

解封装的作用,就是将输入的封装格式的数据,分离成为音频流压缩编码数据和视频流压缩编码数据。封装格式种类很多,例如MP4,MKV,RMVB,TS,FLV,AVI等等,它的作用就是将已经压缩编码的视频数据和音频数据按照一定的格式放到一起。

解码的作用,就是将视频/音频压缩编码数据,解码成为非压缩的视频/音频原始数据。音频的压缩编码标准包含AAC,MP3,AC-3等等,视频的压缩编码标准则包含H.264,MPEG2,VC-1等等。通过解码,压缩编码的视频数据输出成为非压缩的颜色数据,例如YUV420P,RGB等等;压缩编码的音频数据输出成为非压缩的音频抽样数据,例如PCM数据。

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


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

互联网点播



3、封装格式

封装格式的主要作用是把视频码流和音频码流按照一定的格式存储在一个文件中


主要封装格式一览


名称

推出机构

流媒体

支持的视频编码

支持的音频编码

目前使用领域

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下载影视




4、视频编码


主要视频编码一览


名称

推出机构

推出时间

目前使用领域

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

微软平台



5、音频编码


主要音频编码一览


名称

推出机构

推出时间

目前使用领域

AAC

MPEG

1997

各个领域(新)

AC-3

Dolby Inc.

1992

电影

MP3

MPEG

1993

各个领域(旧)

WMA

Microsoft Inc.

1999

微软平台




6、直播/点播平台

直播平台参数对比

现有网络视音频平台参数对比


名称

协议

封装

视频编码

音频编码

播放器

CNTV

私有

华数TV

RTMP

FLV

H.264

AAC

Flash

六间房

RTMP

FLV

H.264

AAC

Flash

中国教育电视台

RTMP

FLV

H.264

AAC

Flash

北广传媒移动电视

RTMP

FLV

H.264

AAC

Flash

上海IPTV

RTSP+RTP

TS

H.264

MP2

机顶盒



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

采用RTMP作为直播协议的好处在于其被Flash播放器支持。而Flash播放器如今已经安装在全球99%的电脑上,并且与浏览器结合的很好。因此这种流媒体直播平台可以实现“无插件直播”,极大的简化了客户端的操作。

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


 点播平台参数对比

现有互联网视音频平台参数对比


名称

协议

封装

视频编码

音频编码

播放器

CNTV

HTTP

MP4

H.264

AAC

Flash

CNTV(部分)

RTMP

FLV

H.264

AAC

Flash

华数TV

HTTP

MP4

H.264

AAC

Flash

优酷网

HTTP

FLV

H.264

AAC

Flash

土豆网

HTTP

F4V

H.264

AAC

Flash

56网

HTTP

FLV

H.264

AAC

Flash

音悦台

HTTP

MP4

H.264

AAC

Flash

乐视网

HTTP

FLV

H.264

AAC

Flash

新浪视频

HTTP

FLV

H.264

AAC

Flash



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

采用HTTP作为点播协议有以下两点优势:一方面,HTTP是基于TCP协议的应用层协议,媒体传输过程中不会出现丢包等现象,从而保证了视频的质量;另一方面,HTTP被绝大部分的Web服务器支持,因而流媒体服务机构不必投资购买额外的流媒体服务器,从而节约了开支。