IP网络视频传输:技术、标准和应用
上QQ阅读APP看书,第一时间看更新

1.2.4 压缩视频的流化

(1)从视频文件到视频流

如果将视频数据的全体比作一潭池水,用户通过IP网络接收和观看视频节目时,可以先将这一潭池水全部搬(传输)到用户的水池中,再由用户自行播放观看。这就是一种文件“下载”(Download)的传输和观看方式,是IP网络初期普遍采用的“下载播放”方式。

如果仅是为了观看视频内容,那么,很容易理解,不必等到一潭池水完全搬到用户处以后再让用户使用,而是采取“水流”的方式,将这一潭池水不停地通过一根管道流到用户处。在用户处,待流入的水稍有积存便开始使用(观看),形成一种一边流入、一边观看、一边丢弃的新的“传输”和“使用”视频数据的方式,这就是“流式视频”(Streaming Video)方式,又称为“边下载边播放”方式,其传输的对象是视频流(Video Streaming)。它降低了对用户存储容量的要求,大大缩短了等待观看时间,观看过的数据不再保存,也有利于知识产权的保护。

实际上,这种“流”传输方式在Internet兴起之前就已经存在,如传统的广播与电视均采用了“流”技术,它们所播出的音频或视频信号不经过存储,由于带宽的保证,信号实时地从发送端“流”(传送)到各接收端,中间几乎没有延时,接收端在收听或收看后也不做任何存储。

(2)节目流和传输流

视频信号经压缩后形成视频的压缩数据,将这些压缩数据进行适当的处理,形成视频流数据,这一过程称为流化。流化后的数据更加方便网络传输。从压缩视频数据到视频流数据,一般都采用MPEG-2标准所规定的方法处理。MPEG-2标准的第一部分(Part 1),即系统(System)部分(13818-1)描述多个视频、音频和数据的基本流(ES,Elementary Stream)、打包基本流(PES,Packetized ES)、节目流(PS,Program Stream))和传输流(TS,Transport Stream)的形成方式。需要注意的是,这种MPEG-2流化处理的媒体对象并不限于MPEG-2的压缩音频和视频数据,其他视频压缩标准产生的压缩数据也能够用这种方式处理,形成视频流。通俗地说,MPEG-2的第一部分提供的是一种“外包装”规定,至于包装的内容则由用户自行选择。因此,虽然是MPEG-2的流化方式,实际上是普遍适用的压缩视频数据的流化方法。

①ES和PES

基本流直接由编码器输出的压缩视频数据、压缩音频数据和其他控制辅助数据组成。为了适应网络传输,对ES数据打包、加上适当的包头形成打包基本流数据。

②PS和TS

ES和PES是一种过渡数据流,并不直接用于输出。实际应用时,根据应用需要,以PES数据为基础,采用不同的方式对PES打包,形成两种不同方式的数据包:一种为PS,另一种为传输流TS。其中,PS为不定包长,适于存储或可靠信道传输使用;而TS为固定包长,适于在一般有干扰的有线、无线信道中传输。因此,在视频流的网络传输中更为普及的是TS流。

在TS传输流中,包含一系列固定长度为188 byte的TS包,每个TS包由4 byte的首部和184 byte的载荷组成。TS报文的首部包含TS传送流的重要信息,如“传送错误指示”“传送优先指示”“分组标识”(PID,Packet IDentifier)等。在复用后的MPEG-2传输流中,不同的媒体流传送分组的PID标识是不同的,而且是唯一的,是区分不同类型(如音、视频)传送流分组的重要参数。

③H.264/AVC的TS

H.264/AVC视频编码格式是目前主流的格式,它的压缩码流分为两层:视频编码层(VCL,Video Coding Later)和网络提取层(NAL,Network Abstraction Layer)。待传输的压缩视频数据封装进NAL单元中,视频流是由一个个NAL单元串接而成,通常一帧视频数据封装在一个或几个NAL单元中。在网络传输前,需将这些NAL单元按照MPEG-2的传输流打包方法顺序打包成一个个TS包,然后将这些TS包送至网络,如图1.7所示。

图1.7 H.264/AVC的TS流形成

(3)视频流的传输模式

打成TS包的视频传输流可以直接送上IP网络进行传输,其传输方式通常用客户机/服务器(C/S,Client/Server)或浏览器/服务器(B/S,Browser/Server)模式,包括服务器端、传输网络和客户机端(用户)3部分。一个服务器通过网络的连接可以服务于若干客户机。原始视频信息被压缩编码后,由服务器实时打包后发向网络,经过网络传到客户机的缓存进行播放。

B/S传输模式如图1.8所示,用户在客户机端电脑的Web浏览器与服务器端的Web服务器之间采用超文本传输协议(HTTP,HyperText Transfer Protocol)和传输控制协议(TCP)进行互控操作,点播自己所选的视频节目流。接收到用户选择某一视频流服务后,服务器开始检索用户所需要的实时数据,从编码器取出,并向用户端发送视频数据,节目开始播出。流文件经过传输网络到达用户端,用户通过视频播放器开始观看。视频服务器与用户电脑视频播放器之间的媒体数据流一般采用实时传输协议(RTP,Real-time Transport Protocol)和用户数据报协议(UDP)进行传送。在节目播出中,用户电脑播放器与媒体服务器之间的控制信息采用实时流协议(RTSP,Real Time Streaming Protocol)和TCP(或UDP)进行互传。RTSP起一个遥控器的作用,用于用户电脑对视频服务器的远程控制,如控制媒体数据流的暂停、快进、慢进或回放等。

图1.8 视频流传输过程