TP简介+播放指

来源:互联网 发布:淘宝排行榜 编辑:程序博客网 时间:2024/06/05 09:22
一 【MPEG2-TS、TP流文件的简介】

 

   要了解TP,还得从TS说起。先来简要介绍一下什么是MPEG2-TS吧。MPEG2格式大家都通过对DVD的接触而多多少少了解了一些,DVD节目中的MPEG2格式,确切地说是MPEG2-PS,全称是Program Stream,而TS的全称则是Transport Stream。PS与TS都是基于mpeg2运动压缩算法的流媒体。所以平常我们可以把ts文件后缀改成mpeg而不影响观看。

   MPEG是‘Moving Picture Experts Group’的简称,在它之前的标准叫做JPEG,即‘Joint Photographic Experts Group’。当人们用到常见的‘.jpg’格式时,实际上正在使用JPEG的标准。JPEG规范了现代视频压缩的基础,而MPEG把JPEG标准扩展到了运动图象。而MPEG-2是MPEG-1之后的标准,是与MPEG-1向后兼容的,但同时又增加了几个新的内容,这包括5.1声道环绕声,即除了左右声道外还加有中央声道、左后声道和右后声道,以及一个低频增强声道,前面的5.1中的.1就是指这个低频声道。MPEG-1包含了构成一幅图象所需的全部元素,这些元素构成了所谓的‘系统流(system stream)’。在MPEG-2中,系统流被重新命名为‘节目流(program stream)’,节目流还规定了传输流(transport stream)(也就是ts)用于容易出错的媒体。节目流同时还增加了数字电视的服务内容。MPEG-2是一种同时适用于空间传送与电缆传送的MPEG标准。所以HDTV实际上被并入到MPEG-2中~

   那么这两种格式的主要区别是什么呢?简单地打个比方说,你将DVD上的VOB文件的前面一截cut掉(或者干脆就是数据损坏),那么就会导致整个文件无法解码了,而电视节目是你任何时候打开电视机都能解码(收看)的,所以,MPEG2-TS格式的特点就是要求从视频流的任一片段开始都是可以独立解码的,所以我们可以从某个整场中截取一段视频而不会影响播放,正是这个道理。也正是如此,我们的tp流出现了————TP流实际上是从MPEG2-transport stream(TS)中截取出来的一段packet(package),也就是
MPEG2-transport stream packet或者transport packet,简称TP或者TRP~~^_^

   所以tp实际上也可以说是一种封装包,里面含有视频流和音频流数据,这一点和avi、mkv是一样的。所不同的是采用的MPEG2的压缩标准,而且tp、ts的码率一般在16~20Mbps左右(VCD是1.5Mbp,DVD是4-6Mbps),也就是 2.x M字节/秒的速率,一个HDTV频道的码率甚至在20Mbps左右,数据量相当庞大,而且一般采用ac3音频格式,所以体积就更庞大,.tp和.ts电影能达到8G以上,有的甚至达到20多G(比如说魔戒2 1080i)。在这里我顺便提一下1080i(1080i:水平扫描行数为1080行,每行有1920或者1440个图像点的高清晰度电视标准,用“半图像”的方法进行信号传输,“隔行扫描”,每次图像刷新只在一半的扫描行中进行。使用的频率为50或者60 Hz。特别适用于放映故事片或者是文稿演示) 站上的tp几乎都是1920×1080i的,所以清晰度绝对保证~

   下面用jewelry.tp来说明一下(最爱jewelry啊~~~咔咔)

我们可以看到她的码率是18.03mb/s,29.97侦,并且是1080i的~


