2016-07-28 12 views
3

ffmpegで可能なビデオクリップの一部をカットする必要がありますが、ffmpegを使用したくなく、asp.netでMedia Foundationのアプローチを厳格にしたいと考えています。誰も私にどのように可能なことを示唆することができます。 ライブストリームを終了位置から4分後にカットし、ビデオファイルに保存する必要があります。すでに保存されているビデオではなく、ライブストリームからビデオをカットする必要があります。メディアファンデーションを使用してビデオクリップをカットする#

答えて

4

ffmpegや他のビデオエディタを使用することをお勧めします。 Media Foundationは、ビデオの再生またはエンコードに使用される低レベルのフレームワークです。ビデオクリップのカット機能はありません。もちろん、Media Foundationでビデオのカット用のコードを書くことは可能ですが、すべてのコードを一から書き込む必要があります。私はMedia Foundationに豊富な経験を持っており、これを「LEGO」ブロックと比較することができます。コレクションは非常に小さな要素です。あなたのアイデアを実践するには半年以上かかります。

ところで - Media Foundation Capturing Live-video from Web-camera on Windows 7 and Windows 8でカメラで作業するためのソースコードが見つかり、複雑なコードを表示できます。それは、2つのストリーム視聴と他の(例えば、録画)でビデオを分割することをサポートする。それは、他のストリームを介してファイルにビデオを録画することが可能です。その後、ビデオ録画の終了後、Media Foundation Media Sessionを作成し、一時的なビデオファイルを開き、終わりから数分間ビデオリーダーをオンにして、目的のファイルに書き換えます。しかし、あなたはMedia Foundationをよく理解していなければなりません。 Media Foundationについての本があります。 Media Foundation Media Sessionのコードが含まれています。

+0

は完全に同意します...あなたは単純なコマンドを呼び出す必要があります...そしてビデオstuffのhusselを気にする必要はありません –

+0

Mediaクラスを使用してMediaCaptureを使用している間に、mediaCaptureをファイルに保存しています。私は最後の位置から始めてバイトをピッキングして、合計バイトストリームの中の固定サイズにします。しかし、私はビデオを再生することはできません。それを解決する方法を提案してください。ビデオを再生できるように、壊れたバイトにメタデータを追加する方法を教えてください。 - @Evgeny pergeguda –

+0

[MSDN](https://msdn.microsoft.com/en-us/library/windows/apps/windows.media.editing.mediaclip.createfromfileasync.aspx)から 'MediaClip.CreateFromFileAsync'を使用できます。それはWindows 10で使用できます - それはパブリック 'インターフェイスIStorageFileを使用します:IStorageItem、 IRandomAccessStreamReference、IInputStreamReference' Windows.Media - Media Foundationの上位ラッパーです。 –

0

MP4ファイルからサブクリップを作成する1つの方法は、Media Foundation APIのSource ReaderSink Writerを使用して、特定の位置から関心のあるすべてのストリームから「読み込み」を開始し、それぞれ停止することです。データはSink Writerインスタンスに渡され、サブクリップファイルが生成されます。

これは、ビデオの再圧縮の有無にかかわらず実行できます。 Media FoundationはネイティブコードAPIであり、それぞれのインターフェイスをASP.NETに提供するラッパーライブラリが必要な場合があります。

別の方法は、TrimStartTime/TrimStopTimeプロパティを持つUWP MediaTranscoder APIです。 Transcoding media sampleはあなたに洞察力を与えるはずです。

関連する問題