VCD文件的快速编辑 刘毅 2001年 21期 现在不少用户都拥有了视频采集卡和刻录机,可以把拍摄的生活片段刻录成VCD,便于保存和赠送亲友。拍摄的内容往往需要编辑一下,通常使用非线性视频编辑软件,虽然实现起来非常方便,但是在生成VCD(MPEG)文件时,如果没有价格昂贵的实时编辑卡,则需要耗费大量的时间。更为严重的是,MPEG是一种有损压缩格式,容易引起影片质量的下降。   以下将用两个例子讲解方法和技巧。要求不损失影片质量,还要快速、精确,同时不增加成本。核心就是如何对MPEG文件进行无损剪辑,同时尽可能地扩展功能。所有例子都基于VCD标准的MPEG-1格式的,读者可自行扩展到MPEG-2格式中。   例一、我有几盒家庭录影带,已经使用同一块视频采集卡照VCD标准采集成了几段MPEG文件(详情请见今年电脑报第4期B4、B5版《自己动手制作家庭VCD》)。我想剪掉一些内容,个别片段重新排序,最后生成单个MPEG文件,能够刻录成VCD。   使用软件:M1-edit Pro 3.0,下载地址http://www.mediawaresolutions.com/。   由于软件操作简单,并且很多视频编辑爱好者都用过,这里不做详细讲解,只给出简单过程,为后面的例子打打基础。在主程序Navigator窗口中打开第一段影片(如sample01.mpg),在监视窗口Monitor中观看,设置入点和出点,如^21020801a^1所示。   从“Panels”(面板)菜单中打开Composer(设计者)窗口,使用“Edit”(编辑) 菜单的“Insert”(插入) 命令将该片段插入到“Timeline”中;回到Navigator窗口打开另一段影片(Sample02.mpg),重复上面的操作。在“Composer”窗口的Timeline 中用鼠标拖动每个片段进行重新排序,如^21020801b^2所示。在“Composer”窗口中选取“File”(文件)菜单的“Save”(保存)命令存储为EDL(编辑点记录表,^21020801c^3所示)文件,然后使用“Generate”(生成)命令,设置好参数和文件名,生成最终的MPEG文件。   说明1:这种生成并不重新进行MPEG编码,只是将MPEG文件剪接起来,质量没有损失,速度很快;   说明2:这里所剪辑的MPEG文件必须是从同一块采集卡上使用同样的设置参数采集的,否则无法进行多文件操作;如果生成时某个片段发生错误,可以微调一下该片段的起始点和终止点;为了避免发生这种错误,每次剪辑时每个片段的头尾都最好剪掉几帧;   说明3:如果生成的MPEG文件用于刻录VCD,建议在末尾增加4~5秒的蓝屏、彩条之类的无关片段,因为影碟机在播放时很可能最后几秒的内容放不完。   (编注:这里的说明非常重要,对例二同样有效。)   例二、我自己做了一段片头,想同例一中生成的文件合成在一起,生成单个新的MPEG文件,能够刻录成VCD。   实际上这个命题就是如何编码一段影片(一般较小,如几分钟)使之同其他影片的编码结构相一致(一般较大,如几十分钟,这里假设文件名为Sample.mpg),然后把它们剪接到一起。   使用软件:M1-edit Pro 3.0 TMPGEnc或者LSX-MPEG Encoder 3.5   片头可以使用任何软件制作,要符合VCD标准,注意不要把PAL和NTSC两种制式混在一起。运行M1-edit Pro 3.0,在Navigator窗口中打开影片Sample.mpg。从“Panels”菜单中打开“Info”(信息)窗口,分别单击菜单中的“Mpeg file”(MPEG文件)、“Sequence”(顺序)和“Group of pictures”(画面组)命令,得到当前MPEG文件的详细信息。限于篇幅,这里不具体解释每个信息的含义,只提取核心为我所用。(下面的参数因采集卡及其采集参数的不同而不同,黑体文字表示需要特别关注,千万别忽略了。)   ① Mpeg file命令的信息   Audio部分比较简单,MPEG Layer Ⅱ格式,bit rate为224000 bit/s,采样频率44100Hz,立体声或双声道等;PAL制MPEG文件的Video部分,宽度352,高度288,25帧/秒;NTSC 制式MPEG文件的Video部分,宽度352,高度240,29.97帧/秒。本例中Sample.mpg文件的bit rate 为 1120000 bit/s。VCD标准要求比特率小于1152000 bit/s。   ② Sequence命令的信息   Aspect ratio=0.916表示4∶3的625线PAL制,不要设置成1∶1或N制   ③ Group of pictures(GOP)命令的信息(如^21020801d^4所示的IBP列表),我们记录下这一组GOP码:IPPPPPPPPPPPP,即1个I帧,12个P帧。不同采集卡采集的MPEG数据的GOP并不一定相同,经过剪辑后的GOP也可能发生变化。   下面以TMPGEnc为例对片头文件进行MPEG编码。   这里我们不使用VCD模板,全部手工设置,并且要同前面的数据完全完全一致,这需要一定的经验。如^21020801e^5所示的视频标签的设定必须同Mpeg file命令信息中的数据一致。如^21020801f^6所示GOP结构标签的设定必须同Group of pictures(GOP)命令的信息中的结构一致。    所谓GOP,意思是画面组,一个GOP就是一组连续的画面。MPEG编码将画面(即帧)分为I、P、B三种,I是内部编码帧,P是前向预测帧,B是双向内插帧。简单地讲,I帧是一个完整的画面,而P帧和B帧记录的是相对于I帧的变化。没有I帧,P帧和B帧就无法解码,这就是MPEG格式难以精确剪辑的原因,也是我们之所以要微调头和尾的原因。更详细的内容,读者可以查阅有关的MPEG资料。   其余部分的设定比较简单,不详细说明了。最后进行编码,生成一个MPEG文件,载入M1-edit Pro 3.0中,同Sample.mpg剪接在一起。最后生成的MPEG文件的GOP结构可能已经发生了变化。   TMPGEnc的MPEG工具也可以完成这种剪接,但是由于它对文件要求不严格,并且能够生成VBR(可变码率)的MPEG文件,导致我们在不知道的情况下完成剪辑,最后生成的MPEG文件不严格符合VCD的标准,造成影碟机播放时发生问题。在商业应用中这是不能接受的,所以宁可麻烦些也应该在M1-edit Pro 3.0中完成。   有些GOP结构的IPB TMPGEnc无法设置成功,这时可以换用LSX-MPEG Encoder 3.5来试一试。但是LSX在影像部分的比特率是以K为单位的,需要进行换算,方法是使用比特率数据,除以1024,然后取整。需要说明的是,LSX不能生成全范围的比特率,例如它就不能生成1120000 bit/s的比特率。   LSX-MPEG Encoder 3.5可以从www.mydown.com处下载,本文中介绍的方法不是万能的,但是可以满足多数应用,包括商业应用。按照本文开头提出的要求,即“不损失影片质量,还要快速、精确,同时不增加成本,尽量增加一定的特效”,采用文中所介绍的方法,编辑生成一个60分钟的MPEG-1文件,所花费的时间应该在半小时左右,可不包括设计片头的时间哟!   MediaWare Solutions公司还有一个名为M2-edit Pro的MPEG-2剪辑软件,TMPGEnc和LSX-MPEG Encoder 3.5都能够进行MPEG-2编码,而TMPGEnc还能进行MPEG-2格式的剪辑。将本文扩展开,读者就可以快速剪辑MPEG-2文件了,然后刻录成SVCD或DVD。