二 【MPEG2-TS、TP流文件的播放】

   像tp这类hdtv对电脑的硬件要求比较苛刻,尤其与cpu、内存、显卡密切相关。如果这三样中有一样性能过低,就会产生一些播放问题。播放HDTV时常出现的丢帧现象通常是显存容量不够造成的,尤其是在播放1080 i格式HDTV的时候,1920×1080的像素量,需要足够大的显存才能满足其数据吞吐,因此显存至少需要64M以上,建议128M。由于是2D显示,所以对显卡核心的运算能力要求反而不是很高。稍后再对硬件要求具体分析,我们先来看看tp流的回放,具体包括播放器、分离器、视频音频解码器和字幕外挂控件:

 1、播放器
   可供选择的播放器很多,具体像windows media player、realplayer、暴风影音(mpc)、windvd、powerdvd、fusionHDTVdemo、on air HD Editor、bsplayer、zoomplayer、kmplayer、Elecard Player、VLC Media Player(小红帽)等等~
   像fushionHDTV、on air HD Editor这类播放器可以直接打开tp流文件,wmp和mpc装了分离器和解码器之后也可以直接打开,有的播放器可能就需要把ts流文件后缀名改为mpeg才能够识别了~配置不同,对播放器选择也有讲究,一般来说机器够强的话可以选择Windows Media Player10、mpc、windvd,稍差的可以用fushoinHDTVdemo、on air HD Editor、bslpayer、kmlpayer、Elecard Player、vlc~可能很多朋友关心用哪个播放器效果最好,且不说每个人硬件配置不同,也不说个人感觉差异,分离器和解码器也至关重要~
 
 2、分离器(Splitter Filter)
   分离器的功能就是识别文件真正的格式,将其中的视频流数据、音频流数据分离出来,并发送给相应的解码器。
   微软的DirectX里已经提供了此类的分离器,但是兼容性不好,而且甚至在DirectX9以及XP里的DirectX8中就取消了对TS流的支持。
  我向大家推荐的是Elecard Player中的分离器,这是目前公认比较好的,可以通过安装Elecard Player获得。也可以从这里下载
点这里下载Moonlight-Elecard MPEG Player 2.3分离器
   另外还有kmp等偶不曾听说和使用过的分离器,有兴趣的朋友可以自己尝试~

 3、视频音频解码器
   从分离器分离出来的视频音频流数据就交给解码器处理,这个不用多解释了。解码器选择也比较丰富。配置强首选MoonLight_Elecard的专业解码器,另外还有sonic cinemaster ds video和cyberlink DTV video decoder、nvdvd解码包,后面这三个都支持显卡硬件解码,可以有效减轻cpu负担,保证播放流畅~这对于配置不高的机器是最好的。
   音频解码器就选择ac3了,tp流的音质也是相当牛的,所以选择好的解码器很有必要。ac3解码器可以到射手去http://www.shooter.com.cn/?softid=ac3filterGPL2另外使用windvd的朋友就不用去下载了,它自带ac3解码,你只需要设置一下就可以了,看这里http://bbs.newseeing.com/dispbbs.asp?boardID=9&ID=3159

 4、字幕外挂控件
   这个只对需要看ts流电影有帮助,站上的tp一般不需要字幕,这里就不详细说了,首选vobsub,有需要的朋友可以看看相关教程。另外kmplayer和bsplayer已经自带字幕插件了,而且占用资源比较少~对于很多朋友来说,MPEG2解码器/AC3解码器、播放器、VOBSub这些都是现成的,所以只要安装一个分离器控件,就可以让大多数的播放器来播放TS流文件了(记得改后缀名为.mpg)。

   准备好了以上四大装备,播放tp就OK了,但是随之而来的一系列播放不流畅、丢侦、音画不同步、花屏、插件冲突等问题多数难以避免,下面只能简单谈谈,具体问题还得具体分析~
   WinDVD是不能支持MPEG格式的VOBSub外挂的,不过不用失望,使用微软MediaPlayer、ZoomPlayer这些播放器都会用到WinDVD的视频解码控件(除非你同时安装了几个MPEG2解码控件,那么DirectX可能会自行选择一个注册级别最高的或者是最后安装的,可以通过VOBSub的Filter菜单里看到当前所用的解码控件)高清节目尤其是1080线的画面外挂字幕会很明显地耗费CPU,一般提高10~20%。ac3对cpu要求也较高。
  DirectX最好是8.1以上的,显卡驱动也最好是官方最新的而不是微软自带的。
   如果安装了上面介绍的解码器后你只能看到图像却听不到声音,那么就说你要看的视频文件的声音部分是使用其他的音频编码器压制的,所以还需要安装像Ac3或者OggDS这样的音频编码器才可以。目前用来压制DVD视频的Ac3音频编码器通常是Dualac3filters和Ac3filters这两种编码器。 Dualac3filters的安装:将下载回的压缩包中的所有文件解压到一个目录中。如果你的操作系统是WIN98就运行registerfilters-98.bat来安装。如果操作系统是WIN2K则是运行registerfilters-2k.cmd来安装。OggDS的安装:极少用到的音频解码器,如果安装了上面的两个音频解码器后还不能听到声音就得试试这个了.
   回到上面提的机器配置问题。这个问题各大bbs也没有明确的说法,条件所限我也不能一一尝试,很多高手总结出低配置流畅播放的方法,通过软件搭配与优化尽可能榨干每一分资源,比如说下面这个牛人
