的LEADTOOLS基本流源而且作家过滤器允许开发人员创建使用多台物理机器对单个文件进行代码转换的应用程序,从而减少总转换时间。将源文件分割成多个片段,在单独的机器上对每个片段进行代码转换,并将这些转换后的文件合并回单个文件的过程无缝地完成,在分割点上没有任何间隙,也没有音频/视频同步的损失。
的一部分包含了过滤器LEADTOOLS多188宝金博怎么下载媒体套件.
执行以下步骤创建多机转码应用程序:
创建拆分文件
类的实例首席初级流写手使用ConvertCtrl。GetSubObject方法,并设置以下属性:
开始转换。完成后,您应该有几个分割文件(由Writer Filter中的设置决定)和一个目录文件。
对每个分割文件进行代码转换
在一个典型的场景中,每个分割文件将被复制到一个单独的机器上,文件将按如下所述进行转码:
对于音频流也应该重复上述过程。看到关于流类型的说明下面是更多信息。
合并拆分文件
一旦所有分割文件都被转码,您就可以将所有单独的剪辑合并在一起了。所有转码剪辑(音频和视频)的源路径应与原始目录文件中相应剪辑的路径匹配:
对于音频流也应该重复上述过程。看到关于流类型的说明下面是更多信息。
LTESC格式
LTESC格式(LEADTOOLS基本流目录)用作索引文件,包含XML, XML表示将所有分割文件合并到一起所需的所有信息。下面是一个lesc文件的示例。
<?xml version =“1.0”编码=“utf - 8”? >
< ltesCatalog >
<流id =“流1”类型=”{73646976 - 0000 - 0010 - 8000 - 00 - aa00389b71}”>
<剪辑src =“test-1-c1.ltes”开始=“0”时间=“100100001”/>
<剪辑src =“test-1-c2.ltes”开始=“0”时间=“100100111”/>
<剪辑src =“test-1-c3.ltes”开始=“0”时间=“100100111”/>
<剪辑src =“test-1-c4.ltes”开始=“0”时间=“100100111”/>
<剪辑src =“test-1-c5.ltes”开始=“0”时间=“20020000”/>
> < /流
<流id =“流2”类型=”{73647561 - 0000 - 0010 - 8000 - 00 - aa00389b71}”>
<剪辑src =“测试- 2. - lte”开始=“0”时间=“419635001”/>
> < /流
< / ltesCatalog >
流-表示目录文件中的流。因为音频流通常转换得非常快,所以音频流永远不会被分割。只有视频流被分割。
类型—表示流主类型的Guid。在大多数情况下,这是音频或视频,但也支持其他流类型。如上所述,只有视频流将被分割。
剪辑-每个流包含一个剪辑的集合。这些是从源文件中分离出来的单独文件,经过转码,然后合并到一起。
Src—对应剪辑的文件路径。
开始—对应剪辑的开始时间。
持续时间-对应的剪辑长度。
在合并拆分文件时,重要的是要在编目文件中更新所有转码拆分文件的路径。您可以直接更新目录文件,也可以创建一个单独的目录文件,该文件是原始目录文件的副本,但具有更新后的文件路径。
视频流的转码过程是转码过程中cpu最密集的部分,它负责大部分的转码时间。音频流的转码过程要快得多,CPU消耗也更少。因此,LTES写入器只分割视频流。任何其他流(如音频)仍然可以转码,但整个流将立即转码。
已知的问题
微软MPEG4解码器偶尔会丢弃转换的最后一帧。合并后的视频不会丢失同步,但每个分割文件的最后一帧会丢失。要解决此问题,建议使用导MPEG4解码器.您可以通过增加LEAD解码器的优点,或将SetPreferredFilter属性设置为LEAD MPEG4解码器来实现这一点。