使用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);
}
答案 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.