★赛扬1.2G也能流畅的播放1080I的HDTV秘籍!(作者:桂林 江春)★
不过如果你能有p41.8+256m内存+64显存是比较保险的,不至于做太费劲的优化~
   播放tp需要的四大件搭配也有讲究。目前普遍认为比较好的方按是BSplayer+Elecard MPEG/kmp分离器+elecard视频滤镜+ac3filter。或者fusion/on air HD+Elecard MPEG/kmp分离器+cyberlink DTV video decoder+ac3filter。fusion和on air都可以打开DXVA硬件加速,只可惜fushion只能播放额定大小以内的文件,并且还不支持aac音频,播放tp的音质也不尽如人意。其实选择远不只这些,关键还是要根据各自的电脑情况。不过据说别的解码器多少会存在一些问题,比如onic cine,如果能正常加载字幕的话,图像会被处理成960*1080;用NV分离器无法快进等等~windvd默认会根据你的机器配置牺牲解码质量而保全流畅度,而且不能挂字幕,这也是为什么有些配置不高的机器用windvd播放反而会比较流畅,另外也可以用WinDVD Tweak来调整WinDVD的性能,启动硬件加速。说了这么多可能有人会说不必这么麻烦,只需要装个解码包就可以了。这话确实没错,我上面介绍的只是对tp播放起关键性作用的四大元素,其中后三大很多解码包基本都包含的了,常用的有avpack,k-lite codec pack,ffshow,他们都包含了elecard分离器和解码器甚至cyberlink DTV video解码器,以及ac3音频解码器,你只要准备一个播放器就行了^_^站上可能有不少人用暴风影音(mpc),个人认为它集成的code太多太杂,而且耗的系统资源也比较高,并且播放质量相比bsplayer、windvd、fusion、on air、wmp10也没什么优势。相对而言bsplayer、fusion、onair在这方面要好的多~

三 【优化系统顺利播放TP】

   除非你的电脑硬件配置的确很强,否则就很可能需要对系统进行一些优化,以便可以顺利地播放TP。首先是在播放TP前关闭所有没有用的后台程序或进程,尽量增加系统的空闲资源为播放TP服务;其次是选择一款占用系统资源较低的软件来播放TP。Windows Media Player、WINDVD等软件占用系统资源较多,在硬件配置本就不高的系统上会影响TP的播放效果,这时可以选择使用BSPlayer。BSPlayer是一款免费软件,最大的特点就是占用系统资源很小,尤其在播放TP文件时,与其它几个资源占用大户相比效果更为明显。另外,运行播放软件后立即打开任务管理器(仅在Windows 2000/XP中有效),将播放软件的进程级别设置为最高,这样也可以为TP的播放调用更多的系统资源。除此之外,安装更高版本的DirectX,也能更好地支持TP的播放.不要装太多插件,以免引起冲突。
   其他方面,ATI显卡的用户可以通过打开AGP快写来提升播放性能,这个影响比较大,如图


 以下是我的机器配置和选择方按,仅供参考:
 AMD AthlonXP2500+oc3200+
 kingston 256M×2 DDR400
 ATI Radeon9800 标准版 128M
 SB Live+sennheiser PX200(其实看HD选择一款好耳机也是很重要的啦^_^)
 Windows Media Player10+elecard mpeg splitter+elecard mpeg encorder+ac3 fliter
 catalyst4.12+DirectX9.0c

 几乎没做过什么优化,不过播放tp时cpu占用率还是有70%~80%,将moonlight换成支持dxva的cyberlink后cpu占用率会降低到30~40%,并且播放更流畅,随个人喜好而定了。这个占用率可能和我给wmp10外挂了dfx音频插件有关。不过dfx插件确实不错,有兴趣的朋友可以试试^_^
 另外推荐powerdvd6.0,他播放tp的效果很好,而且cpu占用率还比较低,支持aac音频,回放效果很好,并且可以随意调节音频输出~