连接视频文件DirectShow

时间:2013-01-13 08:08:41

标签: c# video directshow directshow.net

使用C#,

如何使用DirectShow连接两个视频文件(.avi文件)..? 请帮助!

以下代码仅用于解释问题......

VideoSpanCollection newList = new VideoSpanCollection();
        int j;
        for(int i=0; i<oldItems.Count; i = j)
        {
            for(j=i+1;
                j<oldItems.Count && 
                oldItems[j].File.FullName == oldItems[j-1].File.FullName &&
                Math.Abs(oldItems[j].StartPosition - oldItems[j-1].StopPosition) < 0.5;
                j++);

            VideoSpan newSpan = new VideoSpan();
            newSpan.File = oldItems[i].File;
            newSpan.StartPosition = oldItems[i].StartPosition;
            newSpan.StopPosition = oldItems[j-1].StopPosition;
            AddSpanToListView(newSpan, -1);
        }

1 个答案:

答案 0 :(得分:2)

没有标准/通用的方式,更不用说它们必须是兼容的格式。

在DirectShow中,您需要自定义过滤器,该过滤器从2个以上的源流中传输,并将数据路由到管道的记录段,在路上更新时间戳。

DirectShow Editing Services (DES)虽然在渲染目标文件时可能会重新压缩输出,但可能会有所帮助。好消息DES也包含在DirectShow.NET中,并为您提供了将视频和音频组合成单个输出文件的示例代码。

Samples\Editing\DESCombine
--------------------------
A class library that uses DirectShow Editing Services to combine video and audio 
files (or pieces of files) into a single output file.  A help file (DESCombine.chm) 
is provided for using the class.