1

C# を使用して、

DrirectShow を使用して 2 つのビデオ ファイル (.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);
        }
4

1 に答える 1

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.
于 2013-01-13T08:24:01.527 に答える