在ISMA成立之前,活动图像专家组在制定MPEG-2系统标准时定义了复用一个或多个音频、视频和数据元素流的方
法,MEPG-2标准在1994年11月被正式发布。数据流被打包,加上时间标识,形成一个被包装的元素流(PES)。音频
、视频和数据(任选)的 PES被复用在一起,形成可存储和传输应用的单一输出流。MPEG-2系统标准的目的是提供
必要的句法,用以同步音频和视频声明信息。MPEG-2系统标准有节目流(PS)和传输流(TS)两种数据流:
• PS用可变长度包, TS用短固定尺寸包。
• PS通常用于DVD类的存储应用中,TS通常用于错误发生较多的场合。
• TS复用那些并没有共同时间基准的数据流,固定长度为 l88字节。在这 188字节的包中,至少有 4字节
用作包头,其余字节用作传输存储数据、音频和视频信息。 TS包头命令包含信息有:同步、包私有、节目标识和
错误状态。 TS可包含附带头领域提供时间信息。
和ISMA流一样,MEPG-2 TS流定义的就是一个在互联网环境下传输视音频信号的数据流格式,也是媒体流的一
种形式。
从上面我们两种流的发展历史来看,ISMA历史相对较短,仅是为了Internet上的流媒体服务而做的标准 ,在
PC VOD应用中较多,但在基于宽带网络和电视终端的数字视频广播领域应用相对较少,因此其目标是互联网上的
低码率点播节目和低并发率。
TS流则是广播行业通用的标准,已经有十多年实际的大规模普遍性应用,目标是基于宽带的数字视频广播,并且
支持多种基本媒体流和多种媒体编码标准,得到全球广播行业和互联网行业的一致认同。目前中国网通IPTV初步
规范中已经明确要求在传输中支持TS流格式。
从流标准制定的目的上来看,ISMA流由于标准本身制定的目的是为了推广MEPG-4的应用,所以其整个系统的设计
是围绕MEPG-4的,它的流格式是和媒体文件相关的,它的目的是优化MEPG-4文件在网络中的传输。为了优化系统
设计,除了编码器(Encoder)和终端的解码器(Decoder)需要了解A/V编解码的细节信息(如视频格式等)外,
流媒体服务器也需要了解编解码的细节(如视频格式等),这样可以使整个系统都可以针对这些细节做出相应的
优化,这必然以加重了流媒体服务器的负荷为代价。MEPG-2 TS流格式与媒体本身不相关,也就是说,TS流只负责
将媒体文件的传递,只有导入媒体文件进入系统的编码器(Encoder)和终端的解码器(Decoder)需要了解A/V编
解码的细节信息(如视频格式等),其他服务器(如流媒体服务器)无需了解。所以虽然TS流格式是在MEPG-2中
定义的,但是它同样可以用来传递MEPG-4的媒体文件,只是因为它在MPEG-2中定义,所以通常称为MEPG-2 TS流。
从对媒体的处理方法上面来看,从编码端到解码端的所有环节,均需建立多个音视频和其他数据流的RTP
Session,因此在做流媒体服务器的I/O时,需要管理多个输入输出,多个Buffer的管理以及它们之间的同步,将
极大地增加流媒体服务器的处理能力,也带来了较大的算法复杂性,同时降低了系统的稳定性和可靠性。下图就
是ISMA的MP4文件头格式。采用用ISMA标准需要管理更多的RTP Session,要管理更多的I/O和Buffer,将极大的消
耗流媒体服务器和STB的CPU性能和内存,从而严重地影响系统的性能。根据Darwin系统及其实验,我们在一台高
性能机器上,也只能跑较少的Stream并且会有掉线情况发生。ISMA的视音频同步是依靠RTP中的Time Stamp来实现
,因此在同步时,需要等到音视频的RTP都到达后才能实现视音频同步,带来的结果是,采用ISMA,在网络不稳定
的时候,同步的时间可能会增加,导致频道切换以及快进快退等操作时响应不够快。除了需要编解码器,同时还
需要流媒体服务器参与AV 同步的处理,消耗了流媒体服务器的资源,增加了算法复杂度和性能代价,并且降低了
系统的可靠性和稳定性。在解码的时候,用ISMA时,由于需要建立多个RTP Session连接,因此需要有多个Buffer
,并对其管理,所以采用ISMA时使用的解码器的Memory和CPU资源也更多,其对硬件的要求也比较高。正是由于TS
流和媒体格式不相关,所以无论采用什么样的新媒体格式,对流媒体服务器没有影响,而由于TS流本身复用的是
并没有共同时间基准的音频视频流,其同步是由TS的头部来提供的,所以音视频同步也无需流媒体服务器参与,
简化了流媒体服务器的设计。
从处理方法上来看将多个音视频和其他数据流复用在一起,仅需建立一个RTP Session,因此在做I/O、Buffer管
理和音视频同步等方面将会简单和容易得多。采用TS流,在相同的试验条件下,流媒体服务器会支持几百个2M以
上的Stream并且不会掉线。在视音频同步问题上,TS不存在ISMA同样的问题,因为其时间信息都在一个流中,TS
的视音频同步只需在编码和解码端实现,中间的其他环节,如流服务器等,不需要参与,可以降低流媒体服务器
的算法和处理复杂度。在解码方面,TS流的主要工作是在解复用上,即解复用器需要分析PSI信息,然后根据PSI
信息获取音视频的PID,在通过PID滤波,得到视音频流,输出到各自的Buffer中。由于TS是固定的188字节包结构
,因此PID在包中的位置固定,滤波很容易实现,经过测试,采用软件TS流解复用的方法,在Equator BSP-15平台
上,占用的CPU资源不足5%,其机顶盒硬件的要求相应也比ISMA格式的机顶盒低。
从对业务的支持方面来看,频道切换是一个关键指标,采用ISMA方式,进行Live TV频道切换,由于STB解码时所
需的很多信息在ISMA文件头中,因此 STB需要从系统中重新获取ISMA的文件头。所以系统还必须有一整套ISMA的
文件头的生成和管理。这样会造成解码频道切换的延迟,采用ISMA方式,在Live TV做频道切换时,STB还需要重
新获取SDP,并重新建立音视频的Session,这两个方面均会造成频道切换时间较长,不能满足电信标准规定的2秒
钟,这两个因素导致了采用ISMA频道切换速度比较慢,在做Live TV时,如果编码器的参数被修改了之后,需要
STB与编码器或流媒体服务器之间重新建立RTSP Session,以获取新的SDP,然后才能从SDP中得到解码所需要的一
些具体参数。而TS流中,没有所谓文件头,而且音视频也在同一个流中,因此可以做到很快地频道切换,能满足2
秒的切换时间要求,同样在做频道参数改变的时候,所有的解码参数均是伴随着码流一起下来的,因此不需要建
立另外的Session,解码器反应速度会更快。
网络技术和计算机技术是发展非常迅速,所以系统的升级是必然的:支持不同的编码格式需要升级,增加新的功
能需要升级,增加新的服务也需要升级。ISMA1.0视频基于MPEG-4 Part2,以SP和ASP为基础,并没有涉及到
H.264, 而ISMA2.0则是基于H.264,ISMA2.0不兼容ISMA1.0,即ISMA1.0的服务器和客户端不能平滑升级到ISMA2.0
系统,具体原因在于:
1、视频RTP包的封装模式不兼容;
2、DP消息格式不兼容;
3、文件的存储方式不一致:ISMA1.0基于MPEG-4 Part14(*.MP4), 而ISMA2.0的文件格式基于MPEG-4 Part15
(*.avc1)。
目前支持H.264的ISMA2.0刚发布,还没有得到很多专业编码器的支持。
TS的存储则与媒体编码格式无关,MPEG-2 TS可以封装任何格式的内容。在对TS流进行存储时,只需将其进行分段
处理,然后加上Index信息,并与TS流共同存储即可。因此采用TS流的文件格式具有更好的兼容性,方便IPTV平台
的平滑升级。对于H.264的支持方面,目前有众多H.264专业级编码器支持,如Tandberg,Harmonic。
IPTV系统要提供商业运营,对于数字版权管理非常关注。ISMA中虽然定义了DRM采用AES的加密方法,但其DRM不具
有扩展性。表现在:不支持多种DRM方法和加密标准,不支持对Key的管理。而TS中正好解决了上述这一点,可以
在RTP的extension中定义Key的管理方法和映射关系,以及不同的DRM方法和标准,使得系统在DRM方面具有广泛的
兼容性。
IPTV业务成功的关键在于内容,从这方面看,TS比较有优势。
目前,大部分CP都是电视台、电影公司和广电公司,他们主要的片源都是采用MPEG-2 TS流封装格式。因此TS能更
好的适应CP的主要现状和需求。从和DVB(Digital Video Broadcast数字视频广播)的兼容方面来看,目前在广
电领域,DVB全部是采用TS流封装格式。因此,若采用TS,日后可以与广电领域DVB节目完全兼容。而ISMA流,则
需要采用转码的方式,来实现这些内容的导入。
从目前设备厂家的支持来看,目前所有的专业级的编码器厂商均只支持TS,而不支持ISMA,如Harmonic,
Tandberg, Scientific Atlanta等,所有的MPEG-4和H.264的解码芯片均支持TS格式,所以,选择TS可以为STB(
Set-Top-Box机顶盒)提供更多的选择方案,利于降低STB的成本。目前国外已经规模运营的IPTV系统中,大部分
均采用了MEPG-2 TS格式,包括法国电信,电讯盈科,日本Yahoo!BB等主流运营商。
从上面各方面的比较我们可以看出,ISMA流和MEPG-2 TS流之间的差异在于针对不同的应用而设计,ISMA流是针对
互联网计算机环境下开发的,可以通过计算机性能来弥补网络质量,而MEPG-2则更多考虑在广播行业的应用环境
下,如果优化流的传输。采用何种流格式,反映的正是系统开发中考虑的应用模